Interested in joining the backend engineering team at Grafana Labs? Well, consider this your in-depth guide to prepare for that process.
As a tech recruiter for the company, I want to shed light on Grafana Labs’ hiring process for backend engineers, giving you the best chance to demonstrate who you are and the value you’d bring to our team.
Read on to learn who you’d meet with during interviews, what to expect during our coding and non-abstract system design exercises, and tips to stand out as a backend engineer job candidate. While many of the details below are specific to the hiring process here at Grafana Labs, you can apply a lot of these best practices during any interview, at any company (but we sure do hope to hear from you).
How we hire
The goal of our interview process is to predict how you’ll perform once you join our team. Since we know interviewing ability has little correlation with employee effectiveness, we do our best to adjust our expectations.
It all starts with a phone call with someone from the tech recruitment team. This person will support you throughout the interview process. During the initial call, you will learn more about engineering life at Grafana Labs and assess whether this would be the right position for you. The recruiter provides more insight into the role, discusses how the engineering team drives the company forward, and answers any questions you might have.
From there, we move through four interview stages for backend or distributed systems engineers:
- The hiring manager interview
- Coding exercise
- Non-abstract system design
- Reflection and offer stage
We make sure that you meet different interviewers at every stage. This helps us get a full picture of who you are and gives you a chance to meet a wider sample of the engineers on our team.
Let’s take a closer look at each stage.
The hiring manager interview (45 minutes)
In this interview, you’ll chat with one of Grafana Labs’ Engineering Managers.
The hiring manager will probe deeper into your experience and technical abilities; they want to gauge not only if you’re a fit for the role, but if the role is a fit for you. To prepare, reflect on the most recent features you shipped to production, the tech you used, your level of involvement in decision-making, and how well the entire project went. Try to anticipate follow-up questions. What would you ask if you were the hiring manager? This is also a great opportunity to ask a few questions about organizational structure, culture, and the role itself.
Tip: Ask your recruiter for the hiring manager’s name prior to your call. Look them up on LinkedIn to get a better sense of who they are. Bonus points if you two share something in common. Connecting personally will make you more memorable.
Coding exercise (60 minutes)
In this phase, you’ll chat with two members of our engineering team.
And, despite its name, it’s not purely a coding exercise. We could evaluate someone’s coding ability just by looking at their code. More importantly, this exercise allows us to watch how the candidate thinks while coding, and gives us a chance to discuss their thinking process.
If we see this interview as a coding exercise alone, we miss its benefit. If we see it as an opportunity to witness how the candidate communicates, and how they’d interact with their colleagues, we draw the best signal from it.
To that end, the code itself isn’t the pass criteria here. Instead, it’s about showing us how you think through a problem, understand what you’re doing, and communicate collaboratively and with kindness — think of this more as a collaborative coding exercise, with you in control.
“I want to see how the engineers interact,” says Jessica Brown, an Engineering Manager here at Grafana Labs. “We are a remote team, so pair programming or jumping on a call with other engineers to work through some problems or bugs is completely normal. In this case, it’s just that two of the engineers know the answers already, because, of course, they did this same exercise in their interviews, and the exercise represents a real problem we encounter at work!”
Tip: It is easy to get caught up in interview prep. But while some preparation — such as setting up a dev environment for your chosen language — is clearly helpful, it becomes counterproductive beyond a certain point.
As Malcolm Holmes, a Senior Software Engineer at Grafana Labs, says of all of our interviews, “It is much more valuable to turn up as you are than to stress about who you should be.”
Non-abstract system design (60 minutes)
During this part of the interview process, you will again chat with two members of our engineering team.
We ask candidates to complete what Google calls a Non-Abstract Large System Design (NALSD) exercise. Basically, we present a problem to a candidate and ask them to reason about it.
While the purpose of the coding exercise is to establish whether a candidate can “reason downwards” and collaborate with colleagues to deliver code, the purpose of this exercise is to see whether a candidate can “reason upwards” — meaning, can they take a deliberately vague description of a system, and reason about how the system might be designed?
Tip: This interview phase is about seeing where you, as a candidate, lead us. We want to see how you think about the “whole system.” What parts of the system work well? What are some areas in need of improvement? This gives us an idea of your strengths, as well as the areas where you might need some extra learning.
This part of the interview is not an assessment of knowledge. While it helps us evaluate how a candidate solves a problem, we pay more attention to the candidate’s problem-solving process than the solution itself. In fact, the more a candidate knows about the subject matter of this interview, the harder it can be to interview them. Conversely, the less they know, the easier it is. We want to witness how you go from knowing nothing to having a proposed solution. What do you think? How do you communicate those thoughts? And of course, what experience do you bring to that thought process?
Reflection and offer stage
At this stage, it’s time to reflect on the people you’ve met, the conversations you’ve had, and whether the interview process was a positive experience overall. Think about whether you’d enjoy working alongside the people who interviewed you; what can they teach you and what can they learn from you? Does observability, as both a SaaS and on-premise tool, appeal to you? Does the specific role look like the next step in your career? Many of us are at Grafana Labs to perform the work that defines our careers — are you looking to do the same?
You can be sure, at this point, that we are also asking questions and identifying what your first 90 days would look like to ensure you’re successful. Which role is the best fit for you? What would you bring to that team, and how would learning go both ways? What tasks would help you onboard quickly so you can make a difference as soon as possible? What does success look like in a year or more, and how can we help you achieve that?
From there, it’s decision time. If we do decide to welcome you to our team, one of our internal recruiters will be in touch with the good news.
If you would like to speak to anyone else within the company at this stage, this opportunity will be available to you. Perhaps you’d like more time with the hiring manager or a fellow engineer. Or, if you want to learn more about what it is like to work at Grafana Labs and have a specific concern — for example, maybe you’re from an underrepresented group within the industry and want to chat with somebody who has a shared experience within the company — we can facilitate an off-the-record conversation.
We really hope you choose to join our team! We’re looking for smart, curious, kind people with a high bias-to-action. If this is you, we look forward to welcoming you.
We’re hiring! To learn more about working at Grafana Labs, check out our careers page to read about our values, how we approach remote work, and some of the perks of being a Grafanista. You can also peruse our open positions to see if there’s an opening for you.