I am a Computer Science and Software Engineering major at University of Washington - Bothell. A process
oriented,
driven non-traditional student;
I am transferring from almost a decade as a professional Automotive Service Technician. I’m excited to
pair
my unique perspective with hands-on learning to find new solutions to modern problems
In the following sections, you'll learn more about my current and previous courses taken at UW-Bothell,
alongside an overview of my academic work, personal work, and open source contributions.
Bachelor of Science in Computer Science and Software Engineering (2025)
An implementation of several CPU scheduler algorithms
This project was an introduction to the implementation of CPU scheduler algorithms.
Given a text file containing a representation of processes, their priority, and burst time;
I was tasked with implementing the following algorithms on the data set:
- First Come First Serve
- Shortest Job First
- Round Robin
- Priority
- Priority Round Robin
This project was an excellent way to get first-hand insight into the operation of scheduler
algorithms, and how the CPU algorithmically selects processes to work on.
A program to synchronously validate a Sudoku puzzle
This project was an introduction to working with manual multi-threading to speed up tasks.
Tasked with receiving Sudoku puzzles from text files and then creating threads to handle
validation of individual rows, columns, and sub-grids.
This project was an interesting challenge of handling threads for each operation simultaneously,
while also crafting the logic to algorithmically validate a Sudoku puzzle.
A re-creation of a UNIX shell
This project was an interesting look into the functionality of UNIX fork(), pipe(), and execvp()
commands.
The goal of this project was to create an interactive shell able to parse commands from a
command
line input.
The requirements included: Forking for each command, ability to process standard UNIX commands,
process I/O redirects, and piping.
Additionally, an auxiliary history feature was required, to allow for users to resend their
previous
command by typing "!!".
An inventory system for a movie rental store
This project was really exciting for me because it was the first project where I was allowed to
go
all the way from design to implementation without much restriction.
I was tasked with creating a Movie Store system that maintains an inventory of rentable movies,
a
collection of customers, and a history of all transactions processed.
Some minor requirements were placed, in that we must account for a future interest to move into
additional forms of media, and we must use a factory creation pattern.
Additionally, we were expected to document all of our planning in the form of UML diagrams &
interaction charts, which was a great learning experience.
Overall, this project taught me the importance of proper planning in Software Development, and
the
benefit of having well-planned implementations.
A re-creation of famous graph traversal algorithms
This project was a substantial challenge for me and provided an invaluable learning experience.
It began with the task of interpreting a text file representing a graph structure.
Leveraging this structure, I was tasked with implementing and executing several traversal
algorithms.
The algorithms included Depth-First Search (DFS), Breadth-First Search (BFS), Dijkstra's,
Minimum
Spanning Tree
using Prim's algorithm, and as a bonus, Kruskal's.
This endeavor served as an excellent introduction to the intricacies of graph data structures
and,
more specifically, the most prominent traversal and graph-related algorithms.
A re-creation of an autocomplete algorithm using a BST
Implemented an efficient autocomplete system using a Binary Search Tree.
The system predicts user input by matching prefixes with a set of terms, each of which had an
associated weight.
This project involved adding terms and weights to the BST, finding and sorting matching terms by
weight, and ensuring fast response times.
Additionally, the system supports various helper functions such as traversal, re-balancing, and
clearing the tree.
This project had me working with the largest dataset I've worked with (10k+ city names),
prompting a
heightened awareness for performance considerations.
Managing the size and complexity of the dataset required careful optimization of algorithms and
data
structures used, underscoring the importance of efficiency in real-time applications.
This project was an interesting first look into the tree data structure and how autocomplete
algorithms work.
An online resume
I wanted a single source of information about myself, things I'm working on, and things I have worked on. I aim to continue to iterate on the page as my projects become more robust and add additional features.
A stock market trade sizer app
Currently under development, this project aims to take the guesswork out of position
sizing swing trades, in a format that is clean and easy to use.
As a swing trader, there are a lot of best practices to use when deciding how large of a
position to take in a given equity.
I wanted to create a platform that can give the user their results in a few seconds and
provide it in a clean and minimal way.
The project takes a few elements from the user, including: risk percentage, account
size, expected buy and sell prices, and stop-loss price.
From this information, the system calculates optimal position size and potential
profit/loss.
I am currently working on refining a feature that uses the OpenAI API to provide insight
about the trade.
Following this implementation, I plan on doing a major refactor using the skills I
learned
from this resume splash page!
An automated practice tool for Leetcode
Awaiting deployment, this project was designed to create an automated way of
practicing previously completed Leetcode questions.
The system is on a 24hr timer, and queries the Leetcode graphQL endpoint for a list
of most recently completed problems from a specific user.
With this information, the system removes any duplicate problems, and then selects
one randomly.
This randomly selected problem then has its URL link grabbed,
and is packaged into an email that is sent to a designated email address.
This project introduced me to a lot of interesting components that I have not worked
with before, such as graphQL queries and the storing of sensitive data in a
config.ini file.
Website: Path of Building
Add Scorch chance on crit for Warden's Oath of Summer PR #7975
I corrected a calculation error occurring when the player converted their ignite chance to scorch chance, which would in turn lose the inherent 100% application chance on critical hit of ignite. To resolve this issue, I added additional logic to properly set associated values when the player was converting ignite.
Fix item quality not defaulting to 20% PR #8032
I corrected an issue where gear items incorrectly had a default quality of 0 instead of 20. I identified and corrected the logic error which was causing a normalization function to misidentify the item, therefore assigning it the wrong default value.
Default "Enemy Damage Type" to "Average" PR #8318
Implemented a new feature to enhance application UX by automating commonly expected behavior when adjusting player damage resistance settings.