Michael Rouse


KnowledgeLake Software Engineering Intern 2016
My time as an Intern at KnowledgeLake consists of three summers, and two school years of remote work.
The work done here, on Enterprise Content Management software, is web front end work with a heavy C# backend.

During my first internship I was thrusted into this world and set out to create an entirely new part of the overal application. This project, called "Upload", allows user to upload documents through a web interface and have them enter the system.

My second summer I worked on a new security and authentication system that the product now uses. Along with this, I also painfully developed Office Add-Ins for our product. These add-ins leveraged the Upload App (first internship project), and allows users to upload documents/emails/attachments directly from any Microsoft Office program.

After my second summer I continued to work remotely through the school year. During this time, and the next summer, I was tasked with bugfixes involving my previous creations, as well as working on other bugs throughout the software.
Solar Car Team Electrical Team Lead 2017 - 2018
In the fall semester of 2017, I started my role as the Electrical Team Lead for the Missouri S&T Solar Car Team. This was a big step up from my previous roles in the team, but I was feeling up to the challenge after having a frustrating time at FSGP 2017.
My primary goals were to increase the efficiency of the electrical team. While we were unable to race due to BPS issues (actual electrical magic), ridiculous roadblocks put up by the school, and poor team morale, I believe I accomplished my goal. I ended up designing several non-complex circuit boards, and wrote a ton of software.
Not giving up on the BPS until the last possible moment
I created several tools for the electrical team that increases efficiency when writing code, designing boards, and purchasing components.

The first, which I had already been working on for almost a year at the start of the school year, was a Driver Library written in C. This library, complete with unit tests, allows us to write less common code (e.g., CAN Drivers, SPI Drivers) and gives us a piece of mind of knowing that it works.
At the time, we used Texas Instruments MSP430F5529 microcontrollers, so I wanted this library to provide an Arduino-like syntax but still be robust enough to support different microcontrollers (and different CAN controllers) with different features and specs.
The driver library ended up being completely modular. The microcontroller and CAN controller drivers are both selected at runtime based on preprocessor directives set by the compiler (or IDE). This is what I am most proud of on my time with the team.

My KiCad BOM Generator was created to reduce the amount of time it takes team members to produce Bill-of-Materials for their projects, and to encforce a common formatting.
It is highly customizable and fully-featured, I'm also really proud of this.

I also created a common library of KiCad components (symbols and footprints) for the majority of components we use on the team. This is complete with metadata for each component including suplier and manufacturer information. The goal of this was to reduce the amount of time to design boards, as well as reduce errors in footprints since team members no longer need to be making the same footprints as other members.
LMI Aerospace Inc. Developer Intern 2016 - 2017
My time as the sole developer at LMI Aerospace Inc. in Cuba, MO was an unforgettable good experience.
In the fall semester of 2016, I responded to an email-blast about an internship in Cuba, MO as a programmer. The reason behind the internship was to update the plant's custom work order processing system.
The system, a web-based application built using ASP.NET with some C# backend, tracked orders through the plant. It allowed management to track wherever an order was at any certain time.
In my time here, I added several features to this system, and performed several minor bugfixes I found along the way.
My main goal for the internship was to add time-tracking to each order. This included a countdown to when the part should be in the next location, and a countdown to when the part should leave.
This was used to enforce time frames for certain areas of the plant, as well as checking on how long expedited orders are doing.
Solar Car Team Team Member 2015 - 2017
During my first few years on the Missouri S&T Solar Car Team my role dealt mainly with the telemetry software, the team website, and programming microcontrollers.
My original telemetry software redesign/rewrite
The telemetry software received UDP messages sent from the solar car, updated the interface, and logged to a text file.
After the initial rewrite, the code behind this interface went through many changes.
In 2016, the team placed 4th in the American Solar Challenge.

During the second year racing Solar Miner, at the 2017 Formula Sun Grand Prix in Austin, Texas, I was responsible for the maintenance of the Battery Protection System software.
Powering through mysterious BPS software issues
This race was challenging and our team faced a lot of problems, but we powered through each problem, overcame shorting the battery pack, and finished 8th out of 17 teams.