Writing
One write-up per project and per role. Each is dated when the work ended, so this doubles as a timeline.RSS feed.
2026
- What I'm building at Uptal: the backend behind EtchExperience · Uptal · Jan 2026 – Present
Seven months in: owning the backend architecture, an AI import pipeline and the Kubernetes infrastructure for Etch, a location-based social platform.
- MenuKit: a multi-tenant menu management API in LaravelProject · Jun 2026
A REST API for restaurant menus with hierarchical categories, multi-dimensional variants and modifiers, where tenant isolation is enforced in five layers and money never touches a float.
- PriceHub: aggregating product prices from three providers with NestJS and PrismaProject · Feb 2026
A NestJS service that polls providers with different payload shapes, normalises them into PostgreSQL, records price history only on change, and streams updates over Server-Sent Events.
- Four years at Trufla: rebuilding an insurance SaaS backend in NestJSExperience · Trufla · Dec 2021 – Jan 2026
Building and then rebuilding the backend of a B2B insurance SaaS platform serving 60+ enterprise clients: NestJS, microservices on AWS, and a CI/CD overhaul.
- AgentRunner: a ReAct agent execution service on LangChain and OllamaProject · Aug 2025 – Jan 2026
A Python service that runs an LLM agent through a reason-act loop against a local model, with pluggable tools, a CLI entry point and a structure built to be extended.
2025
- Taskflow: a task management API with roles and dependency graphsProject · Jul 2025
A Laravel REST API where managers assign tasks, users work them, and task dependencies are enforced with circular-dependency prevention. Docker one-command setup, CI on every pull request.
2024
- CampSpot: a camping community with maps, reviews and photo uploadsProject · Jan 2024 – Jul 2024
A Node.js and Express web app where campers share campgrounds on a map, upload photos and leave reviews, with Passport authentication and a hardened input layer.
- Serving a Yii app's assets through a CDN with a custom asset managerProject · Jun 2024
Extending Yii's AssetManager so static assets are served from a CDN domain with stable folder names, with a local Nginx setup that simulates the CDN in Docker.
- Unlimited-Talk: a multi-application chat API in Ruby on RailsProject · Apr 2024
A chat backend where each registered application owns many chats and each chat many messages, with Elasticsearch search over messages, queued writes for concurrency, and full Docker Compose setup.
2022
- A year on Bayt.com's job platform: PHP, Yii and an AI CV enhancerExperience · Bayt.com · Mar 2021 – Dec 2021
My first engineering role, working remotely on a large-scale job platform in PHP and Yii, with a Python-backed AI feature for improving CVs.
2021
- Hobbies: a social network for sharing what you love, in Laravel and VueProject · Nov 2021 – Dec 2021
A full-stack social app where people post hobbies with photos, tag them, and discover new hobbies through tags. Laravel 8 on the back, Vue 2 on the front.
- WebPattern: a moderated tech blog in plain PHP, my ITI graduation projectProject · Summer 2020 (published Nov – Dec 2021)
A blog and CMS for posts about web technologies, with an admin panel that approves posts and comments before they go live. Built in plain PHP and MySQL as my ITI graduation project, which scored 100%.
- Shelfmate: a reading-shelf app in ReactProject · Aug 2021
Organise books into Currently Reading, Want to Read and Read shelves, and search a catalogue to add more. Built on the Udacity MyReads project during the FWD React track.
- Quicklist: a live-filtering search list in AngularProject · Jun 2021
A small Angular 12 app that filters a list of artists as you type using a custom pipe, with a details route per item.
- Platter: discover restaurants near you and leave a reviewProject · Apr 2021 – May 2021
A Node.js and Express web app for finding restaurants near you or in any place, viewing details, adding new ones with photos, and leaving reviews.
- Tasko: a task manager REST API with JWT auth and a full test suiteProject · Oct 2020 – Apr 2021
The backend for a personal task manager: accounts with JWT authentication, per-user tasks with filtering and pagination, avatar uploads, and email notifications, with Jest and Supertest tests on every route.
- Chatly: real-time chat rooms with Socket.ioProject · Nov 2020 – Jan 2021
A real-time chat app where you pick a name and a room and talk live with everyone in it, with a live user list, location sharing and a profanity filter.
- Skycast: weather by place name or by where you areProject · Oct 2020 – Jan 2021
A weather site that geocodes any place you type through Mapbox and shows the current weather, or uses the browser's location with one click. Node.js, Express and Handlebars.
2020
- Three months at ITI: from CRUD apps to a graduation projectExperience · ITI – Information Technology Institute · Jun 2020 – Sep 2020
An intensive summer web track in JavaScript, PHP, Laravel and MySQL that ended with a graduation project scored at 100%.