Sharper Code
Brighter Apps
Full-stack developer building fast, accessible web apps, dashboards and the tools behind them.
Selected work
Featured Projects
Capabilities
What I build
Four areas I work in every week — each card links to matching projects.

Web Apps
From first prototype to production: server-rendered React apps with fast first paint and sensible client islands.
See web apps
APIs & Backends
Typed APIs, queues and data models that stay boring under load — Node.js, Go and PostgreSQL.
See dashboards
UI Engineering
Design systems, accessible components and motion that feels quiet — built from tokens, tested with real users.
View the stack
Automation & AI
CLIs, CI pipelines and pragmatic AI features that remove repetitive work instead of adding novelty.
See tools
I don’t ship template websites
Every project starts with the people who will use it. I design the data model, the architecture and the interface together, so the result is fast, accessible and easy to change.
Over eight years I have built SaaS dashboards, offline-first apps and developer tools for startups, agencies and public-sector teams.
Principles
Why work with me
Three principles that shape every project, from the first call to the last deploy.
Every project ships with a performance budget. Static by default, JavaScript only where it earns its place, and real-user metrics after launch.
- Lighthouse
- Web Vitals
- Edge
Budgets agreed before the first line of code.
Process
Have an idea? Let’s build it.
Discovery
We talk to the people who will use it and agree on what success looks like.
Goals & scope
Architecture
Data model, rendering strategy and API contracts are settled before the first screen.
Concept & stack
Build
Small, reviewed increments behind feature flags, tested as they land.
Iterations & tests
Launch
A measured release, then monitoring and support while real traffic arrives.
Release & support
Case studies
Built for real users
Two projects in detail: the problem, the architecture and the numbers after launch.

Ledgerly
A streaming dashboard with server-rendered summaries, optimistic edits and a reconciliation engine that matches 94% of transactions without manual work.
- Next.js
- TypeScript
- PostgreSQL
- tRPC
- Playwright
Results
- Lighthouse
- 98
- Load time
- −60%
- Active users
- 2k

Atlas Notes
CRDT-based syncing removes conflicts entirely, and an accessible editor model keeps the document readable by assistive technology.
- React
- TypeScript
- CRDT
- Vite
Results
- Sync latency
- 45ms
- Notes / workspace
- 10k
- WCAG level
- AA
Notes
Thoughts on building for the web
Next step
From the first call to kickoff
Three steps — nothing is binding until the last one.
Concept call
A short call about your goals; afterwards you get a first design concept, free of charge.
Scope & details
Together we settle scope, timeline and budget, so nothing comes as a surprise later.
Kickoff
Once everything is agreed, the build begins — in the small, reviewed steps of the process above.
Just a question?











