Skip to content

MartinHughes

Martin Hughes

Lead software engineer in Leeds. I build serverless systems with TypeScript and AWS, drawing on over twenty years in web development.

In my own time, I build AI features for Sproggo, my partner Freya's family activities platform. I also use Claude Code and Codex to write and review code, with tests and a final review from me.

Career timeline: Sportsshoes.com 2024–now, easyodds.com 2020–2024, DealTrak 2017–2019, aql 2015–2017, 9xb 2005–2014.

  1. Sportsshoes2024–now
  2. easyodds2020–2024
  3. DealTrak2017–2019
  4. aql2015–2017
  5. 9xb2005–2014

About

I started building PHP e-commerce sites in 2005 and now mostly write TypeScript on AWS. Much of my work involves replacing older systems while the business carries on using them.

I've worked in retail, logistics, sports data, motor finance and telecoms. I've run a technology team as well as written the code, and I still prefer to do both.

In the evenings and at weekends, I build Sproggo for my partner Freya, who founded it to help parents find family activities. I build its AI day planning, search and listing tools with AWS Bedrock, structured model outputs and background processing. I also use Claude Code and Codex for development, with separate coding and reviewer agents and a final review from me.

Serverless and event-driven systems
I build APIs and event-driven services on AWS with Lambda, EventBridge and SQS. I use CDK or SST for deployments and keep an eye on running costs.
Modernising legacy systems
I move on-premises systems to AWS and work on security and performance problems in code that's still in daily use.
Leading and mentoring
I've been a Head of Technology and Technical Director, led sprint teams and mentored junior and mid-level developers.
Working with clients and teams
I work out requirements with clients and third parties, estimate the work and report progress to product owners and company directors.

Experience

Jul 2024 – Present

2 years 5 months

Shipley and remote

Sportsshoes.com

  • Senior Developer

UK online sports retailer. I work across warehouse fulfilment, order management and customer data.

  • Cut customer data platform processing from days to hours.
  • Moved the on-premises order management system to AWS so the team could manage deployments and see what was happening in the logs.
  • Fixed security and performance problems in older internal systems.
  • Traced slow order completion to the way picking tasks were consolidated, and reworked the flow.
  • Built event-driven warehouse fulfilment services in TypeScript on AWS Lambda, with low latency and high availability.
  • Brought in test-driven development with Jest, covering new features and legacy code as it was modernised.
  • Introduced AWS CDK so services deploy the same way every time.
  • Mentored junior and mid-level developers in AWS, TypeScript and CDK.
  • TypeScript
  • Node.js
  • AWS CDK
  • Lambda
  • API Gateway
  • S3
  • SES
  • MySQL
  • PHP

Jan 2020 – Apr 2024

4 years 4 months

Leeds and remote

easyodds.com

  • Technical DirectorMay 2021 – Apr 2024
  • Head of TechnologyJan 2020 – May 2021

Sports betting odds comparison. I led the technology team and stayed hands-on, roughly 70% building and 30% leading.

  • Integrated feeds from several data providers, processing millions of data points a day.
  • Rebuilt the platform as event-driven microservices. API responses became faster and the platform more reliable.
  • Moved services from VPS hosting to containers on AWS ECS. This reduced costs, improved uptime and let us add capacity as needed.
  • Rebuilt the frontend in React and Next.js with TypeScript for faster page loads.
  • Built Lambda functions triggered by S3 uploads to distribute data by email through SES.
  • Agreed requirements with the people commissioning the work and kept them updated throughout each project.
  • TypeScript
  • React
  • Next.js
  • Vue.js
  • Node.js
  • PHP 8
  • Laravel
  • Docker
  • Ansible
  • Grafana
  • AWS ECS
  • RDS
  • ElastiCache
  • SQS
  • CloudFront

Aug 2017 – Dec 2019

2 years 5 months

Leeds

DealTrak

  • Lead DeveloperJun 2019 – Dec 2019
  • Senior DeveloperAug 2017 – Jun 2019

Motor finance software used by car dealerships across the UK.

  • Planned how to split the monolith into smaller services and use events to communicate between them.
  • Mentored developers, reviewed code and ran training for the team.
  • Reported team metrics and project progress to company directors.
  • Rolled out Ansible across the team for UAT and production deployments and everyday tasks.
  • Led sprint teams and wrote the technical specifications for new features.
  • Replaced an insecure web service authentication scheme with an encrypted system that was easier to manage.
  • PHP 7
  • Symfony
  • jQuery
  • REST and XML APIs
  • Docker
  • Ansible
  • AWS ECS
  • EC2
  • RDS

Jan 2015 – Aug 2017

2 years 8 months

Leeds

aql

  • Senior PHP Developer

Telecoms and data centre company.

  • Built and launched the free public Wi-Fi captive portal used by millions of people across Leeds city centre and Leeds Bradford Airport.
  • Built a multi-threaded SMPP client and server that sent over 600,000 SMS messages a day for brands including parkrun.
  • PHP
  • SMPP
  • MySQL
  • Linux

Sep 2005 – Dec 2014

9 years 4 months

Harrogate

9xb

  • Senior Systems DeveloperSep 2011 – Dec 2014
  • Senior DeveloperSep 2005 – Sep 2011

Digital agency. Where I learned the trade and later ran the backend framework.

  • Designed and built the e-commerce framework behind sites like Bathstore, with inventory management, a flexible entity-attribute-value product model and payment gateway integration.
  • Built and maintained the backend framework the agency used to start every project.
  • Introduced the team to object-oriented programming and MVC, and mentored junior developers.
  • Met clients to gather requirements and demo work to technical and non-technical audiences.
  • PHP
  • MySQL
  • JavaScript
  • MVC

Agentic coding

I use Claude Code and Codex to plan, write and review code. I split larger jobs between agents, give each one a defined task and check the changes before they go into the project.

How a change gets made

  1. 1Context

    I keep instructions in the repo explaining how the project works and which conventions to follow.

  2. 2Plan

    For larger changes, I review a written plan before work starts and divide it into tasks for individual agents.

  3. 3Build

    I give each agent the code, documentation and tools it needs. Reusable skills and MCP integrations save setting everything up again for each task.

  4. 4Verify

    Changes go through type checks, lint and tests. I use end-to-end tests to check that the application still works for the person using it.

  5. 5Review

    A separate agent reviews the changes against the plan and sends problems back for fixing. I read the diff myself before accepting the work.

AI orchestration and tooling

  • I connect models to application data using RAG (retrieval-augmented generation), LLM APIs and tool calling. In Sproggo, I use JSON schemas for structured results and reject truncated tool responses.
  • I run Sproggo listing improvements through SQS workers with retries and bounded concurrency. Natural-language date parsing uses rules first, then cached AI results to avoid repeat model calls.
  • I build MCP integrations and reusable skills, and use multi-agent orchestration to divide work between coding and reviewer agents.

Guardrails

  • Agents need my approval before changing a database, committing code or deploying.
  • I restrict which tools and commands an agent can use for each project.

Side projects

Sole developer, evenings and weekends, Jan 2026 – Present

My partner Freya founded Sproggo in Leeds to help parents find things to do with their kids. Activity providers can list what they offer and take bookings. I built the platform and run the technical side.

Sproggo's days out directory, with activity filters and places to visit around Leeds.
  • Next.js
  • TypeScript
  • AWS Lambda
  • SST
  • EventBridge
  • Neon
  • Drizzle
  • Stripe Connect
  • Bedrock

What I built

  • AI day planning, natural-language search, listing improvements and provider insights on AWS Bedrock, using Claude tool calling for structured results.
  • Five apps in one Turborepo monorepo: the public directory, a provider dashboard, an internal admin tool, a Payload CMS and a serverless API.
  • API on AWS Lambda behind API Gateway, with EventBridge events, SQS queues and scheduled jobs, all deployed with SST.
  • Neon Postgres with Drizzle ORM, and a separate database branch for each developer.
  • Stripe Connect so activity providers take bookings and get paid directly.
  • Next.js, React and Tailwind CSS frontends on Vercel.

Smaller projects

  • Showtime's live trivia round with a question, four answer buttons, a countdown and player scores.

    A live trivia game for up to eight players. Pick question packs, share a room code and play on your own devices. You can add bots or play solo practice, with no account needed.

    Next.js, TypeScript, PartyServer, Cloudflare Durable Objects

  • Vowel Movement

    vowelmovement.fun
    A multiplayer letters round with letter tiles, player scores and a countdown timer.

    A letters and numbers game for 2 to 6 players, definitely not a rip-off of a beloved Channel 4 show. You can play against bots, watch replays or try daily challenges. Lexica is the paid tournament mode for team socials.

    Next.js, PartyKit WebSockets, Neon, Drizzle, Stripe, Clerk, Vercel Blob

  • Screenpose

    screenpose.app
    Screenpose's editor showing a tilted iPhone mockup and device layout controls.

    Turns screenshots into iPhone, Pixel, Galaxy and iPad mockups. Adjust the 3D angle and export a high-resolution image for an app store or social post. It all runs in the browser.

    Next.js, React Three Fiber, Three.js, Zustand

  • A pixel-art poker table with character avatars, chip stacks and betting controls.

    A multiplayer casino in pixel art, with poker, blackjack, roulette and slots. It uses fictional chips. Players can customise their characters and share tables with friends or computer opponents.

    Next.js, TypeScript, PartyServer, Cloudflare Durable Objects, Postgres, Drizzle

  • A first-person view of False Hand, facing three opponents around a 3D card table.

    Six bluffing, dice and card games for 2 to 6 players around a 3D casino table. Create a private room for friends or play against the computer. Each game has a practice guide.

    Next.js, React Three Fiber, Three.js, PartyServer, Cloudflare Durable Objects

Skills

AI and agents

  • AWS Bedrock
  • LLM APIs and tool calling
  • Structured outputs
  • RAG using application data
  • Claude Code
  • Codex
  • MCP
  • Agent skills
  • Multi-agent orchestration

Languages and frameworks

  • TypeScript
  • JavaScript
  • Node.js
  • React
  • Next.js
  • Express
  • PHP
  • Laravel
  • Symfony
  • Vue.js

AWS and infrastructure

  • Lambda
  • API Gateway
  • AWS CDK
  • SST
  • EventBridge
  • SQS
  • ECS and Fargate
  • EC2
  • S3
  • SES
  • CloudFront
  • Route 53
  • Terraform
  • Ansible
  • Docker
  • Cloudflare
  • Vercel

Data and messaging

  • Event-driven architecture
  • PostgreSQL
  • Neon
  • Drizzle
  • MySQL
  • DynamoDB
  • MongoDB
  • ElastiCache
  • RabbitMQ
  • Kong

Testing and quality

  • Jest
  • Vitest
  • Playwright
  • Mocha and Chai
  • PHPUnit
  • Pest
  • Sentry
  • Grafana and StatsD

Ways of working

  • GitHub Actions
  • Jenkins
  • Git
  • REST and OpenAPI
  • Stripe Connect
  • Tailwind CSS
  • Jira
  • Notion
  • Agile delivery
  • Mentoring

Background

Education

BTEC National Diploma in Software Development

Shipley College, 2003–2005

Outside work

Outside work I build PCs for myself and for friends and family. I pick the parts, put them together, then test and tweak the BIOS until they're stable. Full, clean UK driving licence.