4 projects
Projects.
Four projects, what the problem was on each, and what I did about it — and below them, the things I built to understand something, which run in your browser.
Bitpanda Custody Platform
FintechBackend of an institutional crypto-custody platform for banks — Fastify, GraphQL, AWS serverless.
ImmoScout24 Austria
LiveIterable lifecycle integration plus search and listing work across React and Node, inside a tested distributed real-estate platform.
RWE Energy Platform
EnterpriseMigration work from a Java monolith toward NestJS services for energy-market data.
Endava Enterprise Clients
AgencyFull-stack JavaScript delivery across telecom, payments, and academic publishing.
Lab
Not client work. Each one runs in your browser and prints its own numbers.
Worker pools, measured
LabA CPU-heavy database export, run two ways in your own browser. One freezes the page; the other doesn't. Both print the same fingerprint, so you can check the fast one isn't cheating.
Transactions, and what they cost
LabTwo hundred concurrent bank transfers with no transaction around them. Every one reports success, none raises an error, and the money stops adding up. Then the fixes, with what each one costs measured against a real Postgres.
Infrastructure, by hand and by rule
LabA network, a firewall rule and a server that needs both. Build it by hand and run the same notes twice. Then just describe what you want, and run that twice instead.
One query per post
LabAsk a GraphQL API for six posts and their authors, and it goes to the database seven times, three of them for the same person. Run it with and without DataLoader and count the trips.
Do this later
LabSend this email in two hours. Put the jobs in a table, and three problems show up: two workers grab the same job, a job fails, a worker crashes halfway. Watch each one break, then get fixed.
1,000 charges, one imperfect API
LabCharge 1,000 customers through an API that rate-limits, fails now and then, and answers slowly. Send them all at once, then pace them, retry them, and add a timeout. Without an idempotency key, the timeout charges 29 customers twice.