General Atomics Aeronautical Systems (GA-ASI) is defense company based in San Diego, CA, leading the development and manufacturing of unmanned aircraft and mission systems. During the summer of 2022, I worked as a Software Developer Intern on a Modeling and Simulation team, responsible for the development and delivery of flight-critical simulation software.

My team utilized an application called AVSim to simulate the flight of unmanned aircrafts with real-time aircraft telemetry data (ex: latitude, longitude, fuel). AVSim communicates the telemetry data via UDP messaging to other applications or to a physical ground station computer itself to simulate flight.
One fallback of AVSim, however, was that it did not offer a way to see what data it was sending out to other apps/computers. I addressed this issue by developing a monitor application that could be used in conjunction with AVSim to allow developers or ground station pilots to easily examine the telemetry data being generated by AVSim, and quickly identify and troubleshoot errors that may be affecting aircraft behavior.

To accomplish this task, I worked though the entire Software Development Life Cycle (SDLC), which involved:
- Establishing technical and functional requirements
- Identifying potential use cases and error-handling based on Interface Control Documentation (ICDs)
- Creating wireframes/mockups of the monitor's graphical user interface (GUI) and iterating upon feedback until a final design was achieved that satisfied the established requirements and use cases
- Performing iterative development in Python, beginning backend with the implementation of a multi-threaded UDP client-server program to process telemetry messages, and then moving towards frontend with the construction of the GUI using Python's Tkinter toolkit
- Testing with my own test client (which contained a simple, parsable telemetry message that mimicked an AVSim message) and with AVSim itself, and making modifications as needed until the expected behavior was achieved
This internship was filled with many firsts for me, including working full-stack, implementing a multi-threaded client-server, and using Agile methodologies. It was an incredible opportunity to apply the object-oriented design and systems programming concepts I learned in school to building a real-world application, and to be at the forefront of aviation as part of the Modeling and Simulation team!