Projects
Real systems, real numbers.
05/2024 – present · Designed the supplier module contract and the migration model; owns the release train on the hotel gateway
The aggregation layer that makes many wholesalers answer one API contract: one module per supplier, brand differences pushed into data, and cross-call state carried inside the identifiers themselves.
75
supplier codes on 31 modules
8
gateway services
5
product lines on one contract
- Node.js
- Koa 2
- Express 4
- MySQL + Knex
- Redis (ioredis)
- AWS SQS
- +5
02/2026 – present · Author and maintainer — solo
~70 engineering runbooks packaged as executable commands across 3 installable repos used by two teams — with mechanised guardrails on every operation that touches production.
~70
executable runbooks
3
installable repos
9
MCP servers, per-tool scoped
6
subagent roles
- Claude Code skills & plugins
- MCP (9 servers)
- Bash
- Python 3
- Node.js
- macOS launchd
- +2
2026 · Owner of the mapping campaigns — design, execution, verification, rollback
Resolving the same physical hotel across suppliers in a ~1.9M-row identity table — using a bridge-through-a-third-supplier technique, verified by name similarity and geo distance before any write.
1.9M
rows in the identity table
+109,786
rows written in the largest campaign
94.9%
mean name similarity
11,953
rows deliberately rolled back
- Node.js
- MySQL + Knex
- Redis
- Neo4j + Cypher
- Python (TF-IDF, Siamese)
- fuzzball
- +1
08/2026 · Sole author, rolled out to four further services
Two design calls — snapshot the request at the first handler line, before any code mutates it, and derive the field table from each endpoint's own validation schema — made the tool portable enough to ship across all five products in a single day.
5
products, shipped the same day
44–75%
smaller payload than JSON
~626K
search log rows in production
- Node.js
- Koa
- Express
- MySQL + Knex
- Redis
- Joi
- +2
2026 · Designer and owner — backend, integration handbook, flow diagrams
One configurable approval engine shared by several business modules — with boundaries enforced by lint, configuration snapshotted at submit, and per-level SLA reminders running on a delayed-job queue.
50
TypeScript files behind one gateway class
11
documented error codes
7
flow diagrams
18
user stories written back from code
- NestJS 10
- Fastify
- TypeScript
- TypeORM
- PostgreSQL
- Redis
- +3
2026 · Feature owner end-to-end — backend, consumer web, admin, accounting, mail
When a feature spans eleven repositories, the unit of release is the set, not the repo — attaching a flight-delay insurance product to a live booking flow, where missing a single repository means undercharging customers with no exception thrown anywhere.
11
repos shipped together
69
commits cherry-picked
18
conflicts resolved
45
MRs covered
- NestJS
- Express 4
- Next.js
- React
- PostgreSQL
- TypeORM
- +5
01/2024 – present · Backend Developer
A free application for digital business cards, contact management and an internal social network. I owned the backend: data model redesign, new features, optimisation and code review.
- NestJS
- PostgreSQL
- Redis
- Sentry
- AWS CloudWatch
10/2023 – 01/2024 · Backend Developer
A platform letting marketers optimise their investment against actionable retail and shopper data. I built the initial code base and designed the database structure.
- NestJS
- PostgreSQL
- Redis
- Sentry
- AWS CloudWatch
09/2022 – 01/2024 · Backend Developer
The service that aggregates hotel data from many suppliers, builds the hotel mapping system, and provides hotel booking to the wider microservice platform.
- KoaJS
- MySQL
- Redis
- AWS SQS
- Neo4j
- camaro + xmlbuilder
- +2
09/2022 – 01/2024 · Backend Developer
Part of the microservice platform: integrating data from many flight suppliers so the rest of the system sees a single provider for flight booking.
- KoaJS
- MySQL
- Redis
- AWS SQS
- camaro + xmlbuilder
- Pino
- +1
09/2022 – 01/2024 · Backend / Frontend Developer
A UI dashboard managing every service in the microservice platform: flights, hotels, tours, transfers, car hire and insurance. I worked on both the backend and the frontend.
- KoaJS
- ReactJS
- MySQL
- Redis
- Ant Design
- ReCharts