Aaron Boman

Software Engineer
Web Developer

About Me


My name is Aaron Boman and I am a Software Engineer. I am currently located in the Kansas City area with my loving wife Rachel. When I'm not working I can usually be found doing something with a computer. I enjoy learning new things and I usually start projects just so I can learn a new technology.

Experience


Garmin

June 2013 - Present

Senior Software Engineer ‐ Aviation Tools | Web Development

I am currently working on the Web Technology tools team using React, Typescript, Electron, and NodeJS to make desktop and web applications. My latest project was creating an Electron desktop application that can be used to provide configuration for our embedded machines (each aircraft requires a separate configuration).

Before moving to the Web Team, I was in charge of writing, testing, and maintaining Python tools that helped to facilitate our embedded software development. We use Boost.Build to build our embedded software. I was in charge of converting the backend code (written in Boost.Build's Jam language) over to Python. In so doing I found several bugs in Boost.Build's core Python code and have submitted several pull requests (all can be found here). I was later deemed a trustworthy contributor and have been granted master privileges on the open source Boost.Build project. One of my most prized contributions would be the optimization changes I've submitted to the Python port. On one specific test project I improved the Boost.Build run time from 2 minutes down to 30 seconds (which is on par with the Jam code). The optimizations were only for speed, but I have some ideas on how to optimize for space (on larger projects, it will easily blow through Windows' 2GB process limit) using weak-ref dictionaries.

I have a very intimate knowledge of Python and its ecosystem. My first two days at Garmin I spent reading the entire Python documentation just to become familiar with all of the standard library modules and functions. Python never ceases to amaze me as there is always something to learn about it. Additionally, I have experience with writing with the C API. Most of this experience was required in order to interface with the Boost.Build Python port.

In my spare time, I have been learning about the Rust programming language and finally had a chance to put it to use at Garmin. We needed a compiled tool (for obscurity more than speed) and I wrote a quick prototype in a few hours with Rust and submitted it. So far, I'm having a blast with Rust and and looking for more areas to use it.

Olathe, KS | http://www.garmin.com/

Garmin

May 2012 - June 2013

Software Engineer Intern ‐ Aviation

I was initially hired on at Garmin as an intern because of my web development experience, however, I showed an interest in learning the closer-to-the-metal embedded systems work. So, my first couple of weeks were spent learning about the C language as well as some aviation software fundamentals through unit testing. When creating tests, there was no good way to determine the dependencies that the particular test needed. Usually the process went something like this: try to compile, wait for the compiler to gripe about certain functions not being found, look up where those functions are declared, and add those files as a dependency. An intern on my team spent upwards of 2 hours trying to resolve all dependencies before starting to write a test. So, being fed up myself, I wrote a quick python script to help automate the process. It wasn't perfect, however, within 10 seconds, you would have the majority of the dependencies needed for the test. I spent about 2 hours on the script and it saved my team hours. It was due to events like this that led to an eventual offer of full-time employment and a spot on the tools team.

Olathe, KS | http://www.garmin.com/

Missouri State University

June 2011 - May 2013

Web Developer ‐ ResNet

I worked on a team of three at ResNet. Our job was to write and maintain web applications for ResLife. The main application we wrote during my employment was a dashboard application for reception desk workers at each of the residence halls at MSU. It maintained information about the students at the building including equipment rental, the number of times a student was locked out of their room, the student's roommates, packages/mail in their mailbox, charges incurred, etc. When I first started this job, I didn't know much about programming in general. I started at the beginning of summer 2011. The following fall semester I had learned so much that my classes became painfully simple. One of the things that I learned with this job is that real world problems and experience trumps purely academic exercises every time. Check out ResNet's GitHub account for examples of some of the projects I've worked on.

Springfield, MO | http://resnet.missouristate.edu/

Skills


Languages

  • Python
  • ES6
  • TypeScript
  • WASM
  • Rust
  • C

Frameworks & Libraries

  • Django
  • React
  • Electron
  • Graphene Django
  • GraphQL
  • Apollo
  • Django REST Framework
  • WebGL
  • AngularJS

Databases

  • MySQL
  • PostgreSQL
  • SQLite

Tools

  • Git
  • GitHub
  • PyCharm/CLion/WebStorm
  • Putty/SSH
  • VirtualBox
  • Chrome
  • Firefox
  • Apache2
  • Jira
  • Confluence
  • Jenkins CI
  • Emacs
  • GNU Utils
  • Ubuntu Desktop/Server
  • Windows 7/8/10
  • Mac OS X

Education


Missouri State University

January 2011 - May 2013

BS Computer Science | Minor Mathematics (3.54 GPA)

The beginning of my education was primarily Java-based programming. After exploring introductions to binary, hex, and logic, we began to discover Object Oriented Programming and finished the foundation by learning data structures. My favorite two classes would have to be the Languages & Machines class (learning about languages in terms of computers and intro to compiling) as well as the Operating Systems class. The OS class was the culmination in my studies since it was the application of everything I had learned.

Springfield, MO | http://www.missouristate.edu/

Metrolpolitan
Community College

September 2008 - December 2010

Associate of Arts (3.0 GPA)

My schooling here was primarily General Education. I had originally thought that general education classes were completely pointless, and from a Software Engineering career standpoint, most are. However, it was in these first couple of years that I figured out what I wanted to do for a career. If I had jumped right into a four year degree program at some university I would have started on a Computer Animation career path and I most likely would not have ever touched programming.

Lee's Summit, MO | http://mcckc.edu/

Projects


In my spare time I'm usually working on some sort of project. These Projects can help further an understaning on a subject, help me learn a new technology, or help others.

Contact


Email: aaron@aaronboman.com
Phone: (816) 226-8733
Location: Blue Springs, Mo
Github: frenchtoast747
StackOverflow: Oozemeister
I need to know how to address you...
I need to know what you're thinking...