London, UK
I build customer-facing systems for companies that need reliability, speed, and pragmatic engineering.
Currently, I lead engineering at Home, splitting my time between product, JVM backends, distributed systems, and platform reliability.
Previously, I scaled payments infrastructure at Zopa and Bó, built telemetry pipelines at Forter, and led engineering growth at KatKin.
A detailed calculator for UK limited company IT contractors. Estimates corporate tax, personal dividend tax, and models optimal salary-to-dividend strategies.
UK payroll modeling for permanent employment. Simulates income tax, National Insurance, and pension contributions.
Calculate monthly payments, interest amortization, and model the impact of voluntary overpayments.
Visualize long-term savings projections to see how compound interest affects accumulation.
A simple spatial planning estimator to figure out box counts and overall volume for home packing.
A plain collection of reference websites, technical bookmarks, and development resources.
I am currently optimizing for operational simplicity, highly responsive feedback loops, and workflows that reduce accidental complexity in small engineering teams.
Recent rabbit holes: Practical LLM integration to automate repetitive toil (rather than adding maintenance burden), lightweight state machines on SQL databases, and building deterministic CI/CD pipelines.
What I value: Clear ownership, systems designed to survive real users, and small, high-agency teams shipping code quickly.
It models HTTP as a pure function: HttpHandler = (Request) -> Response. No magic annotations, instant boot, and trivial unit testing.
Excellent for eliminating boilerplate, but risky for system layout. Use AI to remove mechanical toil, not engineering judgment, and back it with deterministic tests.
Until coordination is a bottleneck, internal platforms are a costly distraction. Prefer simple deployments, boring tech, and maximum product focus.
I believe the best system design is the one you can fully hold in your head. Avoid premature abstraction, keep telemetry robust from day one, and favor boring, well-understood technologies that ship fast and stay up.
Great software isn't just about elegant code; it's about solving real human problems. I work closely with product and design, treating engineering decisions as product trade-offs where speed-to-feedback is a primary metric.
A system you cannot observe is a liability in production. I prioritize clear telemetry, predictable logging, and structured tracing from day one so that debugging is science, not luck.
Keep your innovation tokens focused on your unique business problems, not your database or server framework. Choose proven, mature, and boring stacks to keep the operational burden low.