How I successfully planned & ran hack days for the distributed Engineering team at Mixmax

December 1, 2020

Written byRyan Freebern

How I successfully planned & ran hack days for the distributed Engineering team at Mixmax

This is the first post of twelve for Mixmax Advent 2020.

“Let’s plan a hack day,” someone said in one of our regular team meetings. We’ve done them before, and they’ve been very successful: get everyone together for some marathon coding, fueled by carbs, caffeine, and adrenaline. We’ll work closely, quickly attacking each problem as it arises and finding the shortest path to a working prototype of something awesome.

The problem? In 2020’s pandemic-stricken world, getting everyone together to code side by side is a recipe for likely illness (and possibly worse). This year, Mixmax has gone from being a hybrid company, partially colocated at an office in San Francisco and partially distributed, to being 100% distributed. While working as a distributed team is something we’ve had a lot of practice doing, we’re also used to periodic all-hands get-togethers, during which something like a hack day is relatively straightforward to organize and run.

Doing it distributed

When I volunteered to plan and run a hack day for the team, I knew I was taking on a challenge with some new unknowns. The “hack” part was straightforward: most people on the team have experience with hack days, and I knew what it would take to make that aspect work:

  • Collect creative ideas related to a chosen theme
  • Form teams around the most appealing ideas
  • Put in a little pre-planning time to hit the ground running
  • Do whatever’s necessary to construct a working prototype
  • Show off what was created, and celebrate the inspiration, creativity, and learning

The questions in my mind were related to making it successful without everyone in the same place. A big part of the reason hack days work is that they’re a break from the ordinary. Pulling ourselves out of our usual day-to-day work and tackling something inspiring and creative gives us license to try radical new things, be clever, take risks, and know that it’s all supported in the spirit of learning and growing.

Making it unusual

In order to make this feel unusual and allow that inspiration to bloom, I worked with our office manager to plan a few surprises for the team:

Hack day fuel, personalized

We sent everyone participating a preloaded gift card, intended for the purchase of whatever snacks and beverages would best give us that hack day energy. While it’s not the same as sending the VP of Engineering on a pizza run, having a stash of enjoyable food and drinks on hand would help keep spirits up.

A photo of some snacks.

Hack day radio

I organized a group of volunteers to DJ a “Mixmax hack day radio station” using Spotify via JQBX. People signed up for timeslots and chose a format for each one, meaning we had non-stop streaming tunes of many varieties, from early 20th century French jazz to hyperpop to Detroit techno to cumbia. This gave us a good energetic background soundtrack for our hacking, a chance to share our tastes and our musical knowledge, and something to appreciate and chat about when we weren’t deep in the code.

A little extra inspiration

We also sent everyone on the team a gift box with an assortment of small items inside, one of which was a classic LEGO set. During the event, I challenged each team to use their LEGO set to put together something that conveyed the Mixmax core values. Teams stepped up to the challenge, assembling photos and videos demonstrating their unique takes on the concept.

Some legos representing "Live as one team with one mission" in an abstract way.

The outcome

When it was all over, we shared our work. We made amazing progress on (and built working prototypes of) four concepts:

  • Understanding our product features and their usage via improved analytics and visualizations in a way that will help us focus on what our customers want and need most, and simplify our product to make it better.
  • A key piece of a new, faster, more stable approach (using Go to talk to bee-queue) to how our system handles processing queued jobs such as the hundreds of millions of Salesforce updates we receive on a daily basis.
  • An amazing amount of progress toward modernizing the code that powers our internal administration system, to make it easier and faster to use and more delightful to work on.
  • A system (written in Go and Rust, using Amazon EventBridge and Lambdas) to automatically fetch timely data about potential problems within our system, to allow the on-call engineer to make better decisions more quickly and prevent those problems from impacting customers.

We also came away feeling inspired, creative, and ready to tackle the next challenges that came our way in our day-to-day work. We’re not done with these hack day projects, either! Every engineer at Mixmax spends 10% of their work time on creative pursuits like these hack day projects that are beneficial to their growth and the improvement of the team overall, so many of these will get polished, released, and become part of our production stack or our internal tooling.

Lessons learned

The big takeaway from my perspective? Creativity begets creativity. Taking the time to make a hack day feel unusual and push people out of their everyday mindsets can pay off, even when the team can’t be together in person. Next time around, I’ll come up with even more inspiring hack day ideas. Maybe we’ll hang out in something like Rambly or take mini hack-breaks to play a round of Among Us. When the goal is inspiration and creativity, the possibilities are wide open!

Do you have great ideas to make your next distributed hack day special? Share them and tag us on Twitter! Do you want to join an exciting, creative team of talented engineers working on software to eliminate busywork? Check out our careers page and come join us!

Get Mixmax