Highlights
Senior full-stack developer with nearly three decades of making computers do what they’re told. Started in the Netscape era when frames seemed like a good idea (they weren’t), survived the browser wars, and somehow still enjoy this.
I build features end-to-end, debug the production gremlins that make other developers suddenly remember they have meetings, and occasionally keep systems running at 2am when I’d really rather be unconscious.
What I bring
Taking features from vague requirements through UI, API, database, deployment, and monitoring — even the parts nobody wants to own.
Finding the gnarly bugs — race conditions, memory leaks, integration failures, the API call that only fails in production.
Reading unfamiliar codebases, understanding what past developers were thinking, and improving it without breaking anything.
Building CI/CD pipelines, containerization, and observability so developers don't have to think about it — until it breaks.
How I work
Turn vague asks into working software by asking "but what should happen if..." until it's actually been thought through.
So future-me doesn't have to debug mysteries at 3am.
Catch bugs without being insufferable about formatting.
Fix production issues with urgency; know when "good enough" beats "theoretically optimal."
Write the docs I wish existed when I inherited this mess.
Selected proof
Ten-year WordPress blog migrated into a full IGDB-powered editorial platform, self-hosted.
Project →A visual-regression watchdog that screenshots the rest of the self-hosted family on a schedule.
Project →A compact F1 dashboard merging multiple open data sources into a fast race-weekend view.
Case study →Tech I actually use
- Java
- C#/.NET
- TypeScript/JavaScript
- SQL
- Springboot
- React
- Vanilla JS
- HTML
- jQuery
- Bootstrap
- Accessibility
- Tailwind
- REST APIs
- Integrations
- Background jobs
- Auth
- DB Migrations
- Docker
- CI/CD
- Observability
- Performance
- Debugging
Origin story
Got a Commodore 64 at age ten and monopolized the family TV for the next eight years. Teens were BBSes and early Swedish internet gateways, building HTML for Lynx browsers. Turned professional in 1998, when Framfab hired me to make websites for IE4 — I'm still recovering, but these days browsers mostly agree on how CSS works. Mostly.