Reaching my Summit during my Strava internship
By: Emmanuel Suarez
Tags: iOS, Internships, Strava, Swift

Hey there, my name’s Emmanuel. I’m originally from Puerto Rico, but I’ve spent the past three years studying computer science at the University of Pennsylvania, where I’m a head TA for an intro CS course and the treasurer for the Society of Hispanic Professional Engineers. This summer, I worked as an iOS software engineering intern at Strava on the Premium team.

On August 1st — during my internship — the Strava Premium subscription was rebranded to Strava Summit: three separate packs that an athlete can subscribe to. This was a huge, company wide rebrand (even the Premium team got renamed to the Summit team) that took careful months of work and planning, and I was lucky enough to be a part of it!

Started from the bottom now we’re here

On my first week my mentor asked me what I wanted to get out of my internship. What I wanted was to be able to proudly look at something in the iOS app and say “Hey, I did that!” Of course, that definitely wouldn’t be happening on my first week, so I started out with some “easy” bugs to fix.

To me, the bugs were a huge struggle: I had suddenly been dropped into a codebase with tens of thousands of commits and a long list of contributors, and I had no idea how to do anything. I needed to ask my mentor for help with everything. On the first few days of my internship, I wasn’t sure if I should have accepted this position instead of letting someone more qualified get it instead. My mentor assured me that every new engineer starts out by bug bashing and needs a while to adapt to the codebase. The same was true for me, and after a bit, I did!

After I had adapted to the codebase a little and felt sort of capable, I was assigned my first task related to the Summit release. It was just a membership landing page, but it was really exciting to work on something that was relevant to the team and actually needed for the Summit release.

Once I completed that task, I started growing more adjusted to working on the iOS release of Summit, so I began being given more and more responsibilities every week. I felt myself slowly becoming an important part of the team, with my contributions actually helping get this huge release out by our deadline.

Summit subscription confirmation

By the time August 1st rolled around, I had worked on so many tasks for the Summit release. One of the most notable of these is the new Summit subscription confirmation page that literally everybody who joins Summit sees! Another example is the code for a user to get a free 1-month Summit trial during registration. That code affects everyone that signs up for a new account on iOS, and I got to write it!

Becoming a well-rounded developer

I definitely did get what I wanted out of my internship. When I look at the iOS Strava app, there’s a bunch I can point at and think, “Hey, I did that,” or “Hey, I fixed that,” and that’s a great feeling. By the end of it all, I worked on real code that is affecting real people, but I also learned a lot in the process. I learned how to work in a team on a large, high impact project. I learned a lot of good project/task management and context switching. And, technically speaking, I learned a bunch of Swift and Objective-C, and great architectural and design patterns for both languages. This wasn’t just through writing code, but also through reading and reviewing the code of other iOS engineers.

I learned all of this because on the Summit team at Strava, I was considered another full-time engineer.

Instead of having one personal project with virtually no risks, I was working on the same thing my whole team was working on. I got to understand the stress of a real deadline that affects a whole company and millions of active users. The code I wrote was crucial to the release of Summit, and all of it was actually shipped and is in the app right now. The most valuable thing my internship at Strava taught me is what it’s like to actually be a full-time employee, which I appreciated way more than just working on a small project for a summer.

The people and culture at Strava

I’ve spoken about the work I got to do at Strava, but I haven’t spoken about another great thing at the company: the general culture and environment. One of the core values at Strava is balance, and everybody employs that in their day to day. During my internship, I was never expected to overwork myself past my limit: both my manager and mentor made it clear that after I had worked 8 hours, I should go home and take some time for myself, and that ended up giving me a lot of time to explore San Francisco and spend time with friends. At work, nobody expects you to spend the entire time you’re there viciously writing code and doing nothing else. People are always welcome to take breaks to go for a walk with a friend or get a snack.

There’s quarterly three-day “hackathons” called Jams where everyone can work on anything they want. Teams have offsites: after the release of Summit, my team had went tubing down a river (one of my personal favorites). All of this promotes a healthy, stress-free environment that ends up with engineers working way more productively when they’re actually writing code, myself included.

And while Strava does treat its interns like full-time engineers, there are some nice exceptions. This summer, the intern class left the office and got to go to a Giants game, participate in an escape room, and even race each other on go-karts! And at the office we had AMAs with the CEO and with one of the co-founders of Strava, and we participated in the Guacamole Challenge: a tradition where employees make guacamole and then the interns judge it to determine who makes the best guacamole at Strava.

Overall, my summer at Strava was unforgettable and I am grateful that my internship experience was challenging, rewarding, and downright fun.