SELECTED COMPUTER SCIENCE WORK

Projects.

A collection of compiler, systems, networking, artificial intelligence, and application-development work completed at Purdue University.

07PROJECTS ACROSS
5 TECHNICAL AREAS
COMPILERSSYSTEMSNETWORKINGARTIFICIAL INTELLIGENCEDATABASES
01 — ALL PROJECTS

Seven computer science projects presented together in one collection, with implementation details and clear contribution boundaries.

01COMPILERS · SYSTEMS
Framework-Based Project

LLVM-Based Optimizing Compiler

Extended an LLVM-based teaching compiler from IR generation through control-flow analysis, SSA optimization, profile-guided live-range splitting, and graph-coloring register allocation.

C++LLVMLLVM IRSSAAlias AnalysisGraph Coloring
Read project details +

I worked across abstract syntax trees, LLVM IR, control-flow graphs, SSA form, live intervals, and machine instructions. The project connected compiler theory with the practical work of safely updating LLVM values, uses, predecessors, phi nodes, and instruction ownership.

KEY IMPLEMENTATION

  • Built loop peeling, instruction combining, constant folding, and algebraic simplification passes
  • Implemented natural-loop detection and optimized edge profiling with a maximum spanning tree
  • Created SSA phi insertion, cleanup, copy propagation, and dead-block removal
  • Implemented speculative LICM and Chaitin-style graph-coloring allocation

Contribution note: Compiler infrastructure, pass skeletons, and tests were supplied. I implemented and debugged the analyses, transformations, profiling, optimizations, and allocator methods.

02AI · DECISION MAKING
Team ProjectView on GitHub ↗

Risk-Aware POMDP Agent for Texas Hold'em

Designed a heads-up poker simulator and risk-aware agent that maintains Bayesian beliefs over hidden cards, evaluates actions with Monte Carlo rollouts, and measures downside risk over 20-round matches.

PythonNumPySciPyPOMDPBayesian InferenceMonte CarloCVaR
Read project details +

The system treats poker as a partially observable, high-variance decision problem. It updates beliefs over feasible opponent hands from visible cards and observed actions, samples hidden states during planning, and scores actions using expected return, variance, risk penalties, and remaining-stack value.

KEY IMPLEMENTATION

  • Built Bayesian belief updates over opponent private-card pairs
  • Implemented Monte Carlo rollouts and risk-adjusted action scoring
  • Created configurable opponent policies and match simulation
  • Reported confidence intervals, win rate, variance, and CVaR

Contribution note: Student-designed team project. Results describe controlled simulated opponents rather than expert human play.

03NETWORKING · SYSTEMS
Framework-Based Project

Multi-Hop UDP Overlay Network

Built a multi-hop application-layer overlay in C that establishes routes over TCP, forwards UDP traffic across processes, balances packets between paths, and measures routing latency.

CPOSIX SocketsTCPUDPforkIPCselectLoad Balancing
Read project details +

A TCP control plane creates forwarding sessions while a UDP data plane relays traffic across intermediate nodes. Child processes use select to monitor tunnel sockets and parent-process routing updates received through IPC pipes.

KEY IMPLEMENTATION

  • Implemented TCP session setup and bidirectional UDP forwarding
  • Coordinated parent and child processes through IPC pipes
  • Added ten-packet path switching with a measured 40/40 distribution
  • Measured 0.85 ms direct RTT versus 3.15 ms through the overlay

Contribution note: Topology, test environment, and protocol interface were supplied. I implemented forwarding, session coordination, load balancing, integration, and performance analysis.

04ARTIFICIAL INTELLIGENCE
Framework-Based Project

Pacman Artificial Intelligence Suite

Implemented search, adversarial planning, probabilistic tracking, dynamic programming, and reinforcement-learning agents in the UC Berkeley Pacman framework.

PythonA*MinimaxParticle FiltersMDPsQ-Learning
Read project details +

Across four connected modules, I implemented deterministic path planning, decision-making against adversaries, reasoning under noisy observations, and learning action values from experience.

KEY IMPLEMENTATION

  • Implemented DFS, BFS, uniform-cost search, A*, and heuristics
  • Built multi-ghost minimax, alpha-beta pruning, and expectimax
  • Implemented exact inference and joint particle filtering
  • Created value iteration, prioritized sweeping, and Q-learning agents

Contribution note: The engine, graphics, tests, and utilities are from UC Berkeley. I implemented the designated algorithms, heuristics, inference updates, and learning logic.

05DATABASES · WEB
Team ProjectView on GitHub ↗

Student Information Search System

Built a Django application that models students, classes, and enrollments and supports database-backed searches by major and class through dynamic forms and stored procedures.

PythonDjangoSQLDjango ORMStored ProceduresTransactions
Read project details +

The project demonstrates the full path from a normalized relational schema to a browser-facing query. Forms populate choices from live data, and transactional views call stored procedures before rendering results through templates.

KEY IMPLEMENTATION

  • Modeled an explicit many-to-many enrollment relationship
  • Created dynamic forms backed by current database values
  • Called stored procedures from transaction-wrapped handlers
  • Implemented routing, validation, CSRF protection, and result templates

Contribution note: Student-designed project. The repository contains the application flow but not a complete standalone deployment package.

06SYSTEMS PROGRAMMING
Framework-Based Project

POSIX Raw-Terminal Line Editor

Implemented a terminal input layer in C with raw-mode byte processing, in-place editing, control keys, escape-sequence parsing, and command-history navigation.

CPOSIXRaw ModeSystem CallsANSIBuffers
Read project details +

The editor reads one byte at a time, maintains a manual character buffer, interprets ANSI sequences, and keeps the display synchronized while recalling or editing commands.

KEY IMPLEMENTATION

  • Character-at-a-time POSIX input
  • Backspace and full-line redraw
  • Arrow-key escape parsing
  • Buffer-boundary protection

Contribution note: Terminal setup and starter structure were supplied. I implemented the input-processing and editing behavior.

07EARLY COURSEWORK · APPLICATION
Team ProjectView on GitHub ↗

Concurrent Java Marketplace

Evolved a CSV-backed Java marketplace from a command-line application into a multi-client Swing system with TCP networking, serialization, and synchronized server state.

JavaSwingTCPMultithreadingSynchronizationSerializationCSV
Read project details +

Customers and sellers manage accounts, products, purchases, inventory, and reports. A thread-per-connection server interprets an application protocol while synchronized sections protect shared CSV-backed state.

KEY IMPLEMENTATION

  • Built customer and seller workflows
  • Added Swing client and TCP server architecture
  • Used object streams and thread-per-connection concurrency
  • Synchronized inventory and transaction mutations

Contribution note: Early student-designed team project. It is an educational system, not a production security or persistence architecture.

WHAT I AM LOOKING FOR

Ready to bring this foundation
to production software.

I’m seeking software engineering roles across backend systems, applied AI, infrastructure, and platform development.

Start a conversation