I build automation and integration backends that survive the boring failures — duplicate webhooks, an API that returns 500 for ninety seconds, an LLM that answers with prose instead of JSON.
Every project below runs locally in a couple of commands, with no paid accounts, and states plainly what is verified and what is not.
🔗 ghl-n8n-lead-automation — GoHighLevel + n8n + AI lead automation
Leads from a website form, Meta Lead Ads, Google Ads and a partner CRM land in GoHighLevel as one clean contact — scored, routed and followed up — without duplicates, and without losing leads when an API is down.
Python · FastAPI · n8n · GoHighLevel API v3 · Anthropic / OpenAI · SQLAlchemy · PostgreSQL
The engineering that makes it work: delivery idempotency and lead identity are handled separately, while per-step memoization lets a retry resume after a partial failure instead of creating a second CRM contact. The 228-test suite includes five concurrent deliveries resulting in exactly one contact. The API v3 integration has been verified against an official HighLevel Sandbox: repeated contact upserts kept one contact ID and repeated opportunity processing reused the existing open opportunity.
60-second case study · 90-second captioned Sandbox walkthrough · n8n runtime proof
📦 order-sync-service — reliable webhook → REST API synchronisation
Order events arrive by webhook, get business rules applied, and are synchronised to a shipping provider's API — through duplicate deliveries, provider outages, timeouts and permanent rejections.
Python · FastAPI · PostgreSQL · Alembic · Docker
The engineering that makes it work: a durable outbox with a dead-letter queue and a fault-injecting mock provider, so every failure path is exercised in CI rather than described in a README. 375 tests, including a pre-publish gate with one negative case per way the gate could be walked around.
60-second case study · Run the six-scenario demo
🤖 ai-support-triage — LLM triage that has to show its work
Classifies a support ticket, retrieves tenant-specific policy evidence, and applies deterministic approval rules before any write action.
Python · FastAPI · Anthropic · BM25 / Ollama embeddings · SQLite / PostgreSQL
The engineering that makes it work: tenant identity comes from credentials and scopes tickets, evidence, idempotency, reviews and traces. Citations are verified against the exact retrieved text, while every write stays behind a deterministic policy gate. The optional measured hybrid retriever reached Recall@4 1.00, MRR 0.95 and 1.00 unsupported-query rejection on the documented 13-case evaluation; BM25 remains the dependency-free default. The 46-test suite runs against SQLite and PostgreSQL, while a separate public Compose job proves a non-root, read-only API container against a clean PostgreSQL service.
Case study · 2-minute captioned walkthrough · Clean Compose proof · Architecture · Retrieval evaluation · End-to-end evaluation
🕸️ catalog-scrape-pipeline — data collection with an audit trail
Three disagreeing supplier feeds become one clean dataset, plus the evidence explaining every record that was rejected, deduplicated, or lost to a failed page.
Python · httpx · Playwright · YAML-configured sources
The engineering that makes it work: rejected rows, duplicate conflicts and page failures are first-class outputs, not log noise — so "why is this product missing?" is answerable.
🧪 booking-qa-suite — a QA engagement, not just a test folder
Risk analysis, manual test cases, API and browser automation, reproducible defect reports and execution evidence for a booking application.
TypeScript · Playwright · CI
The engineering that makes it work: mutation-based verification — defects are deliberately introduced to prove the suite detects them. Coverage says code ran; this says the tests would have caught it.
Also here: sales-manager (Laravel + Vue full-stack) and sales-report (Python CLI, layered tests and a written test report).
Webhook & API integration · Idempotency and retry design · CRM automation (GoHighLevel) · n8n workflow engineering · AI/LLM integration with guardrails · Python backends · Browser automation · Testing & CI
📫 Open to freelance automation and integration work.
