# Nikhil Mishra > Backend and product engineer in Kolkata. I help teams build AI products and scale them — agentic systems, data pipelines and LLM backends. Currently at Vryse and Augusta Labs. ## Experience - Product Engineer, Vryse (Jan 2026 – Present): GEO platform. I own the measurement engine, multi-tenant access and the Slack agent. - Backend Engineer, Augusta Labs (Mar 2025 – Present): Applied-AI lab in Lisbon. Agentic systems, data pipelines and search for enterprise clients. - Founding Backend Engineer, Memow (Jan 2025 – Apr 2025): Moved the whole cloud to Backblaze (5× cheaper), made pages 50% faster and cut release cycles 40% with CI/CD. - Contract Backend Engineer, MaxInt (Jun 2024 – Jul 2024): Infrastructure as code on AWS with Terraform and GitHub Actions — 50% faster deploys, zero manual config errors. ## Projects: systems ### [Delivery Brain](https://godnik.in/projects/delivery-brain) — Augusta Labs × Diamant Software, 2026 An agentic teammate for an engineering org. A client system built with three teammates in about two weeks. It watches Azure DevOps boards and pull requests, raises evidence-backed delivery risks, lets an LLM triage them, and hands approved work to AI coding agents. I owned the deterministic side — the risk detectors and the Inngest workflows that queue their signals for triage, plus the review queue and screens — and the graph context the agents plan with: a Neo4j graph of the org and a Qdrant-indexed graph of the code, refreshed every 30 minutes and exposed as read-only Mastra tools. - Detect & triage: Azure DevOps (work items · PRs) → risk detectors (12, deterministic) → Inngest (durable workflows) → LLM triage (create · merge · ask) → human review - Ground the agents: [org graph (Neo4j) | code graph (Qdrant · 7 repos)] → graph context API → agent tools (Mastra, read-only) → coding agent (plan → PR) - Outcomes: 12 deterministic delivery-risk detectors; 7 repositories in the code graph; 30 min graph refresh cycle - Stack: TypeScript, Bun, Hono, Inngest, Mastra, Neo4j, Qdrant, Next.js ### [AI booking assistant](https://godnik.in/projects/booking-assistant) — Augusta Labs × 3t Global, 2026 Four siloed systems, one human-approved offer. 3t Global trains offshore and industrial crews. Coordinators re-key every booking across four systems that share no IDs. This assistant reads them all and drafts dated, prerequisite-checked offers — a coordinator approves every send and every booking. I built the intake that turns two request sources into one case shape, the prerequisite engine — rule checks plus an LLM reader whose every point must quote the source text — e-learning routing, and the whole certificate-expiry agent, including a port of the legacy SQL procedure that reproduces its output row for row. Piloting on live requests; writes to 3t’s systems stay held back until a person releases them. - Certificate-expiry agent: daily sweep → [legacy TMS (ported SQL procedure) | training platform (expiries export)] → group (one case per delegate) → refresher resolver (from prerequisite rules) → [already handled? (bookings · newer certs) | prerequisite check] → dates before expiry (last 90 days first) → coordinator gate - Request pipeline: [legacy TMS (request forms) | training platform (request export)] → intake & dedupe (one case shape) → [course resolver | e-learning router] → prerequisite reader (LLM, quote-verified) → date search (live runs) → draft reply → coordinator gate - Outcomes: 83% of pilot cases (714 of 855) needed no human read of prerequisite text; Daily expiry pickup, down from a 19–36-day cycle; 43 / 43 rows matched when porting the legacy procedure - Stack: TypeScript, Bun, Azure SQL, Azure AI Foundry, App Service ### [GEO measurement engine](https://godnik.in/projects/geo-engine) — Vryse, 2026 How often do AI answers mention your brand? Vryse tracks how brands show up inside AI answers. Each run sends a brand’s prompts to up to five answer engines, works out which companies the answers actually mention and cite, and turns that into Share of Voice and visibility scores. I moved the pipeline from in-request code onto durable Trigger.dev runs with idempotent batches and retry budgets, so a partial failure re-queries only the prompts that failed. I built entity resolution that matches mentions by domain, identity tokens and learned aliases, resolved AI Overview and Vertex redirect citations to real publishers, and moved report reads onto a materialised cache. Along the way: Perplexity’s 429s turned out to be a concurrency ceiling, not a rate limit. - Flow: brand prompts → durable fan-out (Trigger.dev) → [ChatGPT | Gemini | Perplexity | AI Overviews | Claude (opt-in)] → company extraction (batched LLM) → entity resolution (domain · tokens · aliases) → Share of Voice (materialised cache) - Outcomes: 5 AI answer engines per run; −76% prompt-row reads per report (60 → 14.5 MB) - Stack: Trigger.dev, Express, Firestore, OpenAI, Claude, Gemini, Perplexity ### [GEO agent for Slack](https://godnik.in/projects/geo-agent) — Vryse, 2026 Onboarding by conversation, not by form. Takes a brand from its website to a first AI-visibility report without leaving Slack or Google Chat. The conversation is a pure state machine with an effect engine — fourteen states, unit-tested without a network. The model only reads replies (English and Hinglish) and drafts text; every number in a reply comes from code. Each chat runs on its own Trigger.dev queue, so messages are handled in order and exactly once. Running in pilot. - Flow: Slack · Google Chat → gateway (verified webhooks) → per-chat queue (Trigger.dev, in order) → 14-state machine (pure transitions) → [backend API (as the user) | LLM (structured output)] → reply - Outcomes: 14 conversation states, tested without a network; 18/18 live golden set, English & Hinglish - Stack: TypeScript, Hono, Trigger.dev, Neon Postgres, OpenAI, Zod ### [Multisector](https://godnik.in/projects/multisector) — Augusta Labs, 2025 Matching 400,000+ companies to public funding. An AI platform that matches Portuguese companies to public funding incentives. I built the incentive extraction pipelines — collect each notice’s PDFs, parse and clean them, have an LLM extract dates, budgets and eligibility, merge per notice and fall back to a second pass to fill gaps — and loaded and indexed the 400k+ company profiles, 168 fields each with 24 years of revenue. Matching is company-first: shortlist by filters, then match eligibility within the shortlist. - Incentive ingestion: [PRR portal (open calls) | PT2030 (public notices)] → collect PDFs → parse & clean (budget · date sections) → LLM extraction (dates · budget · eligibility) → merge per notice (non-null wins) → LLM fallback (fills the gaps) → upsert (Postgres) - Company-first matching: search → [SQL filters | vector search] → company shortlist (filters first) → incentive search → eligibility match (query ∩ shortlist) → results - Outcomes: 400k+ company profiles, loaded and indexed; 168 fields per company profile; 24 yrs of revenue history per company - Stack: TypeScript, Bun, Hono, PostgreSQL, OpenAI, Pinecone ## Projects: products & tools ### [create-augusta-app](https://godnik.in/projects/create-augusta-app) — Augusta Labs, 2026 Pick a stack, get a production-shaped repo. An interactive Bun CLI: pick a stack and features, and it copies a CI-tested “golden template”, prunes what you didn’t pick, mints local secrets and installs agent skills for Claude Code and Codex. I built the React + FastAPI stack from scratch — Postgres with Alembic, Redis, S3, Qdrant, Meilisearch, Inngest, Langfuse and more, each optional — plus optional JWT auth (Argon2, reset tokens bound to the password hash) and agent harnesses for Mastra and the OpenAI Agents SDK with eval smoke tests. - Flow: pick stack & features → golden template (CI-tested) → prune unselected (feature manifests) → mint local secrets → install agent skills (Claude Code · Codex) - Outcomes: 13 optional features in the FastAPI stack; 14 agent-skill packs mapped to stacks; 3 agent frameworks scaffolded - Stack: Bun, TypeScript, Python, FastAPI, React, SQLAlchemy ### [DeckIQ](https://godnik.in/projects/deckiq) — Product site, 2026 Shipped solo in three days. The production marketing site for DeckIQ, a pitch-deck analytics product: landing page, a Sanity blog with an embedded Studio, and a waitlist. Pages revalidate on a signed webhook and degrade gracefully if the CMS is down. The waitlist absorbs bot submissions and rate-limits by salted IP hash — raw IPs are never stored. - Blog: Sanity Studio → publish webhook (signed) → revalidate (cache tags) → Next.js pages (ISR) - Waitlist: form → API (honeypot · rate limit) → salted IP hash → Neon Postgres (idempotent upsert) - Outcomes: 3 days from first commit to production; 10 production deploys in those days - Stack: Next.js 16, React 19, Sanity, Neon Postgres, Vercel ### [GYST](https://godnik.in/projects/gyst) — Augusta Labs, 2025 Seven creator platforms, one source of truth. GYST gives creators one view of their business across YouTube, Instagram, TikTok, Twitch, Patreon, Beehiiv and Fourthwall. I built the data service’s sync backbone — a bucketed scheduler that spreads users across two-minute ticks, the YouTube and Beehiiv integrations with Redis-cached, quota-aware YouTube reads, and the aggregation service that normalises every platform into one daily row with per-platform shares. - Flow: OAuth connect → bucket scheduler (60 buckets · 2-min tick) → [YouTube | Instagram | TikTok | Twitch | Patreon | Beehiiv | Fourthwall] → platform sync (token refresh · upserts) → aggregation (one row per user per day) → dashboards - Outcomes: 7 creator platforms behind one sync interface; 2 h Redis cache window for YouTube reads - Stack: TypeScript, Bun, Hono, PostgreSQL, Drizzle, Redis ### [AI landing-page generator](https://godnik.in/projects/landing-page-generator) — Vryse, 2026 From a brand’s URL to an on-brand page. Headless Chrome crawls a brand’s site and extracts its design system — colours, fonts, logo, navigation. Claude writes the copy as typed JSON for a human to review, then lays the approved copy out as one self-contained, responsive page. Opus generates with retry and failover to Sonnet, Sonnet handles plain-English edits, Haiku clusters topics. The MVP — crawler, generation and a visual editor — took three days. - Flow: brand URL → Puppeteer crawl (colours · fonts · nav) → copy (Claude, typed JSON) → human review → layout (Claude, one HTML file) → edits (plain English) - Outcomes: 3 days to a working MVP; 25 API endpoints across 8 routers; 3 Claude tiers with retry and failover - Stack: TypeScript, Express, Puppeteer, Claude, Drizzle, Docker ### [Marketplace rank tracker](https://godnik.in/projects/rank-tracker) — Vryse, 2026 Weekly ranks from a shadow-DOM marketplace. Tracks where a product ranks for its keywords in an app marketplace built as a shadow-DOM single-page app, and emails the week’s changes. Every check ends found, absent or failed — failed checks write no history, so a timeout never shows up as a rank drop. Runs are idempotent, Chrome recycles tabs to stay inside memory, and an out-of-memory kill moves the job to a bigger machine automatically. - Flow: weekly cron → headless Chrome (2 tabs) → walk shadow DOM → match listing (id, then name) → [found | absent | failed (no history)] → rank history (52 weeks) → change email - Outcomes: 3 outcomes per check, so failures never read as drops; 52 weeks of rank history per keyword - Stack: Trigger.dev, Puppeteer, Firestore, Resend ## Projects: freelance ### [elephantroom](https://godnik.in/projects/elephantroom) — Freelance, 2026 AI home design, presented. Co-built the marketing site for elephantroom, an AI interior-design app. I engineered the style carousel’s motion — proximity-based easing, timed pauses and snap-to-centre on featured styles, synced to the hero phone screen — and the auto-scrolling brand carousel. Our build became the base of the live site. - Stack: Next.js, React, TypeScript, Framer Motion, Embla ### [Modernstone](https://godnik.in/projects/modernstone) — Freelance, 2025 A lead-gen site in a day. Built the first version of Modernstone’s lead-generation site in about a day: animated hero, services, a four-step process and the contact flow. The client’s developer has restyled it since. - Stack: Next.js, TypeScript, Tailwind CSS, shadcn/ui ### [Age Medical](https://godnik.in/projects/age-medical) — Freelance, 2026 From booked appointment to issued invoice. A connected clinic platform — patient portal plus doctor and admin apps for scheduling, invoicing, reports and chat — built with a team of six. I built the scheduling API client, the paid booking → invoice bridge with an idempotent per-booking ledger, the session, role and ownership guard layer in front of the API, unified notifications, and doctor–patient chat with read receipts and attachments. - Booking → invoice: booking (scheduling platform) → [signed webhook | reconcile poll (missed-webhook fallback)] → appointment upsert (Postgres) → [notify patient + doctor | mark paid] → invoice ledger (pending → created / failed) → invoice + PDF - Care-team chat: doctor / patient → route guard (session · role · ownership) → participant check → message store (cursor paging) → unread counts (one SQL aggregate) - Outcomes: 78 / 83 API routes behind one guard; N+1 → 1 query for unread counts - Stack: Next.js 16, TypeScript, Neon Postgres, Drizzle, better-auth, TanStack Query ### [Nivara](https://godnik.in/projects/nivara) — Freelance, 2025 A launch site in fifteen hours. Built the launch site for Nivara, a Y Combinator–backed AI-adoption analytics startup, solo in about fifteen hours — including a GSAP orbit that animates AI-tool logos along SVG paths. It shipped to production; the company has since replaced it. - Stack: Next.js 16, TypeScript, Tailwind CSS, GSAP ### [FengShui Modern](https://godnik.in/projects/fengshui-modern) — Connective Labs, 2025 Feng shui, read from a photo. An AI feng shui app for Connective Labs, co-built with two collaborators. Upload a room photo and GPT-4o vision returns furniture moves as normalised coordinates, drawn as numbered markers on the image. Paid analyses run through Stripe Checkout with a verified webhook, plus Firebase auth, storage and PDF reports. - Analysis: room photo → GPT-4o vision (normalised coordinates) → numbered moves (on the photo) → PDF report - Payments: Stripe Checkout → signed webhook → mark paid (Firestore) - Stack: Next.js 15, TypeScript, GPT-4o, Stripe, Firebase ## Projects: open source & hackathons ### [Sahakshak](https://godnik.in/projects/sahakshak) — Diversion 2k24, 2024 Cases, records and evidence, linked. A police case-management platform built by a team of four at the Diversion 2k24 hackathon. I owned the backend: Mongoose schemas for cases, criminal records and evidence, 18 REST endpoints, a request-timeout guard and Firebase Storage image uploads, deployed as a serverless function. - Flow: [web app | mobile app] → Express API (18 endpoints) → [MongoDB (cases · records · evidence) | Firebase Storage (evidence images)] - Stack: Node.js, Express, MongoDB, Firebase Storage, Vercel ### [macros](https://godnik.in/projects/macros) — Open source, 2026 Ask the tracker what to eat. Contributed to a friend’s open-source macro tracker: Gemini-powered meal recommendations and an “Ask AI” food checker with Zod-validated structured outputs, per-day goal history on libSQL, and a mobile UI pass. - Flow: question → Vercel AI SDK → Gemini (Zod-validated output) → recommendation - Stack: TypeScript, TanStack Start, Gemini, Zod, libSQL ### [LinkSnap](https://godnik.in/projects/linksnap) — Side project, 2024 Short links, honest analytics. A URL-shortener API: custom aliases, expiring links, bulk creation, QR codes and per-link click analytics by browser, referrer and day — behind JWT and API-key auth with tiered rate limits, and integration-tested against an in-memory MongoDB. - Flow: create link (JWT or API key) → rate limit (3 tiers) → short code (nanoid or alias) → redirect → click analytics (browser · referrer · day) - Stack: Node.js, Express, MongoDB, Jest ## Writing - [AWS VPC Deep Dive: Designing Subnets, Route Tables, and NAT Gateways](https://www.blackslate.io/articles/aws-vpc-deep-dive-designing-subnets-route-tables-and-nat-gateways) (Blackslate, Jul 2025) - [Deploying and Maintaining Containers Using AWS ECS](https://www.blackslate.io/articles/deploying-and-maintaining-containers-using-aws-ecs) (Blackslate, Jul 2025) - [Understanding ACID Properties in MongoDB](https://www.blackslate.io/articles/understanding-acid-properties-in-mongodb) (Blackslate, Aug 2024) - [Exploring API Architecture Styles: SOAP, REST, WebRTC, GraphQL, and Webhook](https://nikk.hashnode.dev/exploring-api-architecture-styles-soap-rest-webrtc-graphql-and-webhook) (Hashnode, Apr 2024) - [Building Real-time Video Calling with WebRTC and Node.js](https://www.blackslate.io/articles/building-real-time-video-calling-with-webrtc-and-node-js) (Blackslate, Sep 2023) - [The Single-Threaded Nature of JavaScript and Node.js](https://nikk.hashnode.dev/unveiling-the-single-threaded-nature-of-javascript-and-nodejs-the-waiter-and-the-restaurant-analogy) (Hashnode, Jul 2023) - All 30 on blackslate.io: https://www.blackslate.io/author/nikhil-mishra - 18 more on Hashnode: https://nikk.hashnode.dev ## Contact - Email: mnik7044@gmail.com - GitHub: https://github.com/mnik7044 - LinkedIn: https://www.linkedin.com/in/nikhil-mishra-8a6710244/ - X: https://x.com/nikktwts - Website: https://godnik.in