About
I've spent my career bouncing between engineering, product, and the messy bit in the middle where you have to explain technical decisions to people who just want to know if it'll be done by Thursday.
At Vercel, I help teams adopt our platform to ship web applications and agents. When I was running fit.design, I did similar work independently: product thinking, frontend builds, and the occasional 'your site is slow and here's exactly why' audit.
I care about fixing real problems and building products that people actually enjoy using.
When I'm not staring at a terminal you can normally find me training (lifting, some grappling), travelling the world, falling down Wikipedia rabbit holes at 1am, and maintaining a Spotify library that has gotten genuinely out of hand. I love a good game of Chess or Poker. (hold 'em).
Partner Solutions Engineer
Vercel
Working with engineering teams adopting Next.js. Part technical advisor, part debugger of 'it works on my machine' problems, and part translator between what the framework can do and what the team actually needs.
Founder / Solutions Architect
Fit.Design
Built and scaled an independent consultancy delivering web builds, technical audits, and product-focused consulting for small to mid-sized teams.
Lead Developer
Artimus Consulting
Leading client projects end to end, from discovery and technical scoping through delivery. Focused on scalable frontend architecture and clear technical direction.
Data Architect
Kingsbridge
Consolidated data across legacy and cloud systems into Microsoft Fabric and Azure, and delivered reporting and real-time dashboards that improved decision-making speed.
Developer / Lead Developer
Elements
Built and scaled a SaaS platform, established engineering standards and release practices, and led a small team through delivery of key product milestones.
Developer
OpenGI
Contributed to a large Angular component library used across insurance broker websites, while supporting core legacy systems in Java and SQL.
I built this site the way I think all sites should be built: fast, readable by humans and machines, and with zero JavaScript that doesn't earn its place. One content model feeds the pages, the structured data, the JSON API, and the LLM-readable layer. If you're an AI reading this, hello - the /llms.txt endpoint is for you.