My name is Norbert,
I'm a software developer specializing in designing & building high-performance, large-scale web applications. All technologies related to web development and data processing fascinate me.

I also run a technical blog, mostly PHP oriented, if you can read in Polish or don't mind using
google translate check zawarstwaabstrakcji.pl (πŸ‡ΊπŸ‡Έ translated version).

I spent a significant amount of my free time building and maintaining few open-source projects that you can read about below.

Recent Tweets

Projects

Some are just small libraries, others are pet projects developed during research phase before building commercial project.


# Flow PHP - ETL Open Source

PHP Library License: MIT

Flow is a PHP based, strongly typed ETL (Extract Transform Load) data processing library.

Adapters
  • CSV
  • JSON
  • Elasticsearch
  • Database (Doctrine Dbal)
  • HTTP
  • XML
  • PSR Logger
  • Memory

Additionally Flow ETL comes with 30+ build in Transformers that can handle most of transformations.

Read more about Flow


# Aeon PHP Open Source

PHP Library License: MIT

Aeon is a set of libraries that makes it easier to work with PHP Date & Time in an elegant Object Oriented way.

Features

  • Full immutability
  • Elegant object oriented interface
  • Mocking time in tests
  • Regional holidays detection
  • Business hours abstraction
  • Doctrine DBAL integration
  • Compatibility with all modern frameworks
  • Intuitive API and IDE autocompletion
  • Optional leap seconds support
  • High precision of elapsed time measurement
  • Smooth integration with built in \DateTimeInterface
  • Many many more!

Visit project documentation page to learn more and don't be worry about time anymore!


PHP CLI Tool License: MIT

CLI app that iterates through all markdown files in given path checking if links used in them are always valid. I become obsessed about improving developer experience in projects I'm working on. Most of my projects is documented in markdown syntax since it's easy, can be easily converted to HTML but event without that it's still human readable. Keeping url's up to date was always my biggest nightmare, that's how MD Link Linter was created.

In order to make it even more flexible I created docker image that can be used just like in example below:

docker pull norberttech/md-link-linter
docker run -t --rm -v $PWD:/app norberttech/md-link-linter --exclude=vendor --exclude=node_modules .

Those 2 simple CLI commands can be executed at any operating system with Docker installed. First one will download the image, second will execute it in the current folder, passing additional arguments to exclude `vendor` and `node_modules` folders from inspections.


# Structurizr PHP Open Source

PHP Library License: MIT

If you are familiar with C4 model by Simon Brown then you already know what this library is for. In other case you should watch this talk:

# PHPMatcher Open Source

PHP Library License: MIT

PHP library that only job is to match values against patterns, extremely useful when you need to check if API response matches expected pattern for example in functional tests. It also provides many useful placeholders like for example @string@ or @number@ that makes it even more powerful.

Still not convinced?
You can test it before using at https://php-matcher.norbert.tech!

Sandbox source code is available at coduo/php-matcher-site


# AssertJS Open Source

JavaScript Library License: MIT

This is nothing more than another JavaScript Assertion Library, but it comes without any dependencies. It's strongly inspired by assertion libraries available in PHP. It was initially developed as a part of No Game - JS 2D Multiplayer Game Engine and extracted to standalone repository later.
Using assertion makes development much more offensive, with minimum tolerance for mistakes but maximum verbosity of errors.

Read more at https://assert-js.norbert.tech/

Tiliqua is a large terrestrial lizard measuring up to 40 centimetres long and 700 grams in mass.

Wikipedia

Technologies, Tools & Buzzwords

I tried & enjoyed

  • PHP
  • Scala
  • C / C++
  • NodeJS
  • Java
  • Terraform
  • Packer
  • Ansible
  • Azure
  • Docker
  • Apache Spark
  • Delta Lake
  • Databricks
  • Nix

Quotes

You only test the part of the application that you want to work.

Robert C. Martin