(P) Technical interviews don’t have to be intimidating. Here’s how to set yourself up for success
Interviewing for a new job can be overwhelming. But when you know what your interviewer is looking for, what to expect and how to prepare, you can set yourself up for success. We talked to Cosmin Bratu (in opening picture), Engineering Manager for CrowdStrike, Romania, to understand the company’s technical interview process and our engineering team’s hiring principles.
Can you give us an overview of CrowdStrike’s interview process for engineers and other technical hires?
While our technical interviews can look different based on the team you’re joining, we generally run a three-part interview process. It starts with an initial conversation to ensure the role is a fit both ways. Then comes three technical assessments. Finally, we have an HR interview focused on values and interpersonal skills.
Our process is intentionally robust because we know candidates are interviewing us as much as we’re interviewing them. We allow enough time in the process for them to understand CrowdStrike as a company, as well as for us to assess their willingness to grow and ability to adapt. Continuous change is a way of life at CrowdStrike so it’s important that we hire candidates who demonstrate curiosity, ambition, teamwork, and adaptability.
So tell us about the first phase. What does that entail?
The initial interview is intended to confirm high-level suitability for the role. It's an open-ended, somewhat casual conversation between the hiring manager and the candidate. The interviewer explores the candidate’s professional experience and motivations and sets expectations about the job, our employee experience, and company values. The role specifications, the team structure, the product, and the problem it solves are central to this discussion.
After that initial interview, what happens next?
The next step is the technical assessment which consists of three interviews:
The data structures and algorithms interview happens in two parts. The first focuses on fundamental theoretical computers science concepts such as operating systems, data structures, concurrency, parallelism and similar topics. The second focuses on coding challenges with one or two moderately complex algorithm-based questions. The objective of this phase is to understand the candidate’s baseline knowledge of computer science.
The systems design interview focuses on large-scale problem-solving skills. In this phase, we focus on the candidate's technical experience, particularly with the design of large-scale distributed systems. We want to know the candidate's thought process and how they make design process trade-offs. We ask open-ended, practical questions that mimic the real-world problems that our engineers must solve on a daily basis. We also pay close attention to how well they explain themselves since communication skills are equally important to success.
Finally, candidates can choose to work on the coding project at home over a defined number of days or have it administered in person. The project is key, as it involves building a working application that needs to solve a simplified version of a real-world problem our engineers face here. Once they're assigned the project, the candidate has the chance to ask clarifying questions before they begin coding a working solution to that problem. This is followed by a review session during which the interviewer assesses the candidate’s rationale for the solution, the design decisions they made along the way, and the technologies they used.
How does such an in-depth process help candidates determine if the role is a good fit for them?
As I mentioned before, this process is as much about candidates interviewing us as it is us interviewing them. It’s a two-way street. In my opinion, the biggest benefit is that during this entire process, they have the chance to talk to a wide variety of technical people and learn what the team and company are about from all different perspectives. Yes, it’s in-depth, but it's also a chance to gauge the position, the projects and the company from multiple angles. They can see the culture at work.
Plus, the types of technical challenges we’re giving them are representative of what we tackle as a company and as an engineering team. So if you get excited by these challenges, you’re most likely going to be excited by the projects that you’ll work on once you come aboard.
What advice do you give to candidates as they prepare for their interviews?
Not to be cliché, but – practice, practice, practice. This is, by far, my biggest piece of advice. I see many candidates with five years of experience or more who think they don't need to practice, which couldn’t be more wrong. We expect our engineers to demonstrate skills in three areas: theoretical computer science knowledge and application, large-scale system design, and hands-on experience.
Well in advance of your interviews, try sitting uninterrupted with the types of problems or questions you expect to face at the interview, and practice solving them. You can search “system design challenges” on Google and find dozens of YouTube videos offering case challenges. Try to objectively answer a question such as “design a Twitter or Facebook News Feed,” for example. At the end, evaluate your solution. If you could have done better, try again. If possible, practice with someone with whom you can also articulate your rationale and who can challenge your thinking to help you improve for next time.
I also recommend candidates revisit fundamental concepts such as algorithms, data structures, distributed systems and deployment, and their application in the daily life of a software engineer. We won’t ask you about specific technologies, patterns, or tools, but we want to understand your base-level knowledge as an engineer.
We also want to see candidates asking a lot of questions because it shows that they are interested in what we're doing here.
What are the kinds of questions candidates should ask?
I get excited when candidates have done their research on the product. “I read about this product on the website, can you tell me how you’re building this feature?” Or even, “have you considered doing it this way?” I like that a lot. These kinds of questions show they’re interested in the specifics that we do on a daily basis. It's a super engaging discussion at that point.
And the more specific each interview, the better. For example, in a data structures and algorithms interview they could ask, in what way do you use algorithms at work? Or what was the one project where you got to implement one of these or use one of these cool data structures?
For me, it’s just as important for candidates to show interest in the team and culture. “Tell me about the team I'm going to join. What are you working on right now? What are your plans for the next six months, 12 months, and 18 months? From a product perspective, a team perspective, and a growth perspective, I want to see candidates who are proactively looking ahead.
What one characteristic do you look for and value most in a new hire?
A positive, enthusiastic attitude can’t be beaten. Enthusiastic candidates are inclined to prepare more, which is usually evident in their interviews. They demonstrate enthusiasm about the company, the role, and about the interview process itself. They’ll say, "That coding project that just took a few hours of my life was fun, it was challenging." That’s the attitude I'm looking for. A great attitude is a really important indicator. It's something that can’t be faked.
What can candidates look forward to about working at CrowdStrike?
The perks and the technology are pretty cool but above all else, they’ll get to work with some incredible people across all departments, disciplines, and teams. In my 12-year career, I’ve never worked anywhere with such a high density of smart, autonomous, helpful, and collaborative individuals. I love working here and being a part of the Engineering team. The positive environment makes me look forward to coming to work every day and keeps my enthusiasm as high as it was on day one.
It’s my duty to make sure we preserve this aspect of our company culture. One of my biggest challenges as a leader has been harmonizing the culture and mindset of the people coming in and the people they encounter here. It's quite rewarding to know that we’ve managed to succeed at this. And it all starts with hiring the right people.
CrowdStrike is looking for engineers who get under the hood, are curious about what’s going on, and put their tenacity to design solutions that work at scale. Sound like you? For more details about CrowdStrike Romania, click here.
(p) - This article is an adverorial.