// work experience

Where I've worked

3 years 4 months across product companies and agencies, architecting systems, owning deployments, shipping features and growing engineering teams.

Full-Stack Developer

Full-time
iTravel HolidaysJune 2024 — Present

Core engineer on a production B2C travel platform serving UK customers. Responsible for both frontend product surfaces and critical backend services from search and booking flows to deployment infrastructure.

  • Architected and integrated third-party hotel, flight, transfer and weather APIs. Designed a normalisation layer to abstract provider-specific response schemas so the frontend consumes a single unified contract regardless of upstream changes.
  • Built a multi-step holiday booking flow in Next.js with state managed via Zustand, handling search, availability, room selection, passenger details and payment in a single session.
  • Ingested and self-hosts over 500,000 hotels sourced from Expedia's static API totalling roughly 60GB of structured data stored in MongoDB on a dedicated Linux server eliminating recurring Expedia API request costs by serving all hotel data locally. Hotel images, approximately 4TB of static assets, are stored directly on the server filesystem and served through a streaming endpoint rather than a cloud object store, keeping hosting costs flat regardless of request volume.
  • Developed a full CMS dashboard with role-based access for content editors, SEO managers and booking admins, each role seeing only the operations permitted to them and backed by guard-protected NestJS endpoints.
  • Implemented full-text search and faceted filtering using Meilisearch, indexing destinations, packages and hotel records with tuned ranking rules and synonyms for UK travel terminology.
  • Designed a MinIO-backed media pipeline: upload, resize, optimise and serve via signed URLs, removing direct public bucket exposure while keeping CDN-friendly delivery.
  • Containerised the entire application stack with Docker Compose then wired a CI/CD pipeline that builds, tests and deploys to the production server on every merge to main.
  • Wrote integration tests with Jest and end-to-end booking-flow tests with Cypress, catching regression in checkout state and payment edge cases before production.
  • Participated in weekly PR reviews, proposed architectural decisions in team discussions and documented system behaviour in internal runbooks.
TypeScriptReact.jsNext.jsTailwind CSSMantine UIShadcn UIZustandNest.jsExpress.jsPostgreSQLMongoDBMeilisearchMinIODockerJestCypress

Frontend Developer (Volunteer)

Volunteer
BrickLabs AIMay 2024 — Nov 2024
  • Built and maintained SEO-optimized web pages and admin dashboard for content management.
  • Contributed to backend features for content posting, category management and admin operations.
  • Collaborated with the AI team to integrate chatbot content and features.
  • Enhanced website speed and responsiveness, delivering a seamless user experience.
JavaScriptTypeScriptNext.jsExpress.jsMongoDBTailwind CSSMicrosoft Azure

Full-Stack Developer

Full-time
Aaa Platform LtdAug 2023 — June 2024
  • Built and deployed full-stack web and mobile applications tailored to client needs.
  • Led backend development for an online tutoring platform with scalable APIs and database structures.
  • Improved UI/UX for mobile and web apps by optimizing navigation, performance and loading speed.
  • Mentored software interns from basic Git knowledge to full-stack junior developer roles within 4 months.
JavaScriptHTMLCSSReact.jsReact NativeTailwind CSSExpress.jsMongoDBMySQLReduxGolangAngular.js

Software Development Intern

Internship
Swahili BoxMay 2023 — Aug 2023
  • Contributed to full-stack development for web applications as part of a collaborative team.
  • Created an event booking platform with user email and QR code verification.
  • Built an insurance admin dashboard for branch-level management and reporting.
  • Acquired key development and debugging skills under mentor guidance.
HTML5CSSJavaScriptjQueryReactNode.jsExpress.jsMySQL

// currently open to new roles

Want to work together?

Available for full-time, contract, remote and part-time opportunities.