Projects
Things I've built to learn: retrieval and ML systems, and low-level systems work written from scratch.
-
Dense + sparse retrieval combining FAISS, BM25, RRF fusion, and cross-encoder reranking. Built to handle both semantic similarity and exact-match queries that pure dense retrieval misses.
-
An AWS security scanner that checks S3, EC2, IAM, RDS, NACLs, load balancers, and CloudTrail for common misconfigurations. Scans run asynchronously through a Redis queue, findings are tracked from open to resolved, and alerts go to Slack or Telegram.
-
End-to-end RAG pipeline for question answering over custom documents. Sentence transformers for embedding, FAISS for retrieval, LLM for generation. Includes chunking strategy comparison and offline retrieval evaluation.
-
A production-style URL shortener built with FastAPI, Redis, and PostgreSQL. It uses Redis caching for redirects, rate limiting, and background analytics jobs, with Prometheus and Grafana for observability and k6 for load testing.
-
An in-memory, multi-threaded ledger used to study lock granularity, deadlock-free lock ordering, and CAS versus locking under uniform and hotspot contention, with JMH benchmarks and stress tests that check the invariants.
-
A sharded, fixed-capacity key-value store in C++ with per-shard LRU eviction, lock striping and no heap allocations at runtime. Built to understand cache eviction, memory layout and concurrent data structures.
-
A single-producer, single-consumer ring buffer in C++ built on std::atomic with explicit acquire/release ordering and a power-of-two capacity. It is about 7–8× faster than std::queue with a mutex over 10M operations.