SDE — full-stack, and I build the primitives instead of importing them.
- 🛠️ React on the front, Node.js / Express and Python behind it, C++ when it needs to be fast
- 🧩 Most of my projects run on zero or one runtime dependency — I'd rather understand the layer underneath than import it
- 🤖 Currently building LLM infrastructure: semantic caching, agent loops, RAG with page-level citations
- 🧠 Things I've written from scratch: Raft consensus, the WebSocket protocol, a chess engine, a ReAct agent loop
- 📫 Reach me at priyanautiyal978@gmail.com
| Project | What it is |
|---|---|
| raft-kv | Distributed key-value store on a from-scratch Raft implementation — leader election, log replication, crash recovery, linearizable reads. Zero dependencies. |
| llm-gateway | LLM proxy with semantic caching, circuit breaking, load shedding and per-tenant cost control. Runs with no API keys. |
| url-shortener | Base62 codes with collision handling, Redis cache-aside redirects, and a Lua-backed sliding-window rate limiter. |
| chess | C++20 0x88 engine verified with perft, an alpha-beta opponent, and network play. No dependencies. |
| doc-intelligence | Ask your PDFs a question, get answers cited to the exact page. Express + pgvector + BullMQ. |
| chat-api | Real-time chat with rooms, presence and history over a WebSocket implementation written from scratch. |
| auth-service | JWT auth with refresh-token rotation, reuse detection, scrypt passwords and RBAC. |
| inbox-agent | Mail → action items → tracker. Hand-written tool-use loop with idempotent writes and a resumable journal. |
Languages
Backend
Data
AI
Frontend & tooling
I send patches to the tools I build on:
- typeorm/typeorm —
perf: use performance.now() for query execution timing.QueryRunner.query()measured elapsed time withDate.now(), a wall-clock source that an NTP correction can move mid-query. - brianc/node-postgres — the PostgreSQL client for Node.js.
- FlowiseAI/Flowise — visual builder for LLM applications.