B.Sc. Computer Science
Virginia Tech
Graduated May 2022
- As part of a group of four, added multithreading support to the PintOS (Pintos Operating System) kernel, allowing user-level programs to create, manage, and share data between threads.
- Implemented synchronization primatives - locks, semaphores, condition variables, and barriers. Implemented an interface allowing user programs to create threads and access synchronization primitives through system calls.
- Implemented a solution to Dijkstra's Dining Philosophers problem to verify speed and correctness of multithreaded operations.
- Implemented low-overhead scheduler, providing a near 100% speedup per additional core when compared to single threaded performance.
- Acted as team leader, helping divide work amongst team members to ensure deadlines were met.
- Additional capstone work:
- Implemented a version of Linux’s Completely Fair Scheduler (CFS).
- Implemented support for user-level programs and common system calls (such as write, read, exec, wait) to enable their operation.
- Implemented virtual memory through page tables, and dynamic memory allocation (malloc).
- Implemented a file system with extensible indexed files and a buffer cache for efficient file manipulation.
Assorted Other Projects
- Bash-like job control shell (C)
- Fork-join Threadpool (C, pthreads)
- Memory allocator (malloc) using segregated free lists (C)
- Various Data Structures (Java) - Deque, Quadtree, Heap, BST, Hashtables
- Various Algorithms (Java) - Mergesort, Quicksort, Radixsort, Common Graph Algorithms (DFS/BFS, Dijkstra's, Prim's, A*)
- Plenty of other things I've forgotten to mention.
Assorted CS Coursework
- CS4284 - Systems Capstone
- CS3214 - Computer Systems
- CS2505/2506 - Computer Organization
- CS4104 - Data and Algorithm Analysis
- CS2114/3114 - Data Structures & Algorithms
- CS3304 - Comparative Languages
- CS3754 - Cloud Software Development
- CS3744 - Intro GUI Programming/Graphics
- CS4824 - Machine Learning