Joseph
Austin
Bachurski

Picture missing...

Hi, I'm Austin, welcome to my portfolio page.

Please make a selection from the menu on the left, thanks for stopping by.

Skills
  • C++

  • Python

  • C#

  • C

  • CMake

  • SQL

  • Rust

  • x86 Assembly

  • JavaScript

  • HTML & CSS

  • About Me

    Hi, my name is Austin Bachurski (I go by my middle name) and I began my self-taught journey into programming in January 2021, starting with C++ and Python. This followed a successful 18-year career in the automotive field, where I spent 4 years as a supervisor and 14 years as a mechanic.

    In January of 2021 I got a wild hare to try and learn programming again, when I was in my early teens I was gifted a "learn C++" book but I never got much past "Hello World!", so I decided I was going to try and learn C++ for real this time. After a year of learning on my own I decided that it was something I wanted to pursue full time. In July of 2022 I transferred from the Mechanic Supervisor role to a Geographic Information System (GIS) role within my organization with the intent of increasing my exposure to the tech side of things. This was a great boon to my learning as it allowed me to put my coding skills to use in a real-world scenario and gave me a good excuse to learn Python, as it's heavily used in GIS work.

    In June of 2024 I enrolled with University of the People in a Bachelor of Science in Computer Science degree. I'm currently sitting at 105/120 credits with a 4.0 GPA, and I'm on track to graduate late this year. My hope is that with the additional knowledge gained from acquiring my degree, and the experience gained from a virtual internship, that I can finally complete my transition to a full-time software engineer.

    Work History


    GIS Specialist - City of Kalispell, MT - IT Department (July 2022 - Present)
    Software Test Engineer - Cyanna Education Services LLC (June 2024 - January 2025)
    Central Garage Mechanic Supervisor - City of Kalispell, MT - Public Works Department (January 2018 - June 2022)
    Central Garage Fleet Mechanic - City of Kalispell, MT - Public Works Department (May 2014 - January 2018)
    Projects

      Tetris Clone

    Screenshot of the game.

    A Tetris clone that runs in the terminal, written in C using ncurses.

    I wanted to improve my C skills, as well as practice GDB, so I wrote this Tetris clone that runs in the terminal using C and the ncurses library for the ui.





      Advent of Code 2024

    Screenshot of AoC calendar.

    Collection of my solutions to the 2024 Advent of Code.

    Mostly C++, with a bit of experimentation with Rust. I had a ton of fun and learned a lot as I went through each day. I've been able to complete all the part one puzzles by myself so far, but some part two problems stumped me and I had to look at what other participants were doing to solve the puzzle.





      Five-Function Calculator

    Screenshot of calculator in action.

    Expression evaluator calculator that parses percent, addition, subtraction, multiplication, and division using the "Shunting Yard" algorithm.

    The calculator outputs information about every decision that was made during evaluation to a "Trace Tab" as well as generates a "trace file" containing said output. This was a take home project for a company I interviewed with back in January of 2024. The specification is in the repository, and the project had to be completed in one week.





      Doubly Linked List Implementation

    Screenshot of controller in action.

    Repo for storing some data structures and algorithms implementation attempts.

    Currently only has an implementation of a std::list from the C++ Standard Library. Not exactly true to the original but I learned a lot implementing this. Constructors and destructors for the list as well as the list nodes print information to the console to show what's taking place as nodes are created and destroyed. The list features a forward iterator, 5 insertion methods, 4 removal methods, 3 capacity methods, and 3 element access methods. I included operator[] as well as a constructors taking a value or a std::initializer_list for learning purposes.





      Services Controller for Esri Enterprise Portal

    Screenshot of controller in action.

    This application provides a simple interface that allows users to quickly view and control the state of services on an Esri Enterprise Portal Server.

    The directory, name, type, and state of every service on the server can be viewed via an easy-to-understand context menu and selectable text frame. Users can start or stop all services at once with a couple clicks of the top menu bar, allowing server maintenance tasks or service modifications to be performed without wasting time clicking stop or start on dozens of services using ArcGIS Server Manager, or manually maintaining a long list of services in JSON format using ArcGIS Server Administrator Directory.





      Crime Map Update Wizard

    Screenshot of the wizard.

    This tool was written to help the volunteers at the Kalispell Police Department update the Kalispell Crime Heatmap quickly and easily, no more copy/pasting in Excel, and no need to open ArcGIS Pro.

    Crime Map Wizard is a newer version of the Crime Map Update Assistant (previously written in Python) that provides a graphical wizard with the previous three geoprocessing scripts improved and condensed into a single script. The user interface and Excel parser is written in C++ using wxWidgets, and the geoprocessing script is written in Python using the ArcGIS ArcPy module.





      Building Permit Parser

    Screenshot of the parser.

    Spreadsheet parsing tool to help make work easier for my coworkers in the Building Department.

    The tool parses out building permit information from a tracking spreadsheet to quickly provide totals for yearend reports. The tool automatically loads and parses the sheet for the previous calendar year and displays the information to the user. A "Copy" button near each displayed value loads the information into the operating system clipboard so it can be easily pasted into a report document with minimal effort required by the user. I submitted this as the final project for the Udacity C++ Nanodegree course.





      Law Enforcement Warrant Generator

    Screenshot of the application.

    Document generator application that produces search warrant documents in .docx format for law enforcement, written in C# using AvaloniaUI.

    This application was written to aid my police department in generating search warrants. It allows the officer to simply enter in the pertinent information for the warrant and avoid having to type out a bunch of boilerplate, or risk incorrect data being included where content was copy/pasted from previous search warrants. The tool can produce both the Search Warrant Application document and the Search Warrant document itself for many of the common warrants that are issued. This greatly reduces wait time for the warrant to be issued, especially in the case of a barricaded suspect.





      Battleship Game

    Screenshot of the game board.

    Console clone of the Battleship board game, written in C#. Capstone Project for the Skill Foundry "Object-Oriented Programming in C#" course.

    Contains unit tests for game and score functions, capable of player vs player, player vs computer, or computer vs computer battle. This was my first attempt at a game and the capstone project for the Skill Foundry C# 200 series course.





      Building Permit Monitor

    Screenshot of the parser.

    A simple system tray/notification area application that monitors a database for newly issued building permits.

    This tool was written to assist in tracking and mapping building permit data. The UI is a bit strange at first glance - I wanted something compact that could live in/around the notification area. I get a popup notification from the tool when there's a new permit to record. Clicking the notification spawns the validation window, just above the task bar that allows the information for the permit to be reviewed at a glance rather than digging through the permit submission to find what I need.





      Mailer Generator

    Screenshot of the parser.

    Automatically generates a mailing list and accompanying map for a given address, assessor number, or tract id.

    Generating mailing lists and maps is something that I previously did manually with GIS software. Automating most of the process allows me to produce the required map and mailing list in less than 2 minutes of receiving an emailed request.