Describe your favorite project or presentation that you have completed for your internship
Background: I am currently working as a software engineer intern at General Dynamics Land Systems (a branch of General Dynamics which is a global aerospace and defense company). The branch I work at focuses on land systems – mainly Abrams tanks and Stryker vehicles.
My favorite project is called “Auto Load.” This is my favorite project because it is challenging, I have a lot of independent work for it, and its functionality is valuable to my team and the company.
My team works on developing software that downloads new software onto the tank. Currently, there is only a manual method for downloading Line Replaceable Unit images (physically selecting images for a specific command). Engineers testing software they just developed spend a lot of time selecting the images they need to download, then waiting for the images to finish downloading, and then selecting more images they need to download. “Auto Load” automates all the clicking/selecting that was previously needed and only downloads images that need to be downloaded/are outdated.
This project was challenging for a couple of reasons. “Auto Load” was not documented with exact specifications. Implementing this function required me to reach out to numerous engineers to find out special cases and more context about how this function would be used. Additionally, it was difficult for me to test my code without a working testing environment. This is overall a challenge when working on embedded software versus application software. With embedded software, you have to test your code on the hardware it is designed for. At GDLS, we have benches where we can test our code on. These benches consist of Line Replaceable Units wired together like how they would be inside a tank. The benches allow engineers to test code without having to go on a tank. With deadlines coming up for other software engineers, it was hard to reserve a spot on a bench to test code for something not mission critical. Lastly, implementing this function requires a lot of background knowledge in general. Along with reaching out to other engineers, I found myself stepping through code for hours to understand what functions were necessary for “Auto Load“.
This is the first full-stack project I have worked with. It combines back-end coding with a graphical user interface. Despite the project’s challenges, I have thoroughly enjoyed working on it.
“Auto Load” will save my team a lot of time, and I hope they use it for many years in the future!