LEARNING BY BUILDING
Projects and experiments.
I learn best by making things, testing them, and figuring out the parts I don’t understand yet. Here are my open-source projects, systems tools, and backend builds.
SXSHELL — Unix-like Shell
A POSIX-compliant Unix-like shell written in C across 7 modules (~550 lines) with 7 built-ins, $PATH resolution, quote and escape parsing, 4 redirection operators, multi-command pipelines, persistent history, and $VAR expansion.
Built to understand process creation, file descriptors, and the POSIX system calls behind terminal execution.
- Implemented 4 redirection operators and multi-command pipelines using fork(), execv(), and dup2()
- Built 7 modular C components (~550 lines) supporting 7 built-in commands, $PATH lookup, and quote/escape parsing
- Added persistent history with arrow-key navigation, $VAR expansion, and architecture documentation in DOCS.md
Resume Builder
An open-source resume builder web application featuring live PDF preview and multiple customizable templates, earning 16 GitHub stars and 8 forks from the developer community.
Focused on clean document state management, real-time PDF rendering, and shipping a polished tool used by other developers.
- Built with TypeScript and Next.js 14 with instant live PDF preview and multi-template switching
- Earned 16 GitHub stars and 8 forks through clean UX and structured resume schema state
- Supports ATS-friendly formatting, section customization, and one-click PDF export
Custom HTTP Server
A lightweight HTTP server in C built over raw TCP sockets, focused on request parsing, header inspection, and HTTP response handling from the ground up.
The goal is to master networking fundamentals by implementing the TCP socket and HTTP request-response lifecycle directly.
- POSIX socket lifecycle: socket(), bind(), listen(), accept(), recv(), and send()
- Zero-dependency HTTP request line, header parser, and status-code response builder
- Static file serving with MIME type detection and client connection handling
Custom Garbage Collector
A custom garbage collector in C built to understand manual memory management, heap allocation internals, and automatic object reachability tracking.
Explores mark-and-sweep collection, root pointer tracing, and allocation metadata at the pointer level.
- Tracks dynamically allocated objects via an intrusive metadata header and allocation list
- Mark phase traverses reachable object graphs from registered stack/root pointers
- Sweep phase reclaims unmarked heap blocks and prevents memory leaks
Git Implementation in C
A simplified Git clone written in C to understand content-addressable storage, blob and tree objects, and commit history DAGs.
Covers binary file I/O, cryptographic hashing, compression, and version control internals from scratch.
- Implements object hashing and content-addressable storage inside .git/objects
- Reads and writes blob, tree, and commit objects with header framing
- Demystifies how Git snapshots file trees rather than storing simple line diffs
E-commerce Backend API
A complete e-commerce REST backend built with Spring Boot, featuring product catalog management, order workflows, JWT authentication, and pagination.
Focused on enterprise backend architecture, relational database modeling, and clean service-layer separation.
- Layered Spring Boot architecture (Controller → Service → Repository) with Spring Data JPA
- Stateless JWT authentication, role-based access control, and request validation
- PostgreSQL schema with indexed queries and paginated product endpoints
Expense Tracker API
A secure REST API for personal expense tracking, demonstrating robust CRUD operations, category analytics, Spring Security integration, and Docker containerization.
Built to practice API security beyond the happy path, error handling, and containerized deployment.
- Spring Security filter chain with BCrypt password hashing and user-scoped data isolation
- Normalized SQL schema for transactions, recurring budgets, and monthly aggregations
- Docker Compose setup bundling the Spring Boot service and PostgreSQL database
More experiments live on GitHub.
Code, open-source pull requests, and notes are easiest to find there.