What I Learned at My First Software Engineering Internship
My experience at Garmin Ltd.
For twelve weeks over this past summer I worked at Garmin as a Software Engineer Intern at their headquarters in Olathe, Kansas.
I worked with the team that develops and maintains the Vivofit Jr. mobile app for both Android and iOS platforms. I was able to operate as an additional member of the team, taking tickets and implementing features that will be released in future versions of the app.
This being my first software engineering internship, there was a lot to learn during my time with the team, and they were incredibly supportive throughout. Here are my biggest takeaways from the summer:
1. The Agile development process
The development team used an Agile workflow, and I was able to participate and learn about the process.
I participated in daily stand-up meetings, sprint planning, and sprint review meetings. At first I operated more as a “fly on the wall,” observing and learning from what others said. By the end of the twelve weeks, I felt more comfortable speaking up and had a deeper understanding of the process.
While I had knowlege of the Agile methodology before, participating in it allowed me to learn a lot and see just how powerful it is. I now feel prepared to jump right into Agile teams in the future. The best way to learn about Agile is to be a part of it!
2. Surviving code review
After submitting patches to implement tickets, the code would go through code review. The team used Gerrit to view and annotate submitted code.
I would say code review is where the majority of my learning ocurred over the summer. Comments left by the rest of my team allowed me to learn best practices, efficiency improvements, and conventions used in the rest of the codebase.
While this process was intimidating at first, and my earliest patches had to go through many revisions, the rest of the team was always patient and happy to help me. Special thanks to my mentor for the summer, Collin, for all his help with this!
In future internships, I am prepared to use code review to continue learning and improving as a software developer. I recommend that any other interns out there do the same!
3. Mobile development best practices
Through my work, I was able to learn a ton about mobile app development. While I had some experience with Android development before starting, the features I implemented at Garmin required me to learn about support for multiple languages, various device types, different operating systems, and more.
On the Android side of things, I was able to work extensively with building layouts, creating activities, utilizing fragments, and connecting them all together. Jumping into a large Android codebase was a challenge at first, but it allowed me to see how large apps are managed and how various features can be implemented.
Going into the summer, I had no experience developing iOS apps (mostly because I don’t have a macOS computer!) Therefore, I started with simple tickets to gain familiarity with the iOS framework and the Swift language. I was able to successfully complete several tickets, and I hope to learn even more about native iOS development in future internships.
My advice to other interns: pay attention to the little things! The style choices, design patterns, and best practices for the framework you are working within have been selected by the team for a reason. Learn as much as you can from the team about the technologies you are using.
BONUS: Kansas City Fun!
The summer wasn’t all work! I had a blast exploring the Kansas City area with the rest of the interns throughout the summer. Between concerts and events downtown, the variety of museums in the city, and eating lots of barbecue, there was always something to do! I made some amazing friends that I can’t wait to see again! See some of the highlights in the pictures below:
The view of downtown from the top of the National WWI Museum
The office in Olathe, Kansas
Kansas City has the best barbeque I’ve ever eaten!
Intern at Garmin!
Overall, I had an amazing summer as an intern with Garmin! Interns are able to learn a lot through working on meaningful projects that will be used by customers, and all interns are paired with a mentor to answer any questions they might have. Interns also receive great benefits such as provided housing, PTO, and lots of fun activities sponsored by Garmin!
My favorite part of the summer was being able to meet and make friends with other interns. With over 100 interns each summer, there is a community of great people to hang out with and learn from!
If you’re interested in an internship with Garmin, check out the Garmin Careers page to apply! Feel free to reach out to me if you have any questions!
Here are just some of the amazing friends I met this summer!