On Distributed Systems and Engineering Management
An Interview with Camille Fournier
We sat down with Camille Fournier to talk about engineering management and culture. This is an excerpt from the full interview with Camille, from Model View Culture’s Quarterly No. 2. Subscribe to our digital editions to read the full interview and much more.
Tell us a little bit about yourself and what you do in the industry.
I am the Head of Engineering for Rent the Runway. I have been with Rent the Runway for about two and a half years, helping to grow the tech team here from around 15 to 40. In my day job I wear many hats. I oversee the high-level tech design and architecture, and plan the long-term technology strategy. I work with partners in the business to prioritize our roadmaps and ensure we are building what is important. I do much of the heavy emotional work of managing the people, thinking about how to grow them, what our culture should be like, how we hire, what we believe in and what our engineering brand really is. And very occasionally I write code.
What’s your advice for people who are becoming first-time engineering managers?
The hardest thing for most first-time engineering managers is getting used to the fact that the sum of your importance is now far beyond simply the code you write or the infrastructure you design. Your job just got a lot harder, you need to balance more distractions and learn how to keep yourself out of too many critical paths. If your first answer to every problem is “I can just bang that out,” you’re probably doing it wrong. You probably have more meetings to go to, at the very least you need to have 1-1s with everyone who reports to you, ideally once a week. All of a sudden, managing your time will become one of your most critical skills.
Be kind to yourself because you’ll probably screw this up at least a little bit. Remember that you should be up-front with the people that work for you, but not cruel. People want feedback and guidance, they want to know what to do to be successful, but they rarely respond well to overly harsh criticism. Remember that not everyone has exactly the same skill set that you do and respect that it takes many different types of engineers to make a successful product.
Engineering culture is a big topic of conversation. What are some of the most important aspects of culture for teams working on distributed systems?
Distributed systems break in interesting and painful ways. A successful team working on distributed systems is a team that is extremely focused on engineering quality and operations. There are many different kinds of distributed systems engineers out there, with different talents. Some are good at debugging distributed problems and systems interactions, some others are good at designing for performance, some are good at designing the testing patterns to ensure the systems are correct, etc. But I think that if you’re using distributed systems a lot in production, everyone on your team needs to care about what happens in the wild. I want folks who fight to grab onto bugs, really figure out what is wrong and explain to everyone what the problem is, and fix it quickly.
In general I’ve found that most great distributed systems engineers are a bit older and more experienced. There is an element of patience that pays off with this sort of development, and it is such a broad area that there is a lot to learn before you are really any good at it. Instincts about the ways things can and will fail are rarely the product of pure academic learning. It is the kind of environment where you want mature engineers.