David Mayo Programming Portfolio

A representative sample of projects I've completed. Most of these were created for previous employers who retain exclusive rights to the code, so I can't provide source code.

Spacecraft trajectory compression algorithm

Python

Created an efficient algorithm for summarizing spacecraft position as a series of segments of parametric Chebyshev polynomials using the fewest possible number of segments. The output of the program was commands to send to a spaceraft to allow it to know its precise location in the Solar System at any specific point in time.

Created for the Lunar Ice Cube mission. Our spacecraft hardware was limited to a specific number of segments, and precise locating was essential for performing maneuvers and accurate scientific measurement, so this was a very critical and very delicate optimization problem. My approach can generally achieve errors of less than 20 meters, even at distances of over 1,000,000 kilometers, while limiting the number of segments to the theoretical minimum and still completing in reasonable time.

My algorithm improved on existing standard practice on every measurable metric, sometimes by over 99%. As far as I or my team know, this is the best solution (from both a practical and theoretical standpoint) that yet exists for this problem. The Lunar Ice Cube team is writing a paper about my algorithm (ammong other topics), and we hope to present it at SmallSat 2023.

I am very proud of this project and could talk about it forever.

3D spacecraft trajectory plot Chart comparing performance of two algorithms

Combat Wordle

C++

A two-player, networked, console-based, "graphical" clone of the game Wordle.

Created as a university assignment. The most interesting feature is a custom C++ library that allows for displaying text with arbitrary foreground/background colors in the console using ANSI escape sequences.

Repository link

ColorConsole.cpp implementation link

PowerShell text

System Monitoring and Control

Python

A GUI for monitoring and controlling all aspects of a 21-meter satellite dish for radio astronomy and deep space spacecraft communication.

Very large project (10,000+ SLOC), written completely by me. The program connects to six different servers for monitoring telemetry and controlling antenna operations, each of which uses a different networking protocol. Several of the protocols were completely undocumented, and I had to reverse engineer them from Wireshark packet captures.

Entire project is coded in Python using only default libraries. The GUI is TKinter, which was a bad decision.

System Monitor and Control GUI screenshot

Rubik's Cube Trainer

Unity/C#

An interactive GUI for teaching people how to solve a Rubik's Cube.

Created for a group university assignment, although I did every bit of the design and coding. This was my first experience with Unity (or any video game engine), so it is pretty janky. But the end result is decently useful, I think.

Repository link.

Rubik's Cube Trainer GIF

I.T. management scripts

Windows PowerShell

A large library of PowerShell cmdlets and scripts for automated remote management of Windows 10 clients, created for the Lexington Public Library I.T. department.

PowerShell text

Travelling Salesman Genetic Algorithm

C#

Implementation of several genetic algorithms of my own design for solving the travelling salesman problem, along with simple visualization.

Repository

PowerShell text