Projects

A mix of production systems, side projects, and academic work.

Coursework

Selected projects from University of Michigan CS courses. Source code is not public per academic integrity policies.

Operating Systems

Disk Scheduler

Concurrent disk I/O scheduler where multiple requester threads enqueue disk reads and a servicer thread processes them using shortest seek time first ordering. A producer-consumer problem with bounded queue management.

C++Pthreads

Thread Library

User-level thread library supporting thread creation, context switching, and synchronization primitives (mutexes, condition variables). Handles both single-CPU and multiprocessor execution with interrupt-based preemption.

C++x86 Assembly

Virtual Memory Pager

Kernel pager managing virtual address spaces for multiple processes. Handles page faults, clock-based page replacement, copy-on-write fork semantics, and file-backed page mappings with swap space management.

C++

Network File Server

Multi-threaded file server processing client requests over TCP with a hierarchical file system. Handles concurrent access with reader/writer locks, crash consistency, and untrusted input validation.

C++TCP Sockets

Web Systems

Static Site Generator

Python CLI tool that converts HTML templates and JSON data into a complete static website. Used to generate an Instagram clone with user profiles, posts, and follower relationships.

PythonJinja2HTML

Server-Side Dynamic Pages

Database-backed Instagram clone with server-side rendering using Flask. Supports user authentication, post creation, commenting, following, password hashing with salt, and CSRF protection.

PythonFlaskSQLiteHTML/CSS

Client-Side Dynamic Pages

Converted the Instagram clone to client-side rendering with a React frontend fetching data from a REST API. Features liking, commenting, and infinite scroll, all without page reloads.

ReactJavaScriptREST API

MapReduce Framework

Distributed MapReduce framework inspired by Google's original paper. A Manager coordinates work across multiple Workers executing map and reduce tasks in parallel, with fault tolerance for worker failures.

PythonTCP/UDP SocketsMultithreading

Computer Networks

Network Measurement Tool

iPerf-style measurement tool built with raw socket programming. Measures throughput and latency across custom network topologies in Mininet with TCP and UDP support.

PythonSocket ProgrammingMininet

Adaptive Video Streaming Proxy

HTTP proxy server for DASH MPEG adaptive bitrate video streaming. Implements load balancing across multiple content servers and client bandwidth estimation for quality selection.

PythonHTTPDASH

Reliable Transport Protocol

Custom reliable transport protocol (WTP) built on top of UDP. Implements sequence numbers, CRC checksums, cumulative acknowledgments, and handles packet loss, corruption, duplication, and reordering.

CUDP Sockets

Static Router

IP router that processes raw Ethernet frames and forwards packets to the correct outgoing interface using a static routing table. Handles ARP resolution, ICMP error messages, and routes real traffic to HTTP servers in a Mininet topology.

CRaw SocketsMininet

Computer Security

Cryptographic Attacks

Implemented padding oracle attacks, Bleichenbacher RSA attacks, and SHA-256 length extension attacks against vulnerable cryptographic systems.

Python

Web Exploitation

Developed proof-of-concept exploits for CSRF, SQL injection, and XSS vulnerabilities against a deliberately vulnerable web application.

JavaScriptSQLHTML

Binary Exploitation

Wrote shellcode and buffer overflow exploits against vulnerable C programs, including techniques for bypassing address space layout randomization.

Cx86 AssemblyGDB

Digital Forensics

Conducted a forensic investigation involving AES/RSA cryptanalysis, email evidence analysis, and recovery of encrypted artifacts.

PythonOpenSSL

Data Structures and Algorithms

Graph Search and Route Tracing

BFS and DFS search through 2D/3D environments with route tracing and path reconstruction. Applied to word morphing, cartography, and puzzle-solving contexts.

C++

Priority Queues and Streaming Algorithms

Implemented four templated priority queue variants (unordered, sorted, binary heap, pairing heap) using inheritance and interface programming. Used in event-driven simulations with streaming data.

C++Templates

Hash Tables and Data Composition

Built hash table-backed data structures for logfile management and a custom database query language, focusing on composition of larger systems from smaller components.

C++

Optimization Algorithms

Implemented Traveling Salesperson and knapsack-style optimization algorithms including MST heuristics, fast approximations, and branch-and-bound exact solvers on datasets up to 10,000 vertices.

C++

Computer Organization

Assembler and Simulator

Two-pass assembler translating LC-2K assembly to machine code, plus a behavioral simulator executing programs through fetch-decode-execute. Includes a shift-and-add multiplication program written in assembly.

CLC-2K Assembly

Linker

Extended the assembler to emit object files with symbol tables and relocation entries, then built a linker that merges multiple object files into a single executable with resolved external references and patched addresses.

C

Pipelined Processor Simulator

Cycle-accurate simulator for a 5-stage pipelined processor (IF/ID/EX/MEM/WB). Handles data forwarding, load-use hazard stalls, and predict-not-taken branch resolution.

C

Cache Simulator

Configurable set-associative cache simulator with variable block size, associativity, and set count. Implements write-back with allocate-on-write, LRU replacement, and dirty block management.

C

Machine Learning

Clinical Mortality Prediction

Predicted ICU patient mortality from 48-hour clinical time series data. Built feature engineering pipelines, trained logistic regression and kernel ridge regression models, and evaluated with stratified cross-validation and AUROC.

Pythonscikit-learnNumPyPandas

Image Classification with CNNs and Vision Transformers

Trained convolutional neural networks and Vision Transformers in PyTorch for image classification. Applied transfer learning with selective layer freezing, early stopping, and a challenge competition for best accuracy through architecture and hyperparameter tuning.

PythonPyTorch

Quantum Computing

Quantum Circuit Simulator

Built a quantum circuit simulator from scratch supporting Hadamard, CNOT, and arbitrary single-qubit gates. Operates on state vectors with tensor product expansion and simulates measurement with probabilistic sampling.

PythonNumPy

Grover's Search Algorithm

Implemented Grover's algorithm in Qiskit to solve boolean satisfiability (SAT) problems. Constructed phase and bitflip oracles from CNF formulas and applied iterative amplitude amplification with diffuser circuits.

PythonQiskit

Quantum Error Correction

Implemented the 7-qubit Steane code for quantum error correction, magic T-state preparation, and even-weight superposition state construction for fault-tolerant quantum computation.

PythonQiskit