Joshua Ganschow

Competitive programmer, software engineer, and mathematics student

I program competitively, build full-stack software, work in data engineering, and study graph theory and combinatorics. I have contributed multiple algorithms to SageMath, a mathematical software system written in Python.

I spend most of my time these days practicing competitive programming.

Projects

Competitive Programming

I've qualified for the ICPC North America Championship (NAC) twice, most recently with a team I trained and captained. As president of DSU's Competitive Programming Club, I also train other teams for contests and lead weekly sessions on algorithms, data structures, and problem solving.

I keep solution repositories for Kattis, CSES, LeetCode, and Advent of Code, covering graphs, trees, strings, dynamic programming, and other algorithmic techniques.

Two-time ICPC NAC qualifier, team captain, club president

Small Antiperfect Steiner Triple Systems

First-author research published in Discrete Mathematics. I implemented a modified Stinson hill-climbing algorithm, designed pruning strategies, and parallelized the enumeration of roughly sixty million systems.

Python, C/C++, combinatorics, parallel computing

SageMath Algorithm Contributions

I have contributed multiple combinatorial design algorithms to SageMath, including a randomized Stinson hill-climbing implementation for generating Steiner triple systems; including tests and documentation. I also help maintain PassageMath, a pip-modularized fork of SageMath.

Open source, Python, mathematical software

Thread-Safe Queue and Worker Pool

A CSC718 project implementing a bounded producer-consumer queue and worker pool in C. It uses POSIX threads for concurrent job processing and includes correctness checks, performance timing, and worker statistics.

C, POSIX threads, concurrency, systems programming

Latin Square Tools

A toolkit for generating and analyzing Latin squares for combinatorial experimentation.

Algorithms, combinatorics

Prime Grid Labeling

A six-student project for labeling an n × m grid with the integers 1 through nm so every neighboring pair is coprime. The result maps directly to prime graph labeling.

Python, graph theory, Git

Visual Inductive Proof

A Matplotlib visualization of the inductive proof that a 2n × 2n board with one square removed can be tiled with L-shaped triominoes.

Python, Matplotlib, discrete mathematics

Resume

Experience

Software Engineering Intern

Omnitech, Inc.

May 2025-Present

  • Developed multiple internal and external projects including a contract management system used across sales, accounting, project management, and engineering and an ERM system for a local non-profit rehabilitation center.
  • Built full-stack features with ASP.NET, C#, SQL, and TypeScript.
  • Implemented automated end-to-end and regression tests for enterprise applications.
  • Created Azure DevOps CI/CD pipelines and optimized SQL Server schemas and queries.

GROWSTEM Student Mentor

Dakota State University

Aug. 2024-Present

  • Mentor GROWSTEM scholarship recipients and provide academic support and supplemental instruction.
  • Work with program coordinators to support student success.

Education

BS in Computer Science and Mathematics

Dakota State University · Madison, South Dakota

2023-2026

GPA: 3.96

MS in Computer Science

Dakota State University · 4+1 program

2025-2027 anticipated

GPA: 4.0

Dual-credit coursework enables completion of the master's degree one year after the bachelor's degree.

Leadership

President, Competitive Programming Club

Dakota State University

Aug. 2024-Present

  • Qualified for the ICPC North America Championship (NAC) twice, most recently with a team I trained and captained.
  • Train other club teams for programming contests and lead weekly sessions on algorithms, data structures, and problem solving.
  • Led a team that placed second in the DigiKey Collegiate Computing Competition.

Leader, Math Club

Dakota State University

Aug. 2024–Present

Host sessions on advanced mathematics and combinatorics.