Projects
A mix of production systems, side projects, and academic work.
Roots App
ProductionPrivate family media sharing platform with 114 serverless Cloud Functions, Terraform IaC across three environments, and an end-to-end encryption system designed for post-launch.
Crossword Creator
ProductionWordlist-first crossword generator and solver. A CSP engine packs your words into a real-style grid, with three placement strategies and a NYT-style solver UI.
CivicHousing
CompleteAccessible public housing intake wizard paired with a TTC allocation simulation. Scores 76 Detroit listings against applicant profiles and demonstrates how coordinated exchange improves outcomes over FIFO.
PufferPhish
PrototypedChrome extension for real-time phishing detection using a CodeBERT classifier and rule-based engine. Blocks dangerous pages with a full-page warning and tracks protection history in a web dashboard.
NES Emulator
In ProgressNintendo Entertainment System emulator. More info coming soon.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Computer Security
Cryptographic Attacks
Implemented padding oracle attacks, Bleichenbacher RSA attacks, and SHA-256 length extension attacks against vulnerable cryptographic systems.
Web Exploitation
Developed proof-of-concept exploits for CSRF, SQL injection, and XSS vulnerabilities against a deliberately vulnerable web application.
Binary Exploitation
Wrote shellcode and buffer overflow exploits against vulnerable C programs, including techniques for bypassing address space layout randomization.
Digital Forensics
Conducted a forensic investigation involving AES/RSA cryptanalysis, email evidence analysis, and recovery of encrypted artifacts.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.