Scratch-Itch Day: FindHotel's twist on passion projects

As an Engineer in a user-focused company, most of my day-to-day tasks get prioritized depending on the impact that they will have on the user. Whether it's a bug fix or a feature, we are always trying to balance the effort and the value of our work in order to consistently make our users happy, as fast as possible.

In my opinion this is a sign of a great company, with a clear mission and well-defined objectives to realize the vision. However, sometimes I like to tackle issues that mostly affect me and other engineers; for instance tooling for QA, or just quality of life improvements for engineering workflows that are not usually the focus of our sprint goals.

So why is this day important?

Neglecting our own problems in favor of the user for too long can lead to tech debt, or just lower our morale when we want to have some time to make our lives easier, or even just to give us an opportunity to work on something slightly different that we just can't squeeze it in to our day-to-day.

This is what we call an "itch". An issue that doesn't (directly) affect the users and it just grows to be more annoying (itchier) with the passing of time. This can, depending on the itch, hamper your ability to ship robust things consistently. It can also just get to bother you so much that you avoid certain systems, a particular codebase, or it can just straight up be a snag that slows you down. It's easier to make our users happy when we (the people making the product) are also happy!

So what do you do then?

Enter FindHotel's Scratch Itch Days, AKA my favorite day each month. That day, I decide what problem I want to tackle, no negotiation on prioritization other than how much I need to scratch that itch. There is no need to justify why you want to solve a problem to another stakeholder, you get free reign to code away any issue you've been facing that hasn't been able to make its way into tech debt work in a sprint.
This stimulates creativity and cooperation. Maybe you want to mix it up and collaborate with a colleague you don't usually work with, solve some pesky linter issues that have been piling up or optimize the performance of your workflow by streamlining a process. Scratch Itch day is your day.

It’s not for just us engineers.

Other colleagues are also encouraged to participate and help themselves and our users, it doesn't matter if you’re joining in an engineering, designing or any other type of role. You can take part in this awesome day, or not! Your choice, but we find the work resulting from this day incredibly valuable.

Ok, but what kind of things do you work on those days?

Anything you want that you haven't been able to justify into a sprint. Here are some things I have done:

  • Wrote a script for quickly creating a React component from a template
  • Improved the way we use partials in our email templates to avoid code repetition
  • Added tags to our components for better user behaviour tracking regarding our AB tests

And last but definitely not least:

  • Implemented a system that intercepts API responses and decorates or replaces them entirely AKA a scenario simulator, which helps us mock complex conditions in our application in order to develop, QA and debug, something that could be a common pain when working on a complex product with external APIs

In addition, our Design System, our shared Core business logic package and, our experimentation platform implementation all started as a proof of concept which our engineers tackled to scratch their itch.

Wait, step back, scenario simulator? What? Why?

Having to develop and QA all of this scenario simultaneously was quite challenging, but we believe in smart work over hard work.

Because developing solutions to certain scenarios like sold outs, pay now or pay at property deals, just to name a few, can get tricky, and finding those scenarios when developing and QAing was a major speed bump, so I had a massive itch every time I needed to develop solutions for very specific issues. This has a few upsides:

  • Engineers can code and QA very specific scenarios
  • New colleagues can see how the application works under different circumstances
  • Front end and Back end engineers can work on a joint task at the same time by mocking the changes to the API

So come and join us! We're hiring, help us scratch the itch of our users by giving them a better travel experience, and know that if you develop any itches* of your own, you'll get the time to address them.

*As long as your itch is not that you want to bring down the website for an impromptu holiday, we got our Flexible Time-Off policy for that!