About four months into my time at Signifyd, one of my old coworkers ended up between jobs. He was one of the steadiest, most conscientious people I’d ever worked with, and I thought he and Signifyd would be great for each other. So I decided to pitch the company to him and I led with the most amazing thing I’d seen us do up to that point.
From the pitch email:
“They actually have coding standards and do real code reviews. They pay for the tools you want and will honestly deprecate tools that have outlived their usefulness.”
I went on to talk about engineering rigor, the tech stack and some cool projects, but that was my lede. I chose to focus on those things because I felt they exemplified Signifyd as an engineering culture. In my moderately long and modestly successful career, I’d never found that kind of disciplined approach to making good choices for now and later. I thought it was inspiring.
Months later, I found an entry on our internal wiki entitled “Do It Right,” written by one of our co-founders. At 345 words, it’s a short entry. It’s a little dry and prescriptive and it’s very much geared toward writing code. However, it is the living soul of our culture. In it, Mike Liberty discusses the tension between creating clean, elegant code and delivering value to the company. He then goes on to set forth rational rubrics for choosing when to put in a little extra effort right now and when to do the expedient thing now and come back to the issue later.
Chose to do it right
The first part of the rubric is very simple: If doing something in a better way doesn’t balloon the scope of your task unreasonably and won’t cause you to miss a commitment, then do it the better way. This isn’t a suggestion. It’s a directive. At Signifyd, we believe that it is our duty to provide better code — for our customers, for ourselves, and for our colleagues. So when given the option, we choose to do it right.
The second half of the rubric is murkier but still important. If for reasons of scope or delivery you can’t do something in what you feel would be the right way, then you are responsible for making sure we know to revisit the issue. Again, we take this more as a responsibility than an option. While we acknowledge the reality that sometimes we’ll have to choose shipping over creating the most polished solution, we don’t believe in letting that compromised decision linger longer than it needs to.
A little over a year after I’d pitched my friend on Signifyd, he and I were working on a team together. We had a project looming that would help us handle the influx of Black Friday traffic and I was keeping my eye on the calendar. In the midst of all this, Mike Liberty’s code reviews made me realize that some of the code I was creating wasn’t in line with our Do-It-Right culture. And even though I felt some pressure from that immutable deadline, I reworked my code until it was done well. In the end, I was happier with what I’d created.
Ironically, in the scope of those code reviews, I discovered that as a team, Signifyd was great at making sure code was thoroughly reviewed, but not so great at making sure the author of the code felt great about their contributions. Because code reviews were so intrinsic to doing it right, I agreed to rewrite our code review guidelines with an eye toward empathy, respect, and clarity, as well as toward code correctness.
A new way to review code
After the new guidelines had been vetted by a group of senior engineers, I presented a hands-on code review workshop. Over those two hours, my colleagues asked incisive questions and raised issues I’d never thought to handle. Unlike such training I’d given elsewhere, they soaked it in and really thought what great code reviews could look like. It was inspiring at the time, and several times since, someone has told me how much impact my workshop had on their work style.
The Do-It-Right culture was so ingrained in our work that its central message was codified as one of Signifyd’s six core values: Design for Scale. The value is further described: Build solutions to scale and last. We are here to stay.”
One of the core aspects of this culture is that we’re never done growing or innovating. In much the same way that we very carefully updated how we review each other’s code, we carefully weighed our options when choosing GRPC as our microservice framework. Once Slack had surpassed our incumbent chat service, we made a plan and migrated. When we saw our colleagues struggle with onboarding, we created tools to get people up and running quickly — and every new hire has kept those tools polished.
Those few examples are just the tip of the iceberg. We’re often presented with moments where we are able to choose to do it right. Those moments are big and small, but we do our best to treat them with appropriate deliberation and care. Our culture not only allows for that level of craftsmanship but encourages it.
Whenever we get a chance, we all do our best to make Signifyd a better place to work. I can’t pretend everything goes as planned (We’re still coming to grips with load-balancing GRPC LINK TO GRPC POST in AWS.), but I can say that not a week goes by when I’m not amazed at how willing we are to grow as a team, how willing we are to do it right.