Connor Thelin

Hi, I'm Connor

I'm a recent graduate of University of Washington - Bothell, where I earned a B.S. in Computer Science & Software Engineering with a minor in Data Analytics. A process-oriented, driven non-traditional graduate, I transitioned from nearly a decade as a professional Automotive Service Technician into software development and data science. I'm excited to pair my unique perspective with hands-on technical skills to find new solutions to modern problems.

In the following sections, you'll learn more about my academic background at UW-Bothell, alongside an overview of my featured work, academic projects, personal projects, and open source contributions.

Education

University of Washington - Bothell

Bachelor of Science in Computer Science and Software Engineering, Minor in Data Analytics (2026)

Dean's List | Cumulative GPA: 3.60

Relevant Courses

Work


- - - Academic Projects - - -


- Systems Programming Coursework -

C Logo GoogleTest Logo Cmake Logo

Three foundational systems programming assignments in C

Systems Programming Coursework

Scheduler Algorithms — Implemented First Come First Serve, Shortest Job First, Round Robin, Priority, and Priority Round Robin CPU scheduling algorithms against a dataset of processes, priorities, and burst times.

Multi-threaded Sudoku Validator — Built a program using manual multi-threading to synchronously validate Sudoku puzzles, with dedicated threads handling row, column, and sub-grid validation simultaneously.

Unix Shell — Recreated core UNIX shell functionality using fork(), pipe(), and execvp(), including standard command parsing, I/O redirection, piping, and a command history feature ("!!").

Together, these projects were a first-hand introduction to CPU scheduling, concurrency, and process management at the systems level.


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