Blog

Writing about engineering leadership, system architecture, and building products at scale.

The ALTER TABLE That Killed My Deploy

How a single schema migration took down production for 4 minutes, and the expand-contract pattern that fixed it.

Apr 17, 202610 min

Streaming LLM Responses in Production: SSE, Backpressure, and Per-Tenant Token Budgets in Next.js

How we built real-time AI feedback streaming for HyrecruitAI interviews — handling SSE reconnection, backpressure, and per-tenant cost attribution.

Apr 17, 20268 min

Building AI Guardrails for LLM Responses in Production

How we stopped our interview AI from going off-script, leaking PII, and giving biased feedback — with a multi-layer guardrail system in TypeScript.

Apr 12, 20267 min

Semantic Caching for LLM Responses: Cutting Inference Costs by 58%

How we built a two-layer semantic cache using pgvector and Redis to dramatically reduce LLM API costs in a high-throughput interview platform.

Apr 11, 20269 min

Prompt Versioning in Production: How We Stopped Shipping Prompt Changes Blind

How we built a lightweight prompt versioning system at HyrecruitAI to track, test, and roll back LLM prompts without deploying code.

Apr 10, 20268 min

Embedding-Based Candidate Matching: How We Built Semantic Search for AI Hiring

How we replaced keyword filters with vector embeddings to match candidates to jobs at HyrecruitAI — architecture, pitfalls, and production results.

Apr 7, 20268 min

How We Version and Safely Deploy LLM Prompts Across Interview Types

A practical system for managing prompt versions, running A/B tests, and rolling back without a full redeploy — built for HyrecruitAI's verbal, coding, and quiz evaluations.

Apr 5, 202610 min

Rate Limiting AI Endpoints in a Multi-Tenant SaaS: Sliding Windows, Redis, and Cost Protection

How we built tenant-aware rate limiting at HyrecruitAI to protect LLM API costs, prevent abuse, and keep p99 latency under control — with Redis sliding windows and per-tier quotas.

Apr 4, 20269 min

Implementing Subscription Billing with Razorpay in a Multi-Tenant SaaS

How we integrated Razorpay subscriptions at HyrecruitAI — webhook reliability, tenant-scoped billing, failed payment recovery, and the edge cases that almost cost us revenue.

Apr 2, 20269 min

Building a Real-Time Voice Agent for AI Interviews: Whisper, WebSockets, and LLM Turn-Taking

How we engineered the voice pipeline at HyrecruitAI — streaming audio over WebSockets, transcribing with Whisper, and orchestrating LLM responses in under 800ms.

Apr 2, 20269 min

How We Built an LLM-Based Evaluation Engine for Interview Answers

Inside HyrecruitAI's AI evaluation engine — prompt engineering, rubric design, consistency scoring, and bias mitigation for fair interview assessments.

Mar 1, 20267 min

Building Real-Time Video Interviews with WebRTC

How we built reliable real-time video interviews at HyrecruitAI using WebRTC — signaling, TURN/STUN servers, network resilience, and recording.

Feb 10, 20266 min

Building an AI-Powered Interview Platform from Scratch

A deep dive into the technical architecture behind HyrecruitAI — request flow, latency budgets, the AI interview agent, real-time transcription, and the data pipeline.

Jan 20, 202610 min

PostgreSQL Performance Patterns We Use at HyrecruitAI

Practical PostgreSQL optimization strategies — indexing, query tuning, connection pooling, and monitoring in production.

Dec 28, 20256 min

Scaling Engineering Teams: Lessons from Building HyrecruitAI

What it actually looks like to grow from 2 to 15 engineers at a seed-stage AI startup — team structures, hiring mistakes, RFC processes, and the metrics that matter.

Dec 15, 20259 min

From Code to Production: Our CI/CD Pipeline with Azure and GitHub Actions

How we deploy HyrecruitAI from code to staging to production using Azure and GitHub Actions, with environment management and rollback strategy.

Nov 20, 20256 min

Why We Chose Drizzle ORM Over Prisma for Production

A practical comparison of Drizzle and Prisma from the perspective of running a production SaaS — type safety, migrations, and query performance.

Oct 5, 20255 min

Why We Chose a TypeScript Monorepo for Our Startup

The multi-repo pain that drove us to a TypeScript monorepo at HyrecruitAI — specific bugs, quantified benefits, and when this approach does NOT work.

Sep 10, 20258 min

Building a Multi-Tenant SaaS with Next.js

How we architected HyrecruitAI for multi-tenancy — tenant isolation, subdomain routing, and the shared vs isolated database decision.

Aug 15, 20255 min

What Maintaining Open Source Projects Actually Taught Me

Hard-won lessons from building and maintaining open-source projects — community, PRs, docs, and avoiding burnout.

Jul 12, 20255 min

Setting Up a TypeScript Monorepo with Turborepo That Actually Scales

A practical guide to structuring a TypeScript monorepo with Turborepo — workspace layout, shared packages, caching, and CI.

Jun 1, 20256 min

Technical Decisions That Shaped HyrecruitAI

The key technical bets we made building an AI hiring platform — and which ones paid off.

May 18, 20257 min

Building Developer Communities: From GDSC Lead to Startup Founder

What I learned growing developer communities of 400+ members — and how those lessons apply to building a startup.

Apr 10, 20257 min