Not able to clear interviews? or not acing too many interviews?
The gateway to a job in data science is the dreaded interview. Veterans and interns alike have to go through the interview process. For data scientists, data engineers, and machine learning engineers, it’s gruelling. Questions span programming languages, platforms, algorithms, and dive into your project experience. Theory and practice are examined with candidates moving from coding to whiteboard sessions to one on one grilling.
Acing the interview requires a candidate to have a process. It starts with preparation, continues with the interview itself, and wraps up with quality follow up. Without a process, it’s easy to spend days preparing but not being prepared. It’s very easy to miss the point of questions or wander into interview bear traps. It’s also easy to be forgotten as the process moves forward. I’ve made all these mistakes and watched them be made as I’ve hired. Here’s how to avoid them and land the job you want.
Interview prep needs to be a quick process. Set the interview for about a week out and plan on spending 2–3 hours a day on prep. That fits into the lunch hour and after the kids are asleep or during your train ride to work and home again. It won’t derail your work, other studies, or life which means you’ll actually do it.
Ask the recruiter or hiring manager what projects the team you’ll be joining is working on? What approaches are they exploring? What is their tech stack? These questions are invaluable in reducing the amount of prep time required. If you can’t get direct answers to these questions, don’t take the interview. At this level, you’re expecting some guidance from senior members. That starts even before the interview.
Day 1, review statistics. Start with the most basic descriptive statistics and probability. Cover discrete and continuous variables and distributions. Look back at inference, ANOVA, linear regression, and multiple regression. I still have my old college intro to stats textbook…good old Devore, Probability and Statistics. Paging through it for about an hour or two is all I need to get my terminology sounding crisp again. It is a given that you’ll have some basic questions sprinkled in and it is so easy to fumble on basic terminology. It isn’t so much a matter of knowing the material; if you’re in data science, you do. You must demonstrate a level of comfort and competence which benefits from a fresh review.
Day 2, data science 101. I page through a classic, Doing Data Science by Schutt and O’Neil. It covers everything from EDA to KNN to Naïve Bayes to SVM to Decision Trees to PCA and SVD. Get very fluent with the differences between supervised, unsupervised, and reinforcement learning with example algorithms for each. Refresh your memory on what types of problems each solves. Go through quick pros and cons of each approach. The reason I recommend a data science 101 refresher is similar to the stats review. The breadth of knowledge required for a data science interview is massive. Fresh concepts make for competent answers.
Day 2, machine learning 101. If you’re going for a machine learning role versus a data science role, day 2 is a bit different. It’s all about the models and architectures best suited to the team’s area of focus. It pays to do a bit of homework on the team. Have they published anything? Check Github, conferences their members have presented at, and the company machine learning blog/press releases/etc. These will give you an idea as to their approach and direction. Study along these lines. There’s so much ground to cover in machine learning that if you don’t have a focus, there’s no way to be ready for what will be asked. Once you’ve narrowed your review to a few architectures, dive in. Also, google their problem space. Look at the most current research. Having this in your back pocket can help you stand out as someone who stays current with the latest developments.
Day 3, write some code. Tailor your coding to the job itself. Obviously use the language(s) required. Think about how you would approach what your potential team is working on? What libraries would you use? What data pipelines would you need to build? What types of data are you working with? How much data cleansing is required and what’s the best possible way to do it? Build a sample project based on these criteria. This will probably take more than 2–3 hours so make it your side project for the week and don’t be afraid to ask a colleague to help out. If it results in something interesting, consider bringing it to the interview to present. Big companies love seeing this. It’s why they’re so active in recruiting at hackathons. Nothing gets positive attention like proof that you can do the job.
Day 4, review your project notes. You’ve been selected for an interview because your skills and experience line up with the job requirements. You know you’re going to be asked, “Have you done anything in the past like what we’re doing here?” Make sure that answer is polished and concise. Review notes or code from projects which have overlapped with the role you’re going for. Talk through what you did in your head. Think about how you’d improve on that approach based on a new experience or new tools.
Day 5, fine-tuning. Don’t fill your head with anything new on the day before the interview. Don’t cram. Don’t panic. Don’t read about the latest work. Spend the day before the interview visualizing successful interviews. Practice your answers with friends or family if anything feels shaky. Go over your mini project presentation one more time. The visualization process is critical in cementing all the work you’ve put in. It’s also important not to sabotage the work by overwriting everything with new information.
The previous section was a generalist approach which works very well for early and mid-tier positions. It’s different for specialists. Specialists are expected to have the strong capability with a small variety of topics and expertise with one or two. There’s no concept review to be done when you’re an expert because you’re likely as or more knowledgeable than anyone interviewing you. Interview prep at this level is a matter of getting ready for questions you don’t answer every day.
Part 1, mentorship and leadership. The challenges of leading in a highly complex field with gifted individuals will be explored in these interviews. Leadership comes in two forms, mentorship and management. Prepare for questions on conflict resolution, performance evaluation, coaching, managing career path, continuous education, managing the innovation cycle, and managing the development cycle. Page through your favourite leadership book. Mine is Strengths-Based Leadership. Next, spend some time thinking about your leadership experience around the areas I’ve outlined. How have you handled conflicting ideas? How do you manage an underperforming subordinate? As a mentor, what’s your teaching style? As a leader, what’s your management style? How do you mentor an employee who is brighter than you? How do you help that person continue to grow when they’ve exceeded your knowledge?
Part 2, vision. As a senior member of the team or a leader, you’re going to be asked about your vision. Having a clear vision for where data science and machine learning are going as well as how that affects your potential new role is critical at this level. Your vision will tie into questions about design, architecture, training, hiring, and problem-solving. Senior leadership roles require you to tie your vision into strategic planning. How do you architect for a future where there will be more unstructured data coming from a lot more sources? How does your design and architecture change for a 2-year end of life versus a 5-year end of life commitment? What will customers expect from machine learning products in 5 years and how do you build now so the products are able to meet those demands?
If you don’t already have at least a partially formed vision, you won’t be able to wing it between here and the interview. Building a vision takes a lot of thought time. However, practising answering the questions I’ve outlined above will help you sound a lot more polished when it comes to articulating your vision. Having a forward-looking, strategic thought process is an easy way to stand out from the crowd. In a field with as few people as data science and machine learning, there are even fewer who’ve made the jump from engineer thinking to leadership thinking. It’s worth showcasing.
Part 3, execution and results. Spend time thinking back on your projects with an eye on business impacts. How did you deliver against a tight deadline? How did a product you created impact revenue or save the company money? Have hard numbers ready to go. Nothing is as impressive as a leader or senior team member who drives results. Those metrics stick in interviews’ minds…especially in our field. Have showcase projects in mind and create a short story that goes through the project from inception to results. Be ready for the typical follow-ups. What would you do differently if you had to do it again? What were your biggest challenges and how did you overcome them?
With each of these three parts, be as polished as possible. Concise answers are best but don’t be afraid to elaborate when the question calls for it. We work in a very complex field. Some answers will span 5–10 minutes and could involve stepping up to the whiteboard or pulling up your body of work. Be creative in presentation and storytelling to display your talents to the team.
When I’m interviewing, I look for more than just skill. For most roles, there will be two or three candidates who are capable of doing the job. Which one I hire comes down to a few factors.
· Potential — How likely is this person to be ready to move up in the next 2–3 years?
· Focus — Interviews can be lengthy and mentally challenging. Who was best able to keep their focus throughout the process?
· Communication — How well did the candidate explain their experience? How comfortable are they talking through concepts in certain terms? How well can they tailor their communications to audiences of all skill levels?
· Love for the field — Is this what the candidate wants to be doing or is this all the candidate could find?
Love for the field, aka passion, is easy to gauge. As a candidate, let that come out in the interview. Talk passionately about the projects you love. Be excited about a new opportunity to work in a field you enjoy.
Potential comes down to two things. Is the candidate self-directed? Does the candidate have a reasonable plan to achieve their goals? Find a few minutes to talk about your professional motivations. What drives you as a person to do the job better than others? Talk about how the role fits into your career progression and how the company helps you achieve your larger goals. Neither needs to be long-winded but they both leave a powerful impression.
Avoid distraction and stick to your communication objectives during the interview. That’s a huge differentiator between candidates. The person who is often on point with their communications presents a more polished professional demeanour. When you get a question, think about the person asking it before you answer because the target audience’s skill set matters. Sometimes the most impressive answers are the least technical.
During the interview, be looking for genuine reasons to follow up with people. Can you follow some of your interviewers on professional social media; LinkedIn, Twitter, their blog, etc.? Are some of you going to the same conference? Is the company sponsoring an event like a meetup or hackathon you’d be interested in attending? Genuine follow up is far more impactful than the canned thank you email or phone call. It also far less overbearing than forced follow-ups.
Those are my best practices for acing a data science or machine learning interview. I would love to hear yours in the comments section.
I recently started a telegram group for all data science aspirants, data scientists and other related professions. If you want to be part of this, you can join here
I can be found on Linkedin.