Production-grade web apps, built to last past launch week.
I build and maintain full-stack web applications — front-end, back-end, database and deploy pipeline — with a bias for boring, durable technology. Whether that’s a new product, a rescued MVP or a mature SaaS, the goal is the same: code your team can still happily work in a year from now.
From one-page MVPs to multi-tenant platforms.
Web applications
Server-rendered Laravel or JAMstack-style Next.js. Clean domain models, typed boundaries, real tests.
REST & GraphQL APIs
Versioned, documented, authenticated. Designed from the client’s perspective, not the database’s.
SaaS platforms
Multi-tenant architectures, subscription billing (Stripe), auditing, RBAC and admin tooling.
MVPs & prototypes
Get a real, usable product in front of real users in weeks — without painting yourself into corners.
E-commerce
Headless storefronts, payment integrations and order pipelines. Shopify, Stripe, custom stacks.
Rescue & refactor
Stabilise legacy codebases, migrate off EoL stacks, and get teams back to shipping weekly.
Mature tools, chosen for boring reliability.
No hype-driven rewrites. I optimise for what your team can maintain when I’m gone.
Backend
- Laravel
- PHP 8.3
- Node.js
- TypeScript
- Python
Frontend
- React
- Next.js
- Livewire
- Alpine.js
- Tailwind CSS
Data
- PostgreSQL
- MySQL
- Redis
- ElasticSearch
- MeiliSearch
Infra
- Docker
- Kubernetes
- Terraform
- GitHub Actions
- GitLab CI