You too can strive as a non-traditional intern

Daniel Lau
strava-engineering
Published in
5 min readOct 3, 2019

Intro

Hello everyone, I’m Daniel and I came from a non-traditional coding background. I can’t describe how happy I was when I got an offer for a summer internship at Strava! I worked as an iOS intern alongside a team of amazing web, Android, and iOS engineers. Here, I will tell you about some of the work I did, the culture of Strava, and how much fun I had!

In the beginning

Prior to Strava, I had never seen such a large codebase in my life. I was quite lost as I scrolled through the files just to see how things worked. Although I felt slightly overwhelmed, I was also empowered to demonstrate my skills when assigned to build my first feature. In fact, I was already getting my hands in the app within the first week of my internship.

What I worked on

A majority of my work was focused on improving our iOS recording quality through a rework of the current activity uploading service. To achieve this, we’re beginning to transition our uploads from using JSON to the more reliable FIT file format. I built a new pipeline for iOS and WatchOS that supports FIT uploads with a status menu to validate uploads and handle errors. During that period, I had to write my first unit test to ensure my work can be connected to my colleagues in the upcoming weeks. This is where I struggled most, as I tried to conceptualize how to properly test my code. It was initially difficult to grasp, but I stayed persistent and worked closely with my mentor to develop my thought process. As the picture became clearer, I realized that this was a necessary hurdle as it gave me a new perspective in developing cleaner code.

Both devices share the same uploader

Mentorship

In the process of building things, I received some of the best mentorships I’ve ever experienced at Strava. My mentor Tom challenged me to not only navigate and break down problems but also to think abstractly as a software engineer. Though this happens once a while:

Yes, there were a couple of phases where some of the concepts took time to sync. I think this is what they call coder’s block? Fortunately, I had guidance from my mentor where everything becomes more digestible. I felt a great sense of satisfaction as I started to apply my knowledge. Only to discover I got merge conflicts:

My worries prior to the internship

Rest assure, the codebase didn’t catch fire!

I’ve always been afraid of merge conflicts, mainly because I didn’t know how to resolve them properly in the past. This is also why gitting the support from my mentor and a team of iOS engineers made such a difference. One of the obstacles was preparing the app to support the upcoming iOS13 release. For me, this was tricky to visualize because I had to merge a segment of my code from the beta version into the current codebase. This is when I was introduced with the tools such as FileMerge and Sourcetree that made resolving conflicts a lot easier. Moreover, my mentor patiently drew out branches and challenged me to explain the problem, which helped me navigate to the solution. Now, I’m embracing each obstacle, as I know it will build my experience in solving new problems.

The culture

What gets me excited every morning is knowing how fired up my colleagues are when they come to work. I had a conversation with one of the iOS engineers where I mentioned that I had never worked on any codebase as complex as your app. He immediately corrected me and said, “You mean our app”, and reassured me that I’m part of the team now. Those words stuck with me, as I now feel empowered to take ownership of the app. It also goes to show that the camaraderie, one of Strava’s core values, is embraced throughout the entire company.

Fun of being an intern

Aside from building things, I had a ton of fun when it came to participating in the many activities the internship has to offer. One of which was being a judge of the guacamole challenge. In the photo below, each dip offers a different flavor profile.

I’ll let the plate speak for itself

Group runs and workouts

Strava has a tradition of Workout Wednesdays, which is one of the toughest workouts I’ve done in my life. Yet, somehow through the sweat, exhaustion, and maybe tears, Wednesday grew into one of my favorite days of the week. Once in a while, I get to meet someone new, where we chat about our common interest in coffee, boba, and puppies.

Conclusion

How do you know you’re thriving? When it doesn’t feel like work. I came here to build something that I’m proud of and I did it. You will get a lot of support as an intern here. In terms of my thinking process, code quality, and working with people with a different technical background, I feel like I’ve grown a lot through this internship.

Lastly, I really want to thank Tom, Jason, Kyle, Matt, Rod, Merty, and many more of you for supporting my growth as an iOS Engineer!

A close game of kickball Interns vs Sidekick/Mentors

--

--