01Computer Architecture
RISC-V CPU Pipeline
Designed a five-stage CPU pipeline with instruction fetch, decode, execute, memory, and writeback stages. This project strengthened my understanding of how processors execute instructions at a low level and how pipeline stages interact. I worked through control flow, instruction movement, and architecture-level tradeoffs that affect CPU performance. It was one of my strongest low-level engineering projects because it connected assembly, hardware concepts, and execution flow.
RISC-VAssemblyCPU ArchitecturePipelining
02Operating Systems
Multi-Threaded DNS Resolver
Built a multi-threaded DNS resolver in C using requester and resolver threads. The project used a producer-consumer architecture with pthreads, mutexes, condition variables, and a shared queue. I focused on safe synchronization, preventing race conditions, and coordinating file input with DNS lookup output. This project gave me practical experience with concurrent systems and Linux programming.
CpthreadsLinuxMutexesCondition Variables
03Embedded Systems
Embedded Battleship Game
Developed a touchscreen Battleship game on an STM32 board using C, LCD graphics, touch input, and hardware peripherals. The game included ship placement, turn-based gameplay, hit and miss detection, AI ship placement, and randomized AI attacks. I worked with embedded constraints, hardware initialization, display rendering, and touch coordinate mapping. This project showed my ability to build interactive software close to the hardware.
CSTM32HALLCDTouchscreenEmbedded
04Object-Oriented Design
Polymorphia Game Framework
Created and extended a Java game framework using object-oriented design patterns. The project used Strategy, Factory, Command, Observer, Builder, and dependency injection to make game behavior flexible and extensible. I implemented different character behaviors, command creation, observer updates, and configurable game setup logic. This project helped me think about maintainable architecture instead of just writing code that works once.
JavaGradleJUnitDesign PatternsOOP
05Systems Programming
Linux File Tester
Implemented a command-line file testing utility in C using low-level Linux system calls. The tool supported opening files, reading, writing, seeking, and observing file offset behavior. I worked directly with file descriptors, read and write semantics, seek positioning, and terminal-based input. This project gave me a stronger understanding of how operating systems expose file operations to user programs.
CLinuxFile DescriptorsSystem Calls
06Frontend Engineering
Personal Portfolio Website
Designed and developed a fully responsive personal portfolio website using Next.js, React, TypeScript, and Tailwind CSS to showcase my software engineering projects, systems programming experience, and technical work. Implemented a modular component-based architecture with reusable UI sections, responsive layouts, dark and light theme support, and terminal-inspired interface details. Focused on frontend engineering principles including clean UI composition, asset optimization, maintainable structure, and responsive design across mobile and desktop screens. Deployed the site through Vercel with a GitHub-based workflow for continuous updates.
Next.jsReactTypeScriptTailwind CSSVercelGitHub