Hi, I'm Josh 👋
I build software with TypeScript, Go, and Python, everything from AI-powered yoga instructors to hackathon-winning platforms.
I'm a Full Stack Engineer at Let's Do This, where I build event discovery and booking platforms. We handle some of the biggest events in the world, including the London Marathon ballot system. I work with TypeScript, Node.js and Next.js, and on systems that process hundreds of thousands of registrations.
Right now I'm exploring everything from AI agents to low-level systems work - basically whatever seems interesting. I write about the problems I run into on my blog.
Before this, I spent a decade selling enterprise software. It made me the kind of engineer who cares more about solving real problems than writing clever code.
Featured Projects
When I'm not shipping features at work, I like to build things that solve problems I find interesting. From AI debate platforms to tools that make hybrid work less annoying. Some of these have even won hackathons.
Developer Tools & Utilities
Beyond full applications, I also enjoy creating tools and starter kits that streamline development and explore specific technologies. Here are some of my contributions to the developer ecosystem.
Blog
Deep dives into technical challenges I've tackled, from teaching an AI dog new tricks to wrestling with WebSockets. These posts explore the reality of software development - accidental rabbit holes and JSON-induced existential crisis.
Maya: A Multi-Agent Architecture for Conversational AI
How I evolved my AI yoga instructor from a 2000-token monolithic prompt to an orchestrated system of specialized agents - and why separation of concerns might be the most underrated pattern in AI development.
The AI Creativity Paradox: Why Smarter Isn't Always More Creative
My journey building an AI yoga instructor revealed a core tension in modern AI: the battle between creative exploration and algorithmic efficiency. This is the story of that paradox.
AIgument: The Art of AI Disagreement – Developing a Language Model Debate Platform
Beyond bland AI responses: I built a full-stack debate platform where language models adopt vibrant personalities and argue with adjustable intensity.
Building a Live London Underground Tracker: Learning Go From Scratch
How I learned Go by building a real-time London Underground tracker, featuring concurrent polling, WebSockets, and lots of debugging.
Contact
Looking to build something interesting, tackle a tricky technical challenge, or just want to chat about tech? I'm always open to exploring collaborations, discussing emerging technologies (especially in AI and Go!), or debating the finer points of system design.