Latest Posts
- LLM Translation: Building Real-Time Multilingual Features How we built real-time translation at Trainline using Claude 3.5 and AWS Bedrock.
- Org Mode Static Site: How I Build This Blog Emacs, Docker, and Cloud Run: a simple pipeline for publishing without frameworks.
- Docker Send Email with Bash (bytemark/smtp + Gmail) A simple Docker email setup using bytemark/smtp and Gmail SMTP for cron alerts.
- iOS Network Logging: On-Device Debugging Build an iOS logging tool that captures HTTP requests without a proxy.
Projects
- What Happened in 2007 A viral explainer of post-iPhone trend drops. 500k viewers in 3 days.
- Can I Run This LLM Check if an LLM runs on your hardware. 800,000 monthly views.
- The Social Coders A YouTube channel about tech and life in London.
About Me
I'm a software engineer in London with a decade of experience building products used by millions. Today I focus on long-range, context-aware LLM agents.
At Trainline I led the AI Lab and built real-time translation services using Claude and AWS Bedrock. Before that, I worked at Rightmove on the UK's largest property platform.
I like boring, reliable technology and understanding every piece of the stack.
What I Work With
- Languages: Swift, Python, TypeScript, C#, SQL, Bash
- iOS: UIKit, SwiftUI, URLSession, Core Data
- Backend: Postgres, Elasticsearch, Redis, Docker
- ML/AI: Langchain, Pydantic AI, RAG, Vertex AI, AWS Bedrock
- Infrastructure: Google Cloud Run, GitHub Actions, nginx
Older Posts
- Searching a Data Breach with Elasticsearch When 500m Facebook records appeared online, I used Elasticsearch to search them.
- Recreating YikYak with Postgres Building location features with Postgres earthdistance and cube extensions.
Causes I Support
- Electronic Frontier Foundation Defending digital privacy, free speech, and innovation.
- Framework Making laptops you can actually repair yourself.
📺 Videos & Talks
Trainline's path to production with Gen AI
NSLondon 2024.3