# Engineering articles

URL: https://shahid09.is-a.dev/engineering/
Author: Muhammad Shahid (https://shahid09.is-a.dev/)

What I learned building backends and AI systems for products with millions of users: the problems, the fixes and the trade-offs, with code you can reuse.

- [How we kept a backend fast at 300M+ users: indexes, Redis and RPC failover](https://shahid09.is-a.dev/engineering/scaling-backend-300m-users-mongodb-redis/): How the DOP backend stayed fast at 300M+ users: finding slow MongoDB queries, compound indexes, Redis caching for read-heavy routes and failover across 5 RPC providers.
- [Scaling a Node.js API from 200K to 1M users with 60% faster responses](https://shahid09.is-a.dev/engineering/scaling-nodejs-api-200k-to-1m-users/): How the CV Maker backend grew from 200K to 1M+ users with about 60% faster APIs: MongoDB indexes, aggregation pipelines, response caching, pagination and safer errors.
- [How I built a WhatsApp and Telegram AI support bot with Claude in under 400 lines](https://shahid09.is-a.dev/engineering/whatsapp-ai-support-bot-claude-nodejs/): How I built an open-source WhatsApp and Telegram AI support bot in Node.js: answers from your docs with Claude, saves leads, hands chats to a person. Design and code.
- [Why users get logged out at random, and how to fix JWT session bugs](https://shahid09.is-a.dev/engineering/jwt-random-logouts-fix/): Why users get logged out at random with JWT sessions, and how to fix it: refresh races between tabs, expiry and clock skew, cookie settings and secrets across servers.
- [Building AI agents with LangGraph and n8n: what works in production](https://shahid09.is-a.dev/engineering/ai-agents-langgraph-n8n-production/): Taking AI agents to production: when to use n8n, LangGraph or plain code, validating tool calls, evaluating before release, and keeping cost and latency down.
