Senior Java Engineer · Zurich
Sixteen years on Spring systems for banks, where I spend my best hours on performance problems: reproduce, measure, fix, then lock it in with a test. For the last ten months I have also run an AI agent pipeline that does the same at scale, taking a requirement through spec, design, code, test and review with a human at each gate.
How I work
REST and GraphQL services in Spring Boot. Clean module boundaries, boring code, no surprises for the next person.
Performance problems are my favourite kind. I reproduce them first, profile, then fix the real cause and keep the proof in CI.
Functional, integration and load tests that run on every push. Real databases, real HTTP, no mocked data paths.
I help engineers get better at debugging, testing and explaining their decisions. Soft skills count as much as the technical ones.
A custom multi-agent workflow runs my personal projects from requirement to reviewed, tested code. The gates do the hard work, not the prompts.
The shape of every pipeline I own
The shape every pipeline of mine is built toward. Six stages run on every push. Mutation and load run nightly, and one project has not reached the mutation stage yet. Click a stage to see what it checks.
Side projects
Personal, non-commercial learning projects, each with its own CI run.
Java 25, Spring Boot 4, Flutter. Hash-chained journal, ArchUnit boundaries, 43 ADRs, nightly PIT.
Open case studyTypeScript, Node 24, Next.js 16. Eleven-job CI, nightly mutation and 90-day future clock, full OpenTelemetry.
Open case studyPython 3.12, FastAPI, Next.js. 193 migrations, 1,250 integration tests on real Postgres, coverage ratchet.
Open case studyJava, performance, testing, or how to run agents on a real codebase without losing control of it. I answer every message.