Building an operating system on bare-metal Raspberry Pi 3B using the Rust programming language!
Progress: device drivers (UART), communication protocols (XMODEM), file systems (FAT32), virtual memory, processes
Todo: networking, graphics, audio, and USB subsystems and supporting runtimes to run DOOM game
RowdyHacks 2024: Second Place Overall Winner && Best Use of Data; Devpost, Code
24 hours of work and my first usage of OpenAI API. Result is a user drops a link to a YouTube video with closed captions and selects the language the video is in and the language they want to learn. After fixed time intervals, questions appear on the screen asking about the video content in the time interval. Ends with vocabulary list!
Won four TVs and eight Six Flags tickets :)
Protein Engineering ML Research, Research Assistant @ Institute for Foundations of Machine Learning
Researching an architecture of fine-tuning Facebook's ESM2 embeddings in improve a paper's—'COLLAPSE'—findings, developing representation learning model that leverages aligned protein sequences (MSAs) for contrastive learning
Submitting paper in January 2024 to International Conference on Machine Learning (ICML) on downstream applications; developed using Texas Advanced Computing Center (TACC)'s Lonestar6 supercomputer
HackUTD 2023, we made a 2023 version of the citizens band radio
MirageRaft: created and benchmarked deployments of Raft consensus on MirageOS unikernels on Xen & Linux compared to QEMU VMs
compiled and booted the Linux kernel on the KVM-qemu virtual machine, debugged kernel using GDB
used perf_events & rusage to benchmark different memory allocations (mmap, malloc) and the impact of modifying the kernel's LRU page replacement algorithm
created a user-level networked file system using FUSE, benchmarked performance compared to NFS
Distributed Computing, Grad
MirageRaft: implemented the Raft consensus algorithm in OCaml
Computer Graphics, Honors
Ray Tracing lab in C++: Whitted-style recursive ray tracing (Phong shading, light/shadow attenuation, reflection/refraction) plus bounding volume hierarchy (BVH) and multithreading for performance
Advanced Computer Architecture
Barrel shifter in structural SystemVerilog using spec
Floating Point Multiplier (IEEE FP16) using finite state machine in register-level SystemVerilog
Coded and tested in SystemVerilog: structural barrel shifter, IEEE register-transfer \textbf{floating point multiplier} state machine, an out-of-order CPU!
Natural Language Processing
Coded paper to character language model for "Attention is All You Need", achieved sub-6.0 perplexity in testing
Concurrency, Honors
Logoot CRDT Final Project: Implemented "Logoot" conflict-free replicated data type (CRDT), benchmarked on Wikipedia dataset with P2P commits
Blelloch Parallel PrefixSum with C++
k-means & k-means++ with Nvidia Thrust
Two-phase commit protocol with Rust
Edit distance between two strings (dynamic programming algorithm) in Verilog for FPGA synthesis using Cascade compiler
Operating Systems, Honors
Final Project 'ChatOS': built graphics user interface API on barebones processor emulator, interfaced with networks, shell, and audio teams to launch chat room.
ARM architectural emulator; built the fetch-decode-exceute cycle using a clocked C language implementation; implemented instructions like ADD, AND, LDR, BCOND, etc. that allowed us to load an ELF compiled with gcc-ARM and run it
Memory management; heap implementation via malloc, free API that used sbrk system call including coalescing and splitting blocks for maximum utilization and minimum fragmentation
Logic library; simulated AND, NOR, OR gates using graph algorithms. Supported ports, wires, and created a graphical testbench to run fulladders on simulator with clocked input/output signals. Essentially made a verilog compiler in C.
Cache simulator: fed Valgrind traces into a C-based simulator of a write-back cache with LRU replacement and write-allocate policies, for arbitrary numbers of sets, associativity values, and block sizes.
Pointer chasing; exposed the memory hierarchy on the computer system by tracking the effect of acccessing an array of varying stride and size. Graphed the data and labeled L1, L2, and L3 caches.
Data Structures, Honors
Image manipulation methods using OOP in Java: denoising, cropping, smoothing, thresholding, reflecting, color transformations.
Created a Markov Chain random writer based on input. Provided a Singleton factory design pattern and wrote the algorithm in addition to the OOP structure and I/O.
Critter recursive and IO-focused API implementation; created a Critter that did not win CritterFest
Tetris; provided GUI and wrote the algorithms and made a bot to get a minimum score
Boggle; used trie data structure to implement O(n) search on a simple terminal user interface
National Conferences Placements: Financial Analysis & Linux OS
Computational Linguistics ML Research, Research Assistant @ University of North Texas
Worked under Dr. Kasicheyanula to use natural language processing tools for linguistic resesarch applications using NLTK, TensorFlow, Keras, Matplotlib
Investigated trained network's phoneme embeddings with clustering and PMI (LingPy) to find sound classes
Contributed to published research on dialect theory at Conference on Computational Natural Language Learning