Norbert Orzechowicz
banner
norbert-tech.bsky.social
Norbert Orzechowicz
@norbert-tech.bsky.social
Problem solver, software architect, also working as a Data Witcher ⚔️, hunting and killing 🧌 and 🪳in data processing pipelines! Creator of https://flow-php.com
Pinned
Want to learn how I automated the setup of a local development environment for Flow #PHP with the following dependencies:

- PHP 8.2/8.3/8.4
- blackfire/xdebug/pcov/zstd/brotli/snappy/lz4
- PostgreSQL
- MySQL
- Redis
- Elasticsearch
- Meilisearch
- Azureite
- Localstack

Read 🧵
New version of Flow #PHP was released, 0.27.0.

This was a bigger release that brought a few very cool features to DataFrame.

Let's start by covering the new data type - HTML delivered by @stloyd.
November 12, 2025 at 11:26 AM
1/8 I have been recently playing with the idea of creating an interactive playground for Flow #PHP where the ETL pipeline can be executed directly in the browser.

Today I managed to put together the first working version!
November 3, 2025 at 7:30 AM
@stloyd came up with a proposition of adding HTLM entry type to Flow #PHP and leveraging DOM\HTMLDocument introduced in PHP8.4

Which in my opinion will open a whole new world of possibilities 🤩

You can check the progress and details here: github.com/flow-php/fl...
[Proposal]: Add `HTMLEntry` & related · Issue #1912 · flow-php/flow
Describe the Proposal To easily work with the new \DOM\HTMLDocument, it would be good to introduce a new entry, type & cast for this. This would be a nice addition to the existing XML type, whi...
github.com
October 28, 2025 at 9:00 AM
Flow #PHP 0.26.0 was just released!

Among fixes and improvements to our website, there is also a small gem.

DataFrame::batchBy()

It's a smarter version of batchSize that not only splits the dataset into batches by size but also keeps them logically grouped by column.
October 27, 2025 at 10:59 AM
Flow #PHP documentation just got significantly better 🤩

From now on, each example can also have multiple options - third nesting level.

Here is a great example: flow-php.com/data_frame/...
October 22, 2025 at 6:31 PM
Modularization is not easy at all, I described some of the challenges and potential solutions in the latest article on my blog:

norbert.tech/blog/2025-1...
The Dark Sides of Modularization
Practical challenges of system modularization - how to solve database-level coupling when extracting a module from a monolith. Comparing approaches: separation of responsibilities, projections, anemic events, and materialized views.
norbert.tech
October 21, 2025 at 11:36 AM
Great news!

Mago (Rust) has a new release that supports Flow (PHP) Types right out of the box, no extensions needed - just Mago 💪

github.com/carthage-so...
October 12, 2025 at 10:13 AM
This is a very cool way to share your reusable commands / hooks / sub-agents. One thing I'm missing here is a step where during plugin installation user could configure it providing things that are custom for his use case

docs.claude.com/en/docs/cla...
Plugins - Claude Docs
Extend Claude Code with custom commands, agents, hooks, and MCP servers through the plugin system.
docs.claude.com
October 10, 2025 at 8:36 AM
Took me a while to find my hotel room 😅
October 7, 2025 at 8:00 AM
Last Friday, I gave a talk at the @PHPersPL meetup in Gdańsk about the Parquet file format and its use in #PHP.

For those who couldn't attend: norbert.tech/blog/2025-0...

P.S. I'm working on launching a series of webinars about Flow #PHP - stay tuned! 💪
Parquet - Introduction
Complete guide to Apache Parquet - the binary, columnar file format. Learn how to achieve 10x smaller files, use metadata for lightning-fast filtering, understand Row Groups and Data Pages structure, and explore advanced features like encryption and Dremel algorithms.
norbert.tech
October 6, 2025 at 12:56 PM
Flow #PHP GitHub Actions workflows just got faster. We introduced a series of refactorings that aim to reduce the total time of the test suite execution. More details below:
October 2, 2025 at 10:14 AM
Flow #PHP 0.25.0 was released yesterday.

This time, we have significantly enhanced the Parquet library along with integrations for Excel and Google Sheets.

As always, you can find more details on the release page:
github.com/flow-php/fl...
Release 0.25.0 · flow-php/flow
[0.25.0] - 2025-09-29 Added #1866 - [XMLParserExtractor] Add support for Schema - @stloyd #1864 - [ExcelExtractor] Add support for Schema - @stloyd #1862 - [GoogleSheetExtractor] Add support for S...
github.com
September 30, 2025 at 8:38 AM
Parquet is an amazing file format that can reduce data size by 10 times, allows parallel processing, and selective reading out of the box. How can that be? Learn from my latest blog post about Parquet:

norbert.tech/blog/2025-0... 🇵🇱🇺🇸🇫🇷🇪🇸🇮🇹🇩🇪
Parquet - Introduction
Complete guide to Apache Parquet - the binary, columnar file format. Learn how to achieve 10x smaller files, use metadata for lightning-fast filtering, understand Row Groups and Data Pages structure, and explore advanced features like encryption and Dremel algorithms.
norbert.tech
September 29, 2025 at 8:15 AM
Hmm maybe we should integrate FlowPhp with krakjoe.github.io/ort/ 🤔

That would bring ML capabilities to php ETL pipelines
September 27, 2025 at 8:26 AM
Some nice performance optimizations are coming to Flow #PHP Parquet library (mostly related to PHP Thrift implementation) 💪

app.blackfire.io/profiles/co...
September 24, 2025 at 12:30 PM
Flow #PHP can now be run on Windows! But not through WSL, pure Windows. The main blocker was the flow-php/filesystem library. I managed to turn the Path class into a facade that detects the OS and uses dedicated Windows or Unix Path implementation under the hood.

github.com/flow-php/fl...
September 23, 2025 at 8:00 AM
Are you #PHP Developer working on Windows?
I might have a good news for you!

I'm working on providing support for Windows to Flow #PHP - Data Processing Framework!

You can follow my progress here github.com/flow-php/fl...
September 19, 2025 at 11:02 AM
Flow #PHP 0.24.0 is out 🚀

In this release we continue improving Doctrine Dbal Adapter by adding transactional loader and retry loader.

We also started exploring new way to improve DX - Transformations

More details as always at
github.com/flow-php/fl...
Release 0.24.0 · flow-php/flow
[0.24.0] - 2025-09-16 Added #1850 - Drop / Select Transformations - @norberttech #1850 - Missing DSL functions for BatchSize, Limit, MaskColumns, AddRowIndex transformations - @norberttech #1845 -...
github.com
September 16, 2025 at 7:22 PM
This is how easily I bumped phpstan level from 6 to 9 in one of my libraries.
github.com/norberttech...

All thanks to flow-php/types - tiny library developed for Flow #PHP Framework that for narrowing / casting
Static analysis hardening by norberttech · Pull Request #458 · norberttech/static-content-generator-bundle
Change Log Added flow-php/types library for better types narrowing Fixed Updated Changed increase phpstan level to 9 Removed Psalm ...
github.com
September 15, 2025 at 9:45 AM
Knowing that something you build for yourself and shared with others is solving their problems is the best possible reward ❤️

#OpenSource
September 12, 2025 at 9:57 AM
AGI 🤣
September 7, 2025 at 10:02 PM
I'm slightly adjusting priorities for the end of the year for Flow #PHP. Initially, I planned to focus on an interactive playground, and while I'd love to pursue that, parallel processing is far more crucial for the project.

For more details, check out our Discord 👇
September 3, 2025 at 12:45 PM
Flow #PHP 0.23.0 was just released 🚀
Due to my vacation break and more focus on my consulting services, this is a smaller one, it comes mainly with minor bug fixes, you can find all the details here:

github.com/flow-php/fl...
Release 0.23.0 · flow-php/flow
[0.23.0] - 2025-09-01 Added d755ea - 1password logo - @norberttech fcc085 - Tailscale VPN to the list of sponsors - @norberttech 45631e - cloudflare to sponsors lists - @norberttech Changed #181...
github.com
September 1, 2025 at 12:51 PM
I wrote a new blog post about how to approach preparing data for analysis in distributed transactional systems.

norbert.tech/blog/2025-0...

Available in: 🇵🇱🇺🇸🇩🇪🇫🇷🇪🇸
August 17, 2025 at 2:30 PM
1/4 Flow #PHP Playground Progress Update ⚙️

- we now have AST Traverser with Visitors detecting dangerous functions/classes usage
- we have linter used on the snipped

Both, Parser and Linter are generating Violations that are later mapped to a code editor
August 12, 2025 at 9:35 AM