My Projects

Things I've designed, built and shipped to production.

Skedulr preview Featured

Skedulr

Skedulr is a full-stack SaaS platform I built for UK homecare and domiciliary care agencies, replacing spreadsheets and disconnected tools with one system for scheduling, care delivery, compliance, and finance. It includes smart rota building with route optimization, a simple carer mobile app with clock-in/out and digital visit notes, CQC-compliant care plans, automated invoicing and payroll, and a built-in recruitment tool. all backed by tiered pricing for agencies of any size. Designed for a regulated industry, the platform balances an easy, low-tech-literacy interface for carers with powerful back-office automation for office staff, and meets GDPR/CQC compliance standards with ISO 27001 and ISO 9001 certification.

ReactNodejsNestjsMongoDBAWS
Madrasa preview Featured

Madrasa

Madrasa.io is a full-stack web platform I designed and built end-to-end, connecting students around the world with qualified Quran and Islamic studies tutors for live online learning. The platform supports both one-on-one and small-batch class formats, allowing students to learn Quran recitation, Tajweed, Hifz (memorization), and broader Islamic studies at a pace and schedule that suits them. As the sole full-stack developer on the project, I handled everything from the user-facing frontend to the backend systems powering tutor-student matching, class scheduling, and account management — building a platform that works smoothly for students, parents, and tutors across different time zones. A key focus throughout development was creating an experience that feels simple and approachable for users of all technical skill levels, since the platform serves a wide range of age groups and backgrounds, from young children with parental oversight to working professionals fitting in lessons around their day. The result is a reliable, scalable system that brings traditional Islamic education into a modern, accessible online format.

ReactNodejsMongoDBWebRTCVideo Calling
Phase 5 preview Featured

Phase 5

Phase 5 is a SaaS product I built to bring the experience of a physical martial arts studio online, letting instructors teach and manage students through a single digital platform. It supports class scheduling, student progress tracking (belts/ranks), and instructional content delivery, giving martial arts schools the tools to run and grow their training programs remotely just as effectively as in person.

ReactNodejsMongoDBAWStwilio
Legal Advisar preview Featured

Legal Advisar

Legal Advisar is a legal-tech platform that connects people with verified advocates for online consultations, anywhere in the world. A user describes their problem — criminal, family, property, corporate, immigration, tax or cybercrime — chooses an advocate near them or abroad, and meets by secure video call, which removes the geography problem that normally decides who can get decent legal advice. Around the consultation side sits the part I find more interesting: a free, public library of legal texts and plain-language guides, a blog, and a community Q&A, all built so that someone who cannot afford a consultation still leaves with something useful. That mix drove the architecture. The library and articles are content-heavy pages that need to rank in search and load fast for readers on slow connections, so they are server-rendered and cached, with structured data and clean canonical URLs throughout. The consultation flow is the opposite — authenticated, stateful, and privacy-sensitive, handling advocate verification, profiles and availability, booking, and the video session itself. Building both in one product meant keeping a strict boundary between the public content surface and the private consultation surface, with search, multi-country advocate discovery, and a document/purchase flow for paid legal texts layered on top.

Next.jsReactNode.jsMongoDBVideo Consultation
Instagram DM Automation preview Featured

Instagram DM Automation

I built a system that automates and manages Instagram direct messages with AI-powered lead qualification built in. Conversations are initially handled by AI, which engages incoming leads, analyzes intent, and classifies each one as B2C, B2B, or hybrid — assigning a lead-quality score based on the conversation. Human agents can step in and take over any conversation directly from the dashboard at any point, giving the business a hybrid AI-plus-human workflow for qualifying and converting Instagram leads without needing to manage everything inside the Instagram app itself. I built this using Meta's Graph API and Business Manager infrastructure. The platform connects to the business's Instagram account (via Meta App + system user setup) and handles conversations in real time through webhook-based message syncing, with token scoping and permissions managed under the hood.

ReactNodejsMongoDBInstagramMeta Business
Body Runner preview Featured

Body Runner

Body Runner is a browser game I built where your body is the controller. It's a three-lane endless runner, but instead of tapping keys you physically step left or right to change lane, jump to clear a barrier, crouch to roll under a beam, and join both hands to start or retry a run. The webcam feeds a MediaPipe pose model that runs entirely in the browser — no install, no app store, and no video ever leaving the player's device, which was a hard requirement for me since asking people to point a camera at their living room is only reasonable if nothing is uploaded. The interesting engineering is in the gap between a noisy pose signal and a game that feels fair: raw landmarks jitter constantly, so the input layer smooths the skeleton over time, calibrates to each player's height and distance from the camera, and uses tuned thresholds for jump and crouch rather than fixed pixel values. Every one of those thresholds is exposed in a settings panel, along with a skeleton overlay and guide lines, so a player in a cramped room or bad lighting can dial it in instead of giving up. The game itself is a custom canvas renderer with a procedurally generated track, progressive speed scaling, score and best-score tracking, and a live FPS readout — because pose detection and rendering compete for the same frame budget and I wanted that visible. There are full fallbacks too: no camera, or no room to move, and you can swipe the track or use the arrow keys.

Next.jsReactTypeScriptMediaPipeComputer Vision