A developer who keeps your software alive, current and deployable
Dependency and framework upgrades with tests as the safety net, migrations of databases, hosting and frameworks without a big bang, CI/CD in GitHub Actions, Docker and Cloudflare that anyone on the team can run, monitoring that pages the right person. A suppression-list platform I led shipped blue/green with zero downtime at 300+ GB. Paste your package.json below and get an upgrade plan.
Available from November 2026 · Wrocław, Poland (CET), remote
“someone you can always count on”public LinkedIn recommendation
“a true bias for action”client CTO, on LinkedIn
15+ yearsshipping software
Free call, no pitch deck30 minutes, then you decide
15+years shipping software
8,000+commits on one product, close to half of all merges
300+ GBof production data on one platform I led
8platforms shipped for Sandtime.io as founding engineer
Why me
01
Upgrades with a safety net
Tests first where the money paths are, then upgrades in waves: patch and minor batches, tooling, frameworks, runtime. Codemods where React, Next.js or ESLint ship them, manual diffs where they do not. Each wave is a pull request you can revert.
02
Migrations without a big bang
Dual-write and backfill for databases, blue/green for hosting, a strangler for frameworks. Rehearsed on a copy, rolled back at least once on purpose, measured in PostHog after the cutover. The suppression-list platform moved this way with zero downtime at 300+ GB.
03
CI/CD you can read
GitHub Actions workflows that fit on one screen, Docker builds that are reproducible, secrets in the right place, a security scan that fails the build for a reason. Coding agents work under the same gates, so speed does not cost you the rules.
04
Legacy kept alive, then moved
Old Node.js and React, jQuery, PHP sites, C# and .NET services. Keep them running, put tests around them, move them piece by piece when the business can afford it. The C# side has its own page, see the .NET page.
Ways to work together
Four shapes of engagement, no prices on the page
Scope first, then a number in writing. The call is free either way.
2 weeks
Dependency upgrade sprint
Every outdated package grouped by risk, upgraded in waves with the test suite as the gate, codemods where the framework ships them, a changelog your team can read. Node, React, Next.js, TypeScript, ESLint, Tailwind and the long tail.
Database, hosting or framework. A written plan with dual-write or blue/green, a rehearsal on a copy, a rollback that was tested, then the cutover at a time you choose. No weekend heroics.
GitHub Actions with lint, tests, security and build gates, Docker images that build the same way everywhere, preview deploys, a production deploy that is one approval away. Documented so nobody needs me to run it.
A fixed number of days a month: updates, security patches, alerts, the small fixes that pile up, a monthly report of what changed and what to decide. Zero bug policy: fixed or consciously closed, never parked.
Problem, what I did, result. Client names only where I am allowed to use them.
Same-day response to React2Shell and other advisories
The problem
Critical advisories in React, Node.js, WordPress and OpenSSH land without warning and proof-of-concept scanners follow within days.
What I did
A fixed pattern: official source, patch the same day, WAF mitigation, a regex sweep of our own code for the same vulnerability class, hardening flags for Node.js, reading material for the team.
Result
React2Shell patched the day the advisory went out, days before public scanners went live.
Help center moved from WordPress into the repo as docs-as-code
The problem
An unmaintained WordPress help site: red in audits, no sitemap, expiring certificates, plugins nobody understood.
What I did
Markdown in the repo, versioned with the product, all languages generated automatically, interlinking, 301 redirects for every old address, help added to the Definition of Done.
Result
One machine less to break during holidays, docs that match the product, better SEO and GEO, context agents can read.
Suppression-list platform: MVP to product, 300+ GB in production
The problem
A UK email publisher needed suppression lists at terabyte scale with constant-time sign-up and zero-downtime deploys.
What I did
I led three engineers from MVP to the full platform. Postgres partitioning by tenant and list, parallel request pipelines, blue/green deploys. One-click unsubscribe shipped four months before Google and Yahoo required it.
Result
300+ GB and millions of events in production, zero-downtime deploys, and a compliance feature that landed before the deadline existed.
Paste a package.json. The planner reads the version ranges, compares them with the current majors of the common packages and groups the upgrades into four waves: safe batch, tooling, frameworks, runtime. Known breaking changes get a note. Everything runs in your browser, nothing is uploaded.
Demo loading…
The version table is built into the page and dated. Unknown packages are listed for a manual check, never guessed.
How it works
Three steps from this page to a running project.
1
A 30-minute call
You describe the product and the problem. I ask the questions I would ask on day one. If I am not the right person, I say so and point you to someone who is.
2
Scope in writing
A short written plan follows: what we build first, what we measure, how we work together and what it costs. No slide deck.
3
Something to touch in week one
The first slice ships in the first week: deployed, measured, reviewable. From there the work is paced by what the numbers say.
A stack built around Java, Python or a cloud I do not sell
Body leasing by the hour with no say in how the work is done
A start before November 2026
Working style
How I work
Zero bug policy
A bug is fixed or consciously closed, never parked. Alerts and error tracking in every project, so I learn about problems before the client does.
Review as a craft
Hundreds of pull requests reviewed. I review for the product and its reasons. The code comes second.
Agents under rules
Claude Code and Codex work on main with hooks, lint and test gates. The model suggests, the criteria decide. Every PR gets a human review and AI-assisted content is disclosed.
FAQ
Questions people ask before they book
Which platforms and tools?
GitHub Actions, Docker, nginx, Cloudflare Workers and Pages, Postgres, PostHog for monitoring, Playwright for the gates. If your stack lives on a cloud I do not sell, I will say so on the call. Edge deployments are covered on the Cloudflare page.
Can you upgrade a Next.js app that nobody dares to touch?
Yes. Tests around the pages that earn money, then Next.js and React in separate waves with the official codemods, then the long tail. If the app would be better off without Next.js, the Next.js page explains the honest exit plan.
Database migration with no downtime?
Dual-write, backfill, verify, switch reads, switch writes, remove the old path. Rehearsed on a copy with production-sized data. I have done it at 300+ GB in Postgres with blue/green deploys.
Do you do security patches and vulnerability response?
Yes, including the awkward kind: a reported vulnerability in a dependency, a fix under time pressure, a write-up for the customer. One of the case studies on this page is exactly that.
Can your coding agents do the boring updates?
They open the pull requests, under rules I wrote, and a human reviews every one. About 30% of merged PRs on the products I work on in 2026 came from an agent. The rules are on the AI consultant page.
How soon can you start?
November 2026. Book the call and bring the upgrade plan from the demo below.
Let’s find out in 30 minutes
A free 30-minute call. You bring the problem, I bring questions. No prices on this page because scope comes first.
If I am the wrong person I will say so on the call and point you to someone better.