
About
Software isn't mainly about code — it's about people. I'm drawn to the parts that change outcomes: clarity for developers, value for customers, and momentum for the business.
I'm a builder at heart. I learned by building real systems, and being part of every real stage of the software lifecycle.
When people, technology, and impact line up, the outcomes are always better.
Walked in the shoes
I've made the mistakes. The point is I learned from them.
I was a child with a computer — I wanted to make games.
I was a senior at school — I got in trouble for building a chat app.
I was a uni student — I lost code because I had no source control.
I was a junior — I broke prod.
I was a mid — I built things that were too complicated.
I was a senior — I tried to control everything.
I was a team lead — I thought I could do it all.
I was a project lead — I missed the deadline.
I was a product architect — I forgot about the politics.
I was a delivery lead — I committed before I knew the details.
I was a founder — I tried to sell instead of listen.
I was a speaker — I broke the live demo.
I was a consultant — I fumbled the communication.
I've seen the real SDLC
I've been there for greenfield builds, long-running systems, and the messy middle.
- I've been there at the start of an app.
- I've been there for 4 years extending an app.
- I've come in after 15 years and worked on an app.
- I've been in the thick of feature crunch.
- I've been there when 100,000 landed in the first hour.
- I've been there from single person to cross-functional.
- I've been through flat structure to restructure.
- I've been there when you can only ship on Mondays.
- I've done entire app migrations.
- I've reviewed apps that should have never been in production.
- I've on-boarded developers to apps.
- I've negotiated roadmaps with passionate founders.
- I've optimized app performance.
- I've optimized app cost.
- I've been the point for technical due diligence (both sides).
- I've off boarded apps.
- I've retired apps.
What I build
I build complete applications end-to-end — from architecture to deployment to ongoing operations.
SaaS platforms
Multi-tenant architecture, customer portals, admin dashboards, role-based access, subscription billing, usage tracking
Marketplaces
Two-sided platforms, payment splitting, vendor onboarding, transaction flows, dispute handling, trust and safety
Integration platforms
Per-customer OAuth connections, webhook handling, sync engines, conflict resolution, audit trails, rate limit management
Web and mobile apps
Progressive web apps, native mobile (iOS/Android), offline-first, push notifications, app store deployment
Marketing and e-commerce
Content management, product catalogs, checkout flows, inventory sync, abandoned cart recovery, analytics
Business models
B2B, B2C, B2B2C — I've built pricing models, billing systems, and user hierarchies for all three
Tech stack
I specialize in AWS serverless architecture with TypeScript, React and Node.js:
- AWS serverless-first (Lambda, API Gateway, DynamoDB, EventBridge)
- Infrastructure as Code (Serverless Framework, CDK, CloudFormation, Pulumi)
- CI/CD pipelines (GitHub Actions, AWS CodePipeline)
- TypeScript end-to-end
- React (Vite / Next.js) + Node.js (Express)
The integration reality
Integrations only look easy in slides. In production it's auth, retries, idempotency, backfills, auditing, and monitoring. Integrations I have previously built include:
- Stripe, Xero, QuickBooks
- HubSpot, Zendesk, Salesforce
- Google, Office 365, GitHub
- Jira, Linear
- Apple/Google Pay, App Store / Google Play
- POS/industry systems (e.g. Doshii) + obscure vendor APIs
- Auth/connection types: API keys, OAuth, OAuth2
- Complexity: Single platform, per workspace, per user
How I think
- I'm a systems thinker. I can hold ambiguity without freezing.
- I can handle prod going down when it's just you and the logs.
- I can handle docs being wrong and APIs behaving differently in the wild.
- I can handle "no SDK" situations where you build the hard part yourself.
- Simplicity, autonomy, and enablement beat control, restriction, and silos.
How I work
- Make tradeoffs explicit: risk, cost, time
- Ship in small slices that stay shippable
- Build for the next engineer (including future you)
- Leave systems in a better state than I found them
Background
Builder first. Always have been.
- I've worked in agency and product — I know the difference.
- I've led teams, shipped under pressure, and owned outcomes.
- I build end-to-end systems (not just tickets).
- I speak and share what I learn (serverless + shipping real systems).
- Full job history: LinkedIn.
What I don't do
- Pixel-perfect design
- Engineering for the sake of engineering