I build systems that survive production. Duplicate webhooks, dead credentials, APIs that return 500 at 3am, a model that answers confidently and wrongly — the failures that quietly cost money while every dashboard stays green.
Full-stack and AI engineer, 9+ years, across healthcare, fintech automation, travel, logistics and mobile. Available for remote work and freelance projects.
Real executions from one of the repos below. The red rows are deliberate — forced failures, to prove the error handling works.
A voice-first digital partograph for labour rooms. A clinician records one bedside voice note; on-device AI extracts the WHO-standard clinical fields and the live partograph updates for every assigned team member, with a WHO-compliant PDF generated automatically at delivery.
Monorepo: FastAPI backend (44 routes, task-based permissions, full audit logging), Next.js admin panel, Expo / React Native clinical app, Celery workers for the voice pipeline and PDF rendering. Swappable AI adapters — ASR via mlx-whisper or faster-whisper, extraction via Ollama or vLLM — so it runs fully offline on Apple Silicon in development and deploys to AWS by swapping implementations. A single FastAPI OpenAPI schema generates the TypeScript client, so the contract cannot drift.
Private repository — happy to walk through the architecture on a call.
Real-time indoor navigation and tracking on React Native / Expo, with no beacons or fixed infrastructure. Device sensor fusion through a wayfinder sensor pipeline, live position streaming over WebSocket, Firebase for auth and state, SVG floor-plan rendering. iOS and Android.
A travel-demand nowcaster and occupancy-optimising dynamic-pricing engine for short-term rentals. Estimates inbound demand around a date across adjustable windows, converts it into room-night demand against local supply, and returns the probability a property is fully occupied — then prices from it. Pure-stdlib Python with a zero-build dashboard.
A TypeScript shipping-rate service wrapping the UPS Rating API, built so FedEx, USPS and DHL slot in behind the same interface, and so label purchase, tracking and address validation extend the same shape. 62 tests.
Four systems, each imported into a real n8n 2.40.5 instance, executed against Postgres 17, and screenshotted. Including the failure paths.
| What it proves | Verified | |
|---|---|---|
| n8n-support-desk | Gmail and live chat sharing one answer engine. Replies grounded in your own content, threaded correctly, non-support routed out, missing knowledge recorded instead of invented. | 22 executions · 69 tests |
| n8n-revenue-automation-kit | Payment to course enrolment, failed-payment dunning across days, error alerting, nightly reconciliation. A Zapier to self-hosted migration. | 6 executions · 44 tests |
| n8n-lead-intake-routing | Lead dedupe enforced by the database, AI qualification with hard rules that override the model, round-robin routing, sequences that stop the moment a lead replies. | 18 executions · 51 tests |
| n8n-ecommerce-ai-agent | WooCommerce support agent with a three-condition confidence gate and human handover, order lifecycle, abandoned-cart and low-stock watch. | 13 executions · 57 tests |
Idempotency is a database constraint, never a lookup.
Checking whether an event exists and then inserting it is a race two concurrent webhooks will win. INSERT ... ON CONFLICT DO NOTHING RETURNING lets the database decide. A replayed payment webhook exits in 34ms with zero side effects instead of enrolling someone twice.
A failed check is not a negative answer. If the system cannot reach an API to confirm someone paid, it stops and tells a human. It never assumes and acts. That one rule is the difference between a dunning sequence and a system that revokes a paying customer's access during an outage.
Hard rules outrank the model. An LLM returning a confident wrong score is worse than no score. Business rules run after the model and can only add caution, never remove it. Anything touching money goes to a person regardless of confidence.
- signal-saas-mvp-demo — SaaS MVP: feedback and feature-request tracker on real Supabase auth and Postgres · live
- ecommerce-discount-api — cart and checkout API with an every-Nth-order coupon engine, TypeScript, 24 tests
- trello-backend — Trello-style REST API in Node and SQLite, 30 tests
- shisha-delivery-dubai — product-led delivery site with a WhatsApp order builder · live
- Habit Tracker — local-first PWA for up to 15 habits: reminders, calendar, streaks and an analytics dashboard, fully offline on IndexedDB · live
Backend Node · TypeScript · Python · FastAPI · Express · Celery Frontend React · Next · React Native · Expo Data Postgres · Supabase · Redis · SQLite · IndexedDB AI OpenAI and Claude APIs · Ollama · vLLM · Whisper / mlx-whisper · retrieval and structured outputs Automation n8n · webhooks · REST · Docker · Playwright Cloud AWS · Vercel · Terraform
Every repo here ships with a test suite that fails the build if a node loses its retry settings or an error output gets rewired into the success branch. That bug is easy to introduce and invisible until it costs a customer.




