Personal projects

This page lists some of my personal projects. Many of them are small C programs and backend systems built to understand how software works internally. Most of these projects started from curiosity and the desire to better understand the systems and research papers behind them.

Most of the work here lives on GitHub.

Projects on GitHub

Apr 2025
Storage Vault

A scalable file‑sharing platform built with Go (Gin), PostgreSQL, Redis, AWS S3, and Elasticsearch. Includes JWT auth, OTP verification, and pre‑signed URLs for secure uploads. Uses Bloom filters and SHA‑256 hashing for duplicate detection and storage savings. Full‑text search over files, token‑based sharing links with expiry, and Redis caching for performance.

Feb 2026
tcp-ip-stack

A TCP/IP stack implemented from scratch in C to understand how packets move through the network stack — from the link layer up through IP and TCP. Built for learning: parsing headers, handling connections, and seeing what happens below the socket API.

Jan 2026
coldmail

A minimal SMTP client written in C that talks directly to mail servers. No libraries — just sockets, EHLO, MAIL FROM, RCPT TO, and DATA. Built to see how email actually moves across the wire and how MX records and SMTP handshakes work in practice.

Apr 2025
Swaasthya

A centralised hospital management system in Go with PostgreSQL (region‑based sharding), Redis, Apache Kafka, and Kubernetes. Designed for fault tolerance and high availability: Redis rate limiting and smart queueing for traffic surges, Kafka pipelines for batch processing to cut DB load, and near real‑time sync of patient and hospital data across distributed environments.

Jan 2026
memloc

A word‑based dynamic memory allocator in C with a private heap, compact metadata headers (size, allocated flag), and block traversal. Implements alloc, free, block splitting, and heap dump utilities for debugging. Built to understand how allocators manage blocks, coalescing, and fragmentation without relying on the system malloc.

Jan 2026
rpc

A small RPC‑style request/response layer in C for learning how remote procedure calls work under the hood — serialisation, framing, and matching replies to requests without pulling in a full RPC framework.

Dec 2025
http-1.1

A minimal HTTP/1.1 server in Go that parses requests, routes handlers, and writes responses by hand. Built to understand the protocol — request lines, headers, body, connection lifecycle, and how a real server manages concurrent connections without leaning on a framework.

Nov 2025
project-t

Project Synapse — a private knowledge management system that captures text, URLs, and images and lets you search by meaning. Go backend with PostgreSQL and ChromaDB for embeddings, Claude (via LiteLLM) for summarisation and tagging, React frontend, and a browser extension for one‑click capture. Semantic search, related items, and optional Gemini fallback.

Jul 2025
L4-LB

A layer‑4 load balancer implemented in C that accepts connections and forwards them to backend servers. Focuses on connection handling, routing decisions, and the low‑level work of moving bytes between clients and upstreams without dropping connections or losing state.

Jun 2025
tcp

Experiments with raw TCP in Go: opening sockets, reading and writing streams, and reasoning about connection state and failure modes. A playground for understanding how TCP behaves before building higher‑level protocols on top.

Apr 2025
HostelEase

A re‑implementation of a hostel grievance redressal system in Go — students submit and track complaints, admins manage workflow. Backend with auth, database, and REST APIs; simple web frontend for submitting and viewing grievances and status updates.

Apr 2025
Second-Brain

A set of small prototypes and experiments for understanding research papers and tools by building them — from retrieval and embeddings to simple agents. Each piece is focused and runnable, aimed at making abstract ideas concrete.

Nov 2024
t

A lightweight BitTorrent client in Go for learning P2P protocols — parsing .torrent files, talking to trackers, and exchanging pieces with peers. Built for fun and to understand how torrents find peers and move data without central servers.