What I Do / Web & Apps
Web and app development that feels fast and stays boring.
TypeScript on the front, Laravel or Node behind. Almost everything I have written in the last few years is typed, because the alternative is finding out about your mistakes from a customer. A JavaScript developer by habit and a Laravel developer by trade, I build the dashboards, portals and internal tools that Toronto businesses run on, written so the next developer thanks you.
Front end
- TypeScript
- React
- Next.js
- Vue 3
- Tailwind CSS
Back end
- Laravel
- Node / Express
- MySQL / Postgres
- Redis, queues
Integrations
- Stripe
- Salesforce
- REST & GraphQL
- Webhooks
Delivery
- Git & CI
- Docker
- Vercel / VPS
- Tests where they pay
What I usually get asked to build
Client dashboards
Auth, roles, charts, exports. Real data tables that don’t fall over at 50k rows.
Booking & checkout flows
Multi-step forms, availability logic, Stripe payments, transactional email.
Internal tools & APIs
Replacing the spreadsheet: CRUD, permissions, audit logs, CRM sync.
Engineering standards
The unglamorous things that decide whether a project survives its second year.
Typed boundaries
Validated inputs, predictable API contracts.
Small commits
Reviewable history, easy rollbacks.
Accessible by default
Keyboard paths, labels, contrast checked.
Documented setup
Clone, install and run in under ten minutes.