Introduction
As a Software Engineer Intern at Lockheed Martin Missiles and Fire Control, I was placed on the Layered Laser Defense project. The goal of the project is to build a laser turret that can be used to disable incoming drones, missiles, and other aerial technologies for defensive purposes. Due to the nature of Lockheed Martin technologies, I may not discuss proprietary information on this page. However, I will summarize my responsibilities, contributions, and what I learned while working on this project.
Workflow and the Agile Software Development Cycle
-Daily morning scrum meetings to report on blockers and daily tasks
-Weekly team meetings to report on status
-Monthly sprint planning for minor releases
-Utilizing Jira to organize, assign, and report tasks for each sprint
-Using an isolated development desktop environment
-Utilizing GitLab to handle merge requests and peer review
-Performing unit tests on development environment
-Performing integration tests on actual lab chassis
General Tasks
During the first few weeks of the internship, I was assigned minor "nice to have" tasks to implement into the main executive GUI. These features were written in Java and were not required nor a big priority for our senior developers to work on so they were perfect to get me started. While they were minor in priority, they are likely to be greatly appreciated since these are what the operators actually see while using the GUI. Generally, this involved redesigning labels, adding unit configurable conversions, and working with button functionality. Later on, I was assigned tasks involving build scripts using the GitLab pipeline, CMakeLists, and Gradle. Outside of source code tasks, I've worked on building Linux OS images, testing and deploying physical hardware (Hand Controller), and some bug fixes.
Some Things I Learned
-Git/GitLab
-Agile Software Development Cycle
-How to work with large codebases
-More intermediate Java GUI practices
-Intro to CMake & Gradle
-Intro to C++
-Unit & Integration Testing
-VMWare & intro to Linux
-Intro to middle end tools such as RTI Connext
-Intro to automative python and batch scripting
-Intro to embedded systems
-Working with a team
Conclusion
This internship has been a very valuable experience in my career path. My code will remain in the codebase leaving a real impact. I was also able to expand our engineering effort and efficiency. Thanks to my contributions, I was given an offer to extend my internship throughout the fall semester! I hope to continue working with Lockheed Martin and possibly move into Classified areas.