Spending the Summer with Strava on Web Platform

Sydney Bui
strava-engineering
Published in
4 min readAug 18, 2021

Hi hi! I’m Sydney and this summer I was a Frontend Software Engineer Intern on the Web Platform team at Strava! I am here to take you through my summer with Strava and a cool project I worked on!

On Your Marks…

Before diving straight into my main project for the summer, I first went through an onboarding process and completed small tasks to get myself used to the workflow. This was super helpful as it prepared me for the main project that I would be working on this summer.

My project was to work with micro-frontends — a self-contained system for frontend development where parts of a web application are built from semi-independent parts. Strava is currently in the early stages of using micro-frontends, so we’re using them only for our internal admin tools. We currently have multiple micro-frontends for different admin apps which are rendered in the same container but function as independent React apps.

Simple diagram for how our micro-frontends are set up

For my project, I built a new micro-frontend to act as a tool for our community management team to help support Beacon, Strava’s live location sharing feature.

Get Set…

Before I could build the features for the Beacon Admin app, I first had to create a new micro-frontend for the Beacon app itself. I came into this with no knowledge of what a micro-frontend was and was understandably intimidated by it. However, after hopping on a Zoom call and walking through the proper approach with my mentor Mark Hurwitz, I gained a better understanding of micro-frontends and was ready to tackle the rest of the project.

I found that setting up the micro-frontend was actually pretty straightforward and already had a good level of abstraction so I didn’t have to work with non-frontend code. I am super grateful that my mentor was so willing to help me out and walk through the process with me since it really solidified my understanding of the project.

Go!

Once the micro-frontend was set up, I had an isolated React App where I could start building the Beacon app. Since micro-frontends are fairly new at Strava, we have not yet figured out routing, so part of my project was to determine how to get React Router, a library of React navigational components, to work with our setup. I also had to figure out how to get GraphQL to work with our micro-frontend setup, as my project is one of the first at Strava to use it. I really enjoyed working with such new technologies as part of my internship!

Since I was one of the first to bring these technologies into the existing codebase, I had no documentation I could reference when stuck — which actually gave me the excuse to meet more people! Pair-programming with other engineers was super helpful in getting this project off the ground.

Despite being an intern I worked on something that would have an impact on how Strava utilizes micro-frontends in the future. I wrote the documentation on building a micro-frontend and basically created the framework that Strava engineers will reference in the future. Not only was I learning so much from working with new technologies, I was working with people outside of my team that I would not have met otherwise.

When my project was done, I presented the app to the Frontend Guild, a team of people that focus on Frontend work at Strava. It was great to see everyone so excited about the new uses of React Router and GraphQL with micro-frontends and reminded me of how thankful I am to be able to work on such a unique and impactful project this summer!

Meeting New Friends Along the Way!

Aside from my technical growth through projects, this summer at Strava allowed me to meet so many amazing people and form great relationships with them, despite all of us working remotely. One of my favorite things that I did with my team was our weekly Water Cooler chat, when everyone hopped on a Zoom call for thirty minutes to just chat and play games. This casual setting really helped me get to know them better and feel more integrated into the team. I never felt scared to ask questions or reach out when I was stuck, which was great because I definitely was pretty confused in the beginning.

Me at the San Fransisco office with a couple of people from the team!

These ten weeks at Strava really flew by. I truly felt integrated into the company and I even got the chance to visit the San Francisco office and meet members of my team in person! Strava’s super welcoming atmosphere made it so easy to adjust and freely enjoy the internship.

Special thanks to everyone on the Web Platform team! :))

--

--