Connor Thelin

Hi, I'm Connor

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.

Education

University of Washington - Bothell

Bachelor of Science in Computer Science and Software Engineering (2025)

Relevant Courses

Work


- - - Academic Projects - - -


- Scheduler Algorithms -

C Logo GoogleTest Logo Cmake Logo

An implementation of several CPU scheduler algorithms

Scheduler

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.


- Multi-threaded Sudoku Validator -

C Logo GoogleTest Logo Cmake Logo

A program to synchronously validate a Sudoku puzzle

Sudoku Solver

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.


- Unix Shell -

C Logo GoogleTest Logo Cmake Logo

A re-creation of a UNIX shell

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 "!!".


- Movie Store -

C++ Logo GoogleTest Logo Cmake Logo

An inventory system for a movie rental store

Movie 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.


- Graph Algorithms -

C++ Logo GoogleTest Logo Cmake Logo

A re-creation of famous graph traversal algorithms

Graph Algorithm

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.


- Google Autocomplete Reimplementation -

C++ Logo GoogleTest Logo Cmake Logo

A re-creation of an autocomplete algorithm using a BST

Autocomplete

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.


- - - Personal Projects - - -


- Resume Splash Page -

Python Logo HTML Logo CSS Logo JS Logo

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.


- Swing Trade Position Sizer -

Python Logo HTML Logo CSS Logo

A stock market trade sizer app

Position Sizer

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!


- Leetcode Daily -

Python Logo GraphQl Logo

An automated practice tool for Leetcode

Leetcode Daily

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.


- - - Open Source Contributions - - -


- Path of Building Community Fork -

POB

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.