Introducing the HackerOne Engineering Blog

Rory Ou

Jan 21, 2019

Hello.

Welcome to the HackerOne engineering blog.

This is a space for us to collect our thoughts about our experience as developers: what we’ve been working on, some of the problems we’ve encountered, some of the solutions we’ve explored, some of the lessons we’ve learned. It’s a space where we hope to dialogue with the larger developer culture, sharing learnings and practices.

Starting our own blog has been a long time coming and a broad, cross-team effort. But it feels like an essential and natural thing for us to be doing, because telling stories is ingrained into our engineering culture at HackerOne.

Our Groningen (Netherlands) office, of which I am a member, is known for its internal memes. Unsuspecting visitors may not realize that in any given conversation they find themselves in around the office, many of the sentences being uttered contain at least one Groningen meme, and every now and then someone manages to string together a sentence entirely from Groningen memes.

Each Groningen meme is a short phrase that usually unpacks into a whole story about something that happened in the history of our team. It can be a reference to a bug we shipped that cautions us to be mindful of column defaults, which is the story behind the meme “Merry Christmas.” Or a phrase that celebrates the confusing and contradictory world of English idioms, while also allowing us to easily triage tasks in our backlog: “table it.”[1] Or an analogy that reminds us of our commitment to the agile process: “ship has sailed.”

Seasoned Groningen folks recognize every reference and remember the origin story behind each, and are always happy to retell the stories when asked. New team members pick up the stories and explanations behind these memes one by one, gradually absorbing some of the most important shared principles of the way we work together, through our oral tradition and without needing to sit down and read through a doc (although we have plenty of those as well!).

Many cultures that don’t necessarily rely on a writing system have equally effective (if not more effective) ways to propagate and preserve communal knowledge. On our team, the memes and the stories behind them serve as a form of oral documentation that propagates organically, an informal onboarding that parallels the formal one, helping new team members integrate fully into the culture they’ve joined. But more than that, they remind us to laugh about things, even past mistakes and production fires, and to not take ourselves too seriously. Some of the engineers who have been around the longest also have the most memes poking fun at their quirks, which reminds us not to put them on a pedestal. Often when one person invokes a meme, several other people echo it in acknowledgement. This call-and-response pattern reinforces the team’s shared history.

It’s common for startups to confuse “culture” with “activities” like lunch, ping pong, and happy hour (all of which we also do). To me, culture is made up of the values we actually act on (not just the ones we post on our website), the way we treat each other, the stories we tell, and the ways in which we interact as a group of humans who share a space (physical, virtual, or both) and a common goal.

Another form of communal storytelling at HackerOne is that, as an engineering team–in all offices–we tend to be very “retro-happy,” meaning that we have a habit of looking back on our work and retracing the narrative of what happened and how we could have collaborated better. We have recurring sprint retros, project retros that look back on a longer length of time, incident retros whenever something comes up, and retros for special events like Hack Day. This tendency has propagated to other departments, where we have, for example, retros on how we could’ve better served a certain customer. We have retros on pretty much anything we do that we could have done better–which is pretty much everything.

The retro meetings often result in a written postmortem that contains logs and timelines of what happened, the root cause analysis of any issues, conclusions about what we learned from the experience, and action items for what we can fix immediately. Especially as our engineering team is distributed across two continents and several time zones, written postmortems allow us to communicate the narrative and learnings asynchronously for people who couldn’t attend the retro.

So we continuously retell our stories, write them down, and propagate them throughout the team. But many of our stories would be valuable for individuals and teams outside of HackerOne as well, and up until now we haven’t had a practice of sharing those with the outside world.

This blog is a way for us to begin that practice, and to bring a piece of our oral and written tradition to the larger world of developers and people who build products. We hope it will help our community expand to include you, dear reader, and the lessons we can learn from you.


Notes:

[1] “To table” something has opposite meanings in American vs. British English. We find this ambiguity hilarious.


Rory Ou is an Engineering Manager at HackerOne. She specializes in abusing the announcements channels on Slack, getting coffee with coworkers, and procrastinating on writing talks until the day before she has to give them.