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.

Updated 2026-09-14

What I bring

01
End-to-end ownership

Taking features from vague requirements through UI, API, database, deployment, and monitoring — even the parts nobody wants to own.

02
Production debugging

Finding the gnarly bugs — race conditions, memory leaks, integration failures, the API call that only fails in production.

03
Legacy archaeology

Reading unfamiliar codebases, understanding what past developers were thinking, and improving it without breaking anything.

04
Infrastructure

Building CI/CD pipelines, containerization, and observability so developers don't have to think about it — until it breaks.

How I work

Ask annoying questions

Turn vague asks into working software by asking "but what should happen if..." until it's actually been thought through.

Write tests

So future-me doesn't have to debug mysteries at 3am.

Review code thoughtfully

Catch bugs without being insufferable about formatting.

Ship things

Fix production issues with urgency; know when "good enough" beats "theoretically optimal."

Document everything

Write the docs I wish existed when I inherited this mess.

Selected proof

PSBloggen

Ten-year WordPress blog migrated into a full IGDB-powered editorial platform, self-hosted.

Project →
drift

A visual-regression watchdog that screenshots the rest of the self-hosted family on a schedule.

Project →
Pitwall

A compact F1 dashboard merging multiple open data sources into a fast race-weekend view.

Case study →

Tech I actually use

Languages
  • Java
  • C#/.NET
  • TypeScript/JavaScript
  • SQL
  • Springboot
Frontend
  • React
  • Vanilla JS
  • HTML
  • jQuery
  • Bootstrap
  • Accessibility
  • Tailwind
Backend
  • REST APIs
  • Integrations
  • Background jobs
  • Auth
  • DB Migrations
Operations
  • 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.