Full-stack engineer working mostly in TypeScript and Python. I build AI agent infrastructure and the unglamorous parts underneath it: tool-calling loops, retrieval pipelines, sync protocols, and the occasional shell or key-value store written from POSIX primitives to understand how the real ones work.
Engineering student Final Year at ECE,RUET.
- Sethu — offline-first CRDT coordination for flood relief. No server, no accounts; two phones reconcile over animated QR codes.
- TwoGraph-RAG — code intelligence for JS/TS/React: Tree-sitter AST parsing into a Memgraph knowledge graph, hybrid retrieval, AST-safe editing, MCP server.
- TwoClaw — an agent harness where every filesystem and shell mutation is staged against an in-memory overlay and held for explicit approval before it touches disk.
| Languages | TypeScript, Go, Python, C++, C |
| Frontend & mobile | Next.js, React, React Native (Expo), Tailwind CSS |
| Backend | Node.js, Bun, NestJS, FastAPI, tRPC, REST |
| Data | PostgreSQL, SQLite, Drizzle, Prisma, Redis, Qdrant, Memgraph |
| AI/LLM | Anthropic Claude API, OpenRouter, LangChain, RAG pipelines, MCP, agent harness design |
| Infra | Docker, GitHub Actions, AWS S3 |
Agent harness design and approval-gated tool execution. Retrieval that is grounded in structure, not just embeddings. Local-first and offline-first systems, CRDTs, and convergence under bad networks. Writing small versions of big systems (a shell, a Redis, a load balancer) to learn what the abstraction hides.
| Project | What it is | Stack |
|---|---|---|
| Sethu | Hand-written CRDT (~1.7k lines, no library), hybrid logical clocks, content-addressed identity, binary codec at 27.7 bytes/op vs 159 as JSON | React Native, Expo, TypeScript, SQLite |
| TwoGraph-RAG | BM25 + vectors + graph traversal, RRF, cross-encoder reranking, incremental indexing, benchmarks gated in CI | TypeScript, Tree-sitter, Memgraph, Qdrant |
| TwoClaw | Agent, Plan, and Ask modes over one core; immutable audit log; CLI and Telegram adapters share the same session logic | TypeScript, Bun, OpenRouter, Telegraf |
| AdventureBox | Offline-first activity planner; cached local library serves instantly, AI generation refreshes in the background | React Native, Expo, SQLite, Supabase |
| ytrag | YouTube transcripts to structured notes and chat over video content via RAG | Next.js, FastAPI, LangChain, Chroma |
| MemeForge | AI-assisted meme platform with a Konva canvas editor, Server Actions backend, S3 asset storage | Next.js, PostgreSQL, Drizzle, Claude API |
| cache2Db | Redis clone in Go: RESP codec, TTLs, snapshots, eviction; speaks enough RESP for redis-cli |
Go |
| nahid_shell | Unix shell in C on fork/execvp/waitpid, no external libraries |
C |
Everything above is MIT and public, including the parts that aren't finished. What I try to hold to:
- READMEs that state limitations plainly, and measured numbers instead of adjectives.
- Decision logs and ADRs, so the reasoning survives the commit.
- CI on every change; one PR closing one issue.
- MCP servers where an index or tool is useful to other agents, not just my own.
Open to work on production agent infrastructure. Miles to go before I sleep.



