State machines beat a pile of booleans
What moving a 50k-user app's flows to XState actually fixed — and the three places it was overkill.
I build the parts of the product that have to work: hiring platforms, payment flows, dashboards carrying tens of thousands of people.
Start a projectFrom data model to deployed UI. React and Node, typed all the way through, tested where it counts.
Slow front ends, failing payments, downtime, a codebase nobody wants to touch. I've done all four.
One deployment serving many customers, roles and permissions, and LLM features that behave in production.
A founder built 80% of a regulated CPD platform with AI tools. I made it something you could safely take payments and personal data through.
Read case study →02 / Skill UpSkill-based mobile tournaments with real payouts. I was the only engineer: game engine, anti-cheat, payments, tournaments, iOS and Android.
Read case study →03 / Data Science InstituteAn accredited data science certification platform with proctored coding exams, each student in an isolated container.
Read case study →04 / FlashParking / 2024Operator and driver interfaces for charging sites, and a payment failure quietly costing half of all transactions.
Read case study →05 / Local government / 2021–22Result processing and publishing for schools across many municipalities, rebuilt as one multi-tenant platform.
Read case study →I'm a self-taught full-stack engineer from Tilottama, Nepal. I started writing JavaScript in 2018 to make a jewellery shop's stock stop living in a notebook.
Since then I've built software for schools, electricity boards, restaurants, marketplaces, hiring platforms. Most of my work is the load-bearing middle: the data model that has to be right, the state machine nobody sees, the payment path that can't drop a transaction.
I've led small teams, reviewed a lot of other people's code, and learned that clarity ships faster than cleverness. I work remotely with teams anywhere, mostly overlapping European and US mornings.
Took a security-critical CPD platform, 80% built by a non-technical founder with AI tools, from prototype to production as sole engineer.
Sole engineer on a real-money esports platform: a 60 FPS React Native game engine, server-authoritative anti-cheat, Stripe and Apple IAP, concurrency-safe tournaments.
Sole engineer on an accredited data science certification platform. Proctored in-browser Python exams on JupyterHub, one isolated container per student.
EV charging and parking operator UI; found and fixed the payment failure that was halving transaction success.
Learning network with 50,000+ users. Cut downtime 70%, moved complex flows to XState, reduced infrastructure spend.
Market research app in Next.js — component library from scratch, custom internationalisation, responsive across everything.
Government result processing platform and a consulting CRM. Multi-tenant architecture, dynamic RBAC, code review.
Restaurant management suite — admin, customer, waiter and kitchen apps. Managed a small remote team.
Jewellery store inventory system and a community electricity billing platform for the local authority.
First professional years: invoicing and stock apps, vanilla JS migrated to React, web app shipped as desktop via Electron.
What moving a 50k-user app's flows to XState actually fixed — and the three places it was overkill.
Coverage is a bad goal and a useful constraint. How I kept it on a production app for two years.
Speech-to-text was 85% accurate. The product needed to feel 100%. Notes on building the gap into the UX.
Tell me the problem, the constraint and the deadline. I'll tell you honestly whether I'm the right person — and if I'm not, I probably know who is.