About
I build things on purpose.
I design, engineer, and ship full-stack systems end to end. React, Next.js, and React Native on the front end; Node.js, Spring Boot, APIs, data architecture, and real-time systems underneath; AWS, Firebase, and Docker throughout. I've built a transport management platform engineered to satisfy UK/EU drivers'-hours and tachograph law, a multi-tenant garage SaaS with tenant isolation enforced at the architecture level, a platform-wide billing and governance console, and the backend plus two web apps running a national volunteer organization's operations across India. I care about the problem the software has to survive, not just whether it runs in a demo.
A working philosophy
Build like a craftsman. Ship like an engineer.
I treat every line of code like it'll be on a billboard, and every product launch like it'll be on the front page. So far, neither has happened — but the habit makes everything feel inevitable.
Currently
Going independent
Obsessing over
3D web performance
Next chapter
Premium product builds
Powered by
Coffee & curiosity
4+
Years building the web
5
Production platforms shipped
2
Companies shipped for
2
Countries served
What guides the day-to-day.
A short list of the values I'd bet a client relationship on. Because I have.
Default to honesty.
If a deadline is unrealistic, I say so on day one. If a feature is the wrong call, I push back with options.
Bias to ship.
A live product teaches you more in a week than a Figma file teaches you in a month.
Sweat the seams.
Loading states, empty states, error states, keyboard support — the small stuff is the brand.
Four rules I refuse to cut corners on.
The non-negotiables that show up in every line of code I push to production.
Performance is a feature.
If it doesn't load in a blink, it doesn't ship. Bundles get audited, queries get profiled, and every animation earns its place.
Design is decisions, not decoration.
I treat layout, motion, and microcopy as engineering problems. Every shadow, easing curve, and hover state has a reason.
Ship the boring scaffolding well.
Auth, error handling, accessibility, telemetry — the unglamorous 80% is where great products are quietly won.
Code that future-you can read.
No clever tricks for clever's sake. Modular, tested, and documented enough that the next dev says 'thank you', not 'why?'.
The toolkit, sharpened daily.
The stack I actually build production systems on — picked because it consistently gets hard things shipped, not because it trends.
frontend
Frontend & UI
Web and mobile clients that hold up under daily operational use.
- React.js93%
- Next.js90%
- React Native (Expo)85%
- TypeScript88%
- Tailwind CSS94%
- TanStack Query/Table85%
backend
Backend & APIs
Services that carry real billing, real compliance, and real traffic.
- Node.js / Express90%
- Spring Boot / Java86%
- RESTful API design92%
- WebSockets85%
- Auth & access control90%
- GraphQL76%
data
Data & Storage
Schemas, indexes, and audit trails that age gracefully.
- PostgreSQL90%
- MySQL82%
- MongoDB82%
- Redis78%
- Firebase86%
- Multi-tenant modelling88%
cloud
Cloud, DevOps & Integrations
Boring infra is good infra. Predictable deploys, clean rollbacks.
- AWS (EC2, S3, Amplify)82%
- Docker80%
- Git / GitHub94%
- CI/CD pipelines82%
- Playwright E2E86%
- Payments / Direct Debit84%
Let's build something worth opening twice.
From a quiet landing page to a full-blown 3D product, every great build starts with one short conversation. Pick a slot — coffee's on me.