I'm a big fan of negative-space/defensive programming & always-valid domain model. Bugs that were not persisted and propagated to vendors are those that we do not have to explain to customers.
Both humans & LLMs seem to benefit from sticking to domain vocabulary and natural-language-like syntax in code.
I believe automated tests to be the best form of documentation - kept up to date hourly by each CI pipeline.
A solution should not be simpler than the solved problem, but from my experience - we tend to choose overly complex solutions for relatively simple (solved 100s of times) technical problems and oversimplify modeling of domain/business ones.
I strongly dislike industry "cargo cults" & "silver bullets". This is how businesses get bad cases of drug-resistant microservices or develop no-code/low-code platform developer addiction.
Using current "AI" tooling has proven to me that they can be an amazing help - regardless of their fundamental limitations, but as the common truism goes - "it is a multiplier" - for both a user's good and bad habits. Not the "silver bullet" that was promised.
Who am I as a person
I believe in Paul Saffo's "Strong Opinions, Weakly Held" mental framework — to my brain, sticking to it comes naturally.
Bottom-up thinker - I tend to gather facts, find patterns, then plan & act. Skipping the first two is the root of all evil.
I tend to overexplain - I consider laying all the facts before making commitments a courtesy.
I systematically build a library of reportage published by "Czarne" and sci-fi from the 80s.
I lift heavy. Gym is the best stress management tool I've ever tried.
Experience
Technology Summary
For the convenience of automated CV scanning tools.
Concepts
Domain-Driven Design
Layered/Hexagonal Architecture
Modular Monolith
Microservices
CQRS, Events, Queues
OOP, FP
TDD/BDD
SOLID
Languages, Runtimes
TypeScript: ~5 years
JavaScript: ~13 years
Node.js: ~6 years
Python: ~1 year
PHP: ~14 years
Shell: ~4 years
Frameworks, Platforms & APIs
NestJS/Express: ~4 years
Symfony: ~4.5 years
Laravel: ~2 years
Django: ~1 year
WordPress: ~8 years
GraphQL: ~3 years
REST: ~10 years
SOAP: ~2.5 years
Salesforce: ~2 years
DevOps, CI/CD, Cloud & Tooling
AWS: ~2 years
Azure: ~2 years
Digital Ocean: ~4 years
Docker: ~5 years
Vagrant: ~5 years
Terraform: ~2 years
Ansible: ~2 years
Jenkins: ~2 years
Kafka: ~1 year
Databases & ORMs
PostgreSQL: ~9 years
Redis: ~3 years
MySQL: ~6 years
Doctrine: ~4.5 years
Eloquent ORM: ~2 years
TypeORM: ~3 years
Sequelize: ~2 years
Prisma: ~1 year
Frontend Technologies
React, Storybook: ~4 years
JSS, Styled Components: ~4 years
Redux: ~2 years
SASS/LESS: ~7 years
Vanilla CSS/HTML: ~14 years
Prior Contracts
Pragmatic Coders Software House, PL
Senior Software Engineer hybrid, from 10-2025
Legacy rescue project for Abu Dhabi-based real-estate management SAAS with fixed budget, with the aim to improve the state of the application to the point it would pass investors' technical due diligence and to educate client staff.
Configuration management for the whole application
Observability/telemetry & debugging tools for event-driven part of application
Proper resource setup and teardown, to reduce notorious memory leaks
Enforced authentication/authorization invariants
Migration of audit trails & solving the issue that led to uncontrolled growth of stored data
SwingDev/Hippo Insurance NYSE: HIPPO, insurance, USA
Software engineer remote, from 07-2023 to 07-2025
Part of Agent Enablement and Underwriting teams.
Led a large data migration project aimed at filling the gaps in our lead data in Salesforce, involving fuzzy matching 100s of thousands of entries from our data lake to Salesforce without any reliable common keys. The achieved project goal was to increase throughput of lean customer support and sales teams, which needed to fill those gaps manually before using tools external to their typical process.
Architected redesign of Underwriting Domain to provide observability of our automated decision-making process and speed up introducing new products and markets.
Partook in smaller projects aimed at improving the productivity of our sales agents.
Speychain ltd startup, marketplace, UK
Software consultant remote, from 06-2023 to 06-2023
Scaffolding of the MVP for a contractee team.
Worked with business to define domain & map it to the database and GraphQL API design.
Set up CI and toolchain for backend development & testing.
One-month contract. Haven't extended because of a more permanent proposition from SwingDev.
Ownplay Inc. startup, mobile game, USA
Software consultant remote, from 11-2022 to 06-2023
Created backoffice APIs, React-based SPA admin panels, and part of analytics for a mobile game, and its web-based prototype
Built infrastructure for testing, and convinced the team to adopt the same approach for the rest of the project
Coached junior developers
The contract was cut short because the company pivoted. In March 2024 I received an offer to jump back onboard.
Aterian NASDAQ: ATER, e-commerce/logistic/ML company, USA
We built from scratch a working multi-tenant affiliate platform on top of the Amazon Attribution program, before appropriate APIs were even available and a backoffice for parts of the process that could not be automated
Built a BDD-like domain-specific testing solution allowing for fast writing human-readable integration/E2E tests, as our need for safety outgrew what we could get away with during prototyping, before the onboarding of the first paying and getting-paid customers
In addition to backend/domain work, I've set up our frontend architecture, which provided a Stimulus-like experience for our frontend developers, after we decided against a SPA frontend
Performed some light DevOps and security-hardening tasks
Dogadamycie sp. z o.o. translation company, PL
Full stack developer remote, from 01-2019 to 10-2020
Led the process of bringing in-house previously outsourced software
Built Docker and GitLab-based CI for the company
Offloaded long-running workloads to queue
Introduced automated testing
Unified seven different customer panels into one project—maintenance and QA were killing us
Greatly improved UX of the customer journey and automatic valuation process
Integrated multiple payment systems and CAT software
Joymile startup, middleman for used cars, PL
Full stack developer onsite, from 04-2018 to 01-2019
I convinced my - now friends - then acquaintances to employ a mostly-PHP and JavaScript developer to do Python. They didn't regret this decision. A month later I was contributing on par with my peers.
Moved legacy PHP supporting systems and almost 3 years' worth of data to our main Python-based infrastructure
We built a mostly React-based customer journey that provided both great UX and gathered every possible bit of data that could help our sales, which we fed to our CRM and marketing automation
Company dissolved, as we were unable to secure another round of financing.
Gremi Media SA publisher of "Rzeczpospolita" and rp.pl, PL
Technical Architect onsite, from 09-2016 to 03-2018
Team Leader onsite, from 04-2016 to 08-2016
Senior Web Developer onsite, from 10-2015 to 03-2016
Business impact
Added millions of missing pieces of content—lost after previous CMS migration—back to search engines' index
Removed discrepancies in our analytics falsifying traffic reports
Improved uptime/availability of our main property from around 97.6% to 99.4%
Improved loading times for our customers and their consistency by an order of magnitude
Reworked our advertising system to allow new ad formats and better experience for our customers
The whole process improved our traffic and unique users numbers by around one third
Technical impact
Migrated the company from FTP deployment and SVN to Git and on-premises GitLab for the deployment process
Banned FTP access to production. I built and maintained GIT<->SVN bridge for the transition period
Understood, fixed our implementation and documented a badly misused and misunderstood caching system
Introduced automated testing and proper telemetry
Increased template and code reuse by orders of magnitude
Replaced an assorted collection of PHP 5.2.17 (version enforced by vendor) scripts augmenting our legacy CMS, by self-built Symfony-inspired light framework enabling us to introduce automated testing and creation of Vagrant-based local environments for developers
Replaced template-embedded frontend scripts with a proper build process and React-based components
Uwazaj.pl startup, a middleman between lawyers and customers, PL
Full stack developer remote, from 05-2015 to 05-2017
Took over after the software house failed to deliver both in terms of features and quality and built our product from scratch just in time to meet our investor's roadmap
Built a visual "no-code" landing page builder for our marketing with A/B testing capabilities, adapted to manage the whole website by our non-technical staff
Integrated content-marketing/sales part with our custom CRM and call center
Set up our payment system
Supported the project during its lifetime as a sole developer/ops engineer
Idium AS/Idium Kraków Sp. z o.o website-as-service company, NO/PL
Junior PHP Developer onsite, from 05-2014 to 01-2015
Senior WordPress Consultant onsite, from 01-2014 to 04-2014
As a team, we built and maintained a framework allowing for ultra-fast delivery of customized, feature-complete WordPress websites for Scandinavian businesses
Built an internal application automating the generation of SEO reports used by our sales team
Took part in cleanup and hardening efforts after two separate security incidents
Assorted freelance contracts
Web developer remote, from 01-2011 to 06-2015
Building, adding features, and maintaining various websites, WordPress plugins, and themes.
Occasional migration from Joomla or custom solutions to WordPress.
Internet media
Journalist, editor, and blogger remote, from 10-2007 to 06-2012
Writing for multiple internet media entities, including o2 sp. z o.o. (currently: Grupa Wirtualna Polska), Antyweb and the Polish edition of PC World Computer about IT-related and unrelated topics.
Working as an editor/managing editor in two big blog networks.