As a kid, there were two things that I always wanted to be: a baseball player and an astronaut (not necessarily exclusively). If I told my 7-year-old self what I did this past summer for my first internship, I think he’d be pretty excited, even though I wasn’t playing in the MLB (yet). This past summer, I had my first software developer internship where I worked for NASA through The Johns Hopkins University Applied Physics Laboratory (APL).

During my 10-week program, I worked full-time in a software development team on a project titled MITE (Mission Independent Test Environment). The idea behind MITE was to create software that could emulate space craft and thus test different aspects of NASA’s ground system every time it was updated. This ground system, titled AMPCS (AMMOS Mission Data Processing and Control System), is responsible for sending and receiving messages to various space craft such as the Europa Clipper and the Opportunity Mars Rover. As it stands, testing updates for AMPCS is very expensive because the only way it can be done is to send and to receive messages from space which is very slow, and the time consumed is time wasted because valuable data could have been transmitted instead.

During my time at APL, I created CLTU (Command Link Transmission Unit) verifiers using both Python and Java. CLTU’s are a form of data packets that are encoded in a specific format of hexadecimal values. In a nutshell, CLTU’s contain multiple start-message and end-message hex codes with data sandwiched in between. After researching the specific encoding format, I was able to create programs that could parse through these data packets, interpret the information inside of them, and decide if the messages were sent properly.

I was put onto the MITE team right as the project was starting up. As a result, in addition to my CLTU parser, I spent a lot of time researching AMPCS, which was a system new to my coworkers as well. I documented dozens of pages on how to use the system on our team’s wiki which was hosted on Confluence. I also became very familiar with other Atlassian products: Jira and Bitbucket.

I learned a lot about professional software development during my 10 weeks with APL. The most prominent of which was Agile, specifically SCRUM. In my team of 7 people, I learned about the dynamic between software engineers, a SCRUM master, and a product owner. I learned how to dissect a project into a prioritized list of product backlog items (PBI) and then further dissect those into subtasks. I got used to frequent stand-up, PBI grooming, and sprint planning/review meetings. I was given full responsibility as a software engineer, and I loved it.

My first summer internship couldn’t have been a better experience. I got to work on some amazing software, meet countless friends, coworkers, and mentors, and learn invaluable skills that I’ll use throughout the rest of my career. I’m extremely thankful to The Johns Hopkins University Applied Physics Laboratory for this past summer. Now I just hope that my application for that MLB shortstop position goes through for next year.