Product I founded
Marquee
WhatsApp-native AI product photography for Indian micro-sellers. Send a product photo on WhatsApp, get a brand-ready ad back in minutes
What I built
- Cut per-image latency 57% (40.6ms to 17.4ms) with byte-identical output by eliminating five redundant image decodes
- Benchmarked a Go rewrite at 2x slower because the workload was decode-bound, and rejected it on the evidence
- Built an AI image pipeline with Gemini to OpenAI failover, gating every result on deterministic quality checks
- Architected a pnpm monorepo of 3 apps and 10 packages: Fastify API, queue worker and Next.js storefront on Postgres
- Built conversational commerce on the WhatsApp Cloud API: a session state machine over intake, payment and delivery
- Built a round-robin key pool across four AI providers, migrating 25 call sites off direct environment reads
- Deployed a queue-backed service to Kubernetes autoscaling on queue depth, not CPU, for an I/O-bound worker
- Instrumented a multi-service queue with Prometheus and Grafana: queue depth, per-job outcome and event-loop lag
- Load-tested the WhatsApp webhook at 408 requests per second across 24,471 requests with zero failures, 77ms p95
- Containerized a pnpm monorepo as one multi-stage image with two entrypoints, Postgres, Redis and a migration step
- Shipped production readiness: versioned migrations, CI secret scanning, a placeholder- secret guard and a runbook
How the numbers were measured
Cut per-image latency 57% (40.6ms to 17.4ms) with byte-identical output by eliminating five redundant image decodes
Median of 5 runs over 7 real before/after pairs in his own repo, measured with the committed benchmark (packages/ai/bench/); output equality verified field-by-field across all 7 pairs. Numbers are in commit 8274a72's message (40.6 -> 17.4 ms/image); an independent re-run on 2026-09-03 reproduced the "after" side at 120.5 ms total vs the committed 121.9 ms.
Architected a pnpm monorepo of 3 apps and 10 packages: Fastify API, queue worker and Next.js storefront on Postgres
Directory facts, recounted 2026-09-03: apps/{api,web,worker}, and 10 packages each with a package.json (ai, db, email, keypool, metrics, payment, queue, session, storage, whatsapp). The draft said 9; @autmn/metrics landed 2026-08-24 after the bullet was written.
Built a round-robin key pool across four AI providers, migrating 25 call sites off direct environment reads
Commit b1ac854 enumerates all 25 sites across 23 files by name (19 Gemini, 5 fal.ai, 1 Groq, 1 Sarvam); recounted 2026-09-03. The pool itself has 51 passing tests (packages/keypool).
Load-tested the WhatsApp webhook at 408 requests per second across 24,471 requests with zero failures, 77ms p95
k6 scenario committed at ops/k6/webhook-load.js. One-minute ramp to 20 concurrent connections against the containerized stack; all four numbers (24,471 requests, 0 failures, 77 ms client p95, 408 req/s) are recorded in commit dab9c68's message, with the matching 24 ms server-side p95 read from Prometheus.
Built with
TypeScriptNode.jsFastifypnpmMonorepoPostgreSQLPrismaRedisBullMQQueuesWhatsApp Cloud APIState MachinesGeminiImage ProcessingQuality GatesDockerDocker ComposeNext.jsTailwindOpenAIfal.aiGroqRazorpayKubernetesKEDAKustomizePrometheusGrafanak6GitHub ActionsgitleaksSentryZodsharpVitestGoSupabase StorageWebhooksHMAC verificationRate LimitingPrisma MigrationsSarvamResendBull BoardPinoKindProm ClientExiftool
Why this stack
go. A real reimplementation of the QA gates with goroutines and Go benchmarks (services/imageqa), built to evaluate a rewrite and rejected on its own measurements; say exactly that in interviews. Kubernetes/keda. Manifests verified against a kind cluster, never hosted for paying traffic. Supabase-storage. The hosted driver; a local-disk driver (STORAGE_DRIVER=local) was added 2026-09-03 so the compose stack runs from a clean clone with no hosted dependency. Whatsapp-cloud-api. Interactive messages, media, HMAC-verified webhooks; the business ran on it, but it cannot be demoed cold (Meta business verification), which is why the demo drives the state machine directly and says so.