Grey Sköld | Android Engineer
Engineers at Pinterest are always focused on doing what’s best for the product, but working in a codebase that’s clean, well-maintained, and relatively bug-free transforms engineering tasks from being “just work” to enjoyable opportunities to flex our skills. We’re also enriched as engineers, both technically and otherwise, when we take time to learn from our coworkers. While we may have the occasional holiday party or offsite, nothing combines community building and product improvement like a Fixathon!
What is a Fixathon?
At Pinterest, the typical Fixathon spans three days. Engineers from a specific team or platform dedicate their time to work on tasks built around a theme central to improving the codebase. Improvements can range from clearing out bugs, removing code debt, adding new lint rules, converting surfaces to use the latest technologies, and more. The Fixathon is an opportunity for knowledge sharing about new discoveries and ideas, highlighting particularly impactful contributions, and most importantly, getting together to eat lots of food!
The Fixathon Runbook
Observing the Opportunity
Before we plan a Fixathon, we first assess what areas of our codebase harbor enough opportunity for improvement to justify taking multiple days away from our core roadmap. Additionally, we need the Fixathon to engage a majority of the engineers at the event. The focus could range from rewriting legacy code, getting up to speed on a new programming language, updating to the latest APIs, and more. The goal is to produce a set of projects large enough for a whole team to contribute to solving existing problems in maintainable ways and improve future developer velocity.
Creating a Committee
Early Fixathons were usually organized by only a few engineers with any available cycles they had. This proved to be inefficient and didn’t lead to successful events that were a worthwhile use of time for the majority of attendees. Over time, we’ve found that a committee of six to eight engineers works well to sufficiently represent the full engineering team and plan a successful event. By having a larger committee delegating the various tasks involved in event planning (there are inevitably quite a few), our Fixathons aren’t bottlenecked by the limited bandwidth of a few engineers.
Deciding the Dates
It’s exciting to start planning food and themes, but grabbing an available date and location on the company calendar is our top priority. We look for a block of days that’s far enough out to allow managers and ICs to plan for the event and isn’t too close to other company-wide events, project crunch times, or holidays. Once we’ve selected the dates, we pick a location in the office closest to the majority of attendees; we’ve found the closer our event is to people’s desks, the better the attendance.
Prepping a plan
Once we have a date and location set, the committee members get to put on their event-planning hats and decide on the theme, food, awards, swag, useful extra equipment, and the all-important budget.
- With our identified project areas, we choose a theme that will feed into other aspects of the Fixathon (e.g., posters, awards, JIRA label, etc.). Last year, our theme was Kondo the Kodebase.
- We pick the food and drinks, making sure to take into account any dietary restrictions of the participants.
- We name awards to give out (e.g., Most impact to Pinners, Most impact to Developers, and Fixathon Favorite). Last year, one of our engineers even crocheted Android trophies!
- To encourage attendance (and leverage the power of FOMO), we nail down the swag to give out to everyone who contributes to the Fixathon (past swag has included beanies and sweaters).
- We then consider the equipment we’ll need (e.g., monitors, keyboards, and various cables necessary for development), and we loop in our IT department as early as possible to assist in providing the extra resources.
- Finally, we wrap up all the fun stuff by agreeing on a reasonable budget estimate.
Embody the Excitement
Once we’ve made a plan, we dedicate our remaining time towards increasing awareness of the upcoming Fixathon.
- After finance signs off on the Fixathon budget, we email event details to all potential attendees, and we personally announce the dates in team meetings.
- We set up a monthly routine of bombarding managers with email reminders of the time commitment required from their ICs, which ensures managers have the opportunity to allocate time on their roadmap in anticipation of the event.
- As we draw closer to the date, we hang posters around the office to build excitement and increase visibility for anyone who may have overlooked our earlier communications.
Last, we add the final touches like a JIRA filter to track work, a Fixathon Slack channel, daily schedules for attendees, a Google Survey to use for voting, and an official MC for the event. Now all that’s left is getting ready for the best Fixathon ever!
After the Fixathon
As the event comes to a close, we grab a team photo, clean up the space, and help the committee compile data highlighting our work so they can share out to the rest of the company. Then all that’s left is enjoying the team memories!
Here at Pinterest, the Fixathon is an extra opportunity for developers to engage with each other and work towards improving both the health of the codebase and developer velocity. It’s also a time to socialize with the diverse group of people around us and connect with others passionate about making the Pinterest experience great for our fellow developers as well as our users.
We hope this encourages you to organize your own Fixathons and invest in building stronger developer communities!
Special thanks to Helen Fu for crocheting the awards, AJ Oxendine for designing the posters, Toffee for being the hat model, and everyone on the Android Team who makes the Fixathon possible!