Paving the Way to Google!

Lessons I Learned From Many Data Science Interviews

Shoresh Shafei
Sep 8, 2019 · 13 min read

There is a time when you should change your job no matter how awesome the culture and how amazing the company is; and it’s when you stop growing.

When my time arrived, I interviewed many organizations in East and West Coast. From financial organizations to technology giants and from New York and Washington D.C. to Seattle and San Francisco I was open to new adventures. In the meantime, at the end of each step and each interview I thought about what I, as a candidate, and the interview team could have dove better.

What you are about to read is not exactly a roadmap to how to land the next position but more like a recollection of my thoughts about the whole process.

Most of what I am about to tell have already been published as LinkedIn posts. I know a lot of people are already going through or about to start the path I finished just a couple of months ago and my hope is that my notes on finding the right company, dealing with rejection, preparing for interview, etc. make their journey more exciting than mine.

Here is a list of topics I discuss:

  1. It is not easy but it is worth it.
  2. Job hunting vs. online dating
  3. My criteria for evaluating a position!
  4. How can you help companies find you?
  5. The ultimate interview tip: forget solutions, build systems!
  6. Technical skills for becoming a data scientist: my take
  7. My system for preparing for technical interviews
  8. Non-technical interview tips
  9. To all my friends experiencing rejection!
  10. After-rejection prescription
  11. Want to get hired? Work on your technical skills! Want a promotion? Learn institutional knowledge!
  12. To interviewers: meet the candidates at their comfort zone!

It is not easy but it is worth it!

Recruiter emails, intro calls, technical questions, weekend projects, on-site visits, rejection letters, negotiations and so on seemed like a never-ending process; a loop I was repeating over and over again.

The process is exhausting but at the end, at least for my case, was rewarding and well-worth the efforts. I learned a ton and frankly, I became a better data scientist along the way. Interviewing companies in different industry segments, different in size and revenue and location, and discussing a variety of exciting problems they want to hire you for was eye-opening. Every interview help me prepare for the next one by giving me a better prospects on the needs, the challenges and the expectations.

Job hunting vs. online dating!

Job hunting is a lot like online dating; there are many singles out there but too few matches. Your job is not to marry the first one that goes on a date with you but to find the one with mutual interests and long-term prospects.

My criteria for evaluating a position!

What are your criteria for picking the future organization? The brand, the location, compensation package, the job description, the projects you will be working on or even the perks and benefits and flexible work hours; which one has the most important factor? If you had multiple options in a variety of companies, what would you pick and why? Here is my take:

  1. People
    Very few can have a long-term impact on the quality of your life: your life partner, your adviser/boss and the people you work with. Make sure you choose them wisely and that can alone make living a lot more fun and fulfilling!
    When it comes to career, I have never regretted prioritizing people over projects/companies/universities. They can make or break you and your future; they can encourage/discourage you in every step along the way; they can become a major force in your personal or professional growth or the main obstacle towards achieving your goals.
    And my next career move was no exception. Trying to find the right team to join was the top priority.
  2. Responsibilities
    Through conversations with the hiring team, I wanted to figure out whether I am excited about the role and responsibilities. Once I interviewed a company in ticketing space where the whole team were passionate about sports events. For me that do not follow sports, it was obviously not a right choice.
    Don’t solely rely on the job description as it will only give you an idea about the role. This is the case especially for companies with less experience in hiring data scientists.
  3. Growth opportunities
    Does the future company encourages learning/improving skills and provides tools for it? Can I find new career opportunities in the same organization if I want to make a shift? Will I be able to easily find and connect to mentors?
  4. Career path
    How much the position I am considering aligns with my next 3–5 year goals. I used this principle to decline a couple of offers that financially made sense but were not aligned with my longer term goals.
  5. Compensation package
    It matters now and it will always matter. But it is not the most important factor. Money and financial well-being is a consequence of hard work and impact and if you find an organization that encourages learning and supports growth and rewards hard work, you should not worry about the rest!

How can you help companies find you?

Consider the following facts:

  • 7.3 million openings in May 2019,
  • thanks to technology anyone can apply for any position with a click,
  • and yet 63% of recruiters believe talent shortage is their biggest problem.

That’s why you need to become your own advocate & help companies separate signal from noise. The truth is no one knows your goals and ambitions better than you. A list of skills & projects on your resume simply won’t do justice.

If you want to increase your chances of getting hired in the right role & the right company, here are a couple of things to try:

  • Your LinkedIn profile
    It is like your saving account. It works for you even when you’re asleep. Keep it up-to-date, use the right keywords, and make it easy for the visitors to find relevant information about you. Remember that 87% of recruiters use LinkedIn to check candidates.
  • Your Network
    They are your connection for a reason. A referral can increase your chances by 5 times so message them and respectfully ask for referral, guidance, advice, etc. Stop after two trials per connection. You have more important stuff to do.
  • Cold email:
    Here is what I did: Find & apply for the right position on LinkedIn. If the recruiter was listed in the job page, I sent them a message (a sample in comments).
    A sample letter I used for cold emailing:
    Hi […],
    Reading the job description […] role at […], I found a great overlap between my current responsibilities and the job description. Please allow me to elaborate:
    In the past couple of years, I have

— worked in […],
— gained 3 years of experience in […],
— defined and measured product metrics,
— become experienced with […]
— trained machine learning models,
— prepared […] analysis,
— extensively collaborated with business teams, and
— built analytics dashboards.

I applied for this position [job ID here] and I hope you will consider my application.
Your name,
Current title

The ultimate interview tip: forget solutions, build systems!

The tip is the realization that in most interviews, candidate and interviewer are seeking two different things: while the candidate focuses on the solution, the interviewer is seeking the system. The former relies on technical abilities while the latter is about the process you build to demonstrate them.

The system is a step by step process you use in order to help the interviewer understand your approach to evaluate and solve the problem and communicate your thinking and your ideas. Something she is way more interested in than just the right answer! If the solution is the story, your system is how you tell your story and it’s the best testimonial to your depth of knowledge and how well you communicate it.

As an example, I discuss my system for answering a technical question, like a SQL problem:

  1. Repeat the question and what you should deliver to the interviewer to make sure you both are on the same page.
  2. Ask for a minute or two and think about the solution. Not only does this give you time to gather your thoughts but leaves a positive impression with the interviewer: you think before you speak!
  3. Explain your strategy and check your assumptions with the interviewer. Like is it safe to assume there are missing values or duplicate values in the data?
  4. Keep the interviewer engaged: write the code as readable as possible and at each step explain what you are doing.
  5. Review your solution and also provide suggestions on how to make it better.
  6. Ask for feedback! On multiple occasions the feedback helped me improve the code. Sometimes it led to interesting conversations around other possible solutions to the problem.

Technical skills for becoming a data scientist: my take!

I used to ask what skills should I acquire and how much should I know to transition to a career in data science. And most of the time the answers were not good enough!

Leaving how you want to learn them to you, here is my take:

  1. SQL
    If you’re comfortable working with the Window Functions, you’re good to go!
  2. Statistics
    You can calculate confidence intervals, design an experiment and explain p-values. You’re comfortable with ANOVA, and understand the assumptions behind linear regression.
  3. Python
    Write simple code to handle strings, understand Numpy library and become good enough handling large datasets with Pandas and visualizing the results with Matplotlib.
  4. Machine learning
    You understand the basics well: from the bias-variance trade off, the difference between parametric and non-parametric algorithms and categorical vs. regression models to over- and under-sampling methods, etc. You understand how the traditional algorithms work: from Linear regression and SVM to ensemble methods. You have working proficiency in at least two algorithms such as logistic regression and random forests. You understand the different metrics for assessing your model and how to pick the right one for your problem.

My system for preparing for technical interviews

  • 20 min
    I read the job description, highlighted the key points and thought of how my experiences relate. This may not seem technical but this part gave the technical questions a context.
  • 30 min
    Through the initial conversation with the recruiter, I tried to figure out what type of technical interview I should expect.
  • 30 min
    I research the company online and if possible, the division they are hiring for and thought about the projects and the problems they are trying to solve. If unfamiliar with the domain, I would research that as well.
  • 10–15 min
    I checked out the interviewer (if given) on LinkedIn to learn about her expertise. It’s funny that for some reason, the less I did this, or basically the less I cared about who interviews me, the better I did during the interview.
  • 45–60 min
    I checked out the company’s interview questions on Glassdoor and few other websites. If it was a phone interview, I only reviewed the phone interview questions and so on.
  • 60–120 min
    Depending on the interview, I reviewed my SQL/Python/Statistics/Machine Learning notes (I’ll share them in the near future).

Interview non-technical tips

  • Act like a topic expert, not a job seeker!
    Treat the interview like a conversation and the interviewer like your colleague. Relate the questions to your past experiences, tell a story, keep the interviewer engaged and ask her questions like: how would you/ your company deal with this situation?
  • Phone interview at your peak time
    I realized evenings after work hours worked better for me. Figure out your own.
  • There is a good chance you’re as qualified as many of your interviewers. Be humble but confident.
  • Data science Interviews are easy if you are ready technically (assuming your skills match the job requirements)! The more you practice the better prepared you are.
  • Don’t worry about rejection: you almost always get a second chance (after a while) and in the meantime, there are many other great companies out there.
  • You have been told this a zillion times, but again, remember, you also interview the company representatives. Something you don’t ask about or don’t notice now, can become a huge problem later.
  • Keep the interviews with companies you care about the most to the last so you have enough time to learn from and fix past mistakes.

To all my friends experiencing rejection

I feel your pain & frustration! I went through the same process a couple of weeks ago. And I got rejected from many companies. When confronting frustration, we normally blame ourselves for not being good enough. However, at least for the majority of the people I know, it is far from the truth. Through many interviews, which for a while seemed never-ending, I came to the realization that most of my frustration was with two groups of companies:

  • Those (normally small to mid-size) with no prior experience in hiring data scientists. Here you may see the least accurate job descriptions, and some irrelevant questions.
  • Those with data science team(s) but without a well-structured processes around hiring. Here you may have to answer very specialized questions based on who interviews you and the project the interviewer is working on/is interested in.

Don’t blame yourself for something you do not have much control over! Instead, learn from every interview, move on and get ready for the next one. There are many companies out there that need your talent, passion and hard work. The more experience you gain, the better you manage any circumstances.

After rejection prescription

  • You did great but the interviewer didn’t get you!
  • The problems were confusing. They were not interview-type questions.
  • I was not given enough explanation or time.
  • You don’t deserve rejection!
  • And so on

You are absolutely right on all accounts above. But ONLY for the first half an hour after the rejection! After the first 30 minutes, and before forgetting about the content of the interview and possible flaws in your performance, from the way you framed the problem, your approach to the SQL question or not being familiar with the company/product well-enough, think carefully about what went wrong! Write it down and make sure you take care of it. The truth is there are many things that can go south during an interview and it’s okay! What is not okay is to make the same mistake twice! You just don’t have time for that…

There are many great companies out there so don’t worry if you messed up an interview!

In early days, a couple of interviews that I screwed up with some of the technology giants left me in despair. I was afraid that if it continues like that, I will run out of great options and may have to end up somewhere that wasn’t a step forward in my career. Meanwhile, I already had a position in a great company working with an amazing group of people and didn’t want to change my job under any circumstances.

A couple of things helped me overcome this fear. For example a simple search on LinkedIn can expose us to a myriad of opportunities from great but less-known organizations with interesting and sometimes disruptive services that many of us have never heard about even once. The truth is that the world is not limited to Facebook or Google. In fact, there are more-than-you-can-even-imagine companies out there that have a healthy culture and supportive teams willing to help you grow and be the best of you.

Base your important decisions, including taking on a new role, on your hopes rather than your fears: if you are seeking and haven’t found the right organization yet, don’t give up. Keep looking!

Want to get hired? Work on your technical skills!
Want a promotion? Learn institutional knowledge!

Domain Knowledge & Institutional Knowledge: When my past company’s CEO encouraged me to work on Declined Transactions as my first project after joining the team, I was disappointed! Right out of academia, I was hoping for a complex project like building the best machine learning model. Instead, I was assigned to calculating the ratio of declined to all transactions, to oversimplify it. What I did not know was that my assignment was, not if the most important, but one of the most important problems in Payment Industry.

What I was missing was not technical skills. Technically, I was capable of doing any type of analysis. 14 publications in 3 different fields of science and in a variety of demanding topics from Cosmology to Nonlinear Nonlinear Optics and Computational Biochemistry, winning multiple research awards and working on my data science skills for about a year, I was ready to do what it takes to showcase my technical abilities; to shine! The missing piece was not math and stats. It was the domain knowledge and business acumen!

In addition to technical capabilities, data scientists need to develop other skills that allow them to identify the projects that impact the business and empower the stakeholders and prioritize them over any other type of work. To get there, i.e. to develop business acumen, the coexistence of two pieces are necessary; domain knowledge and institutional knowledge!

Domain knowledge helps you understand the main concepts of your industry sector. Institutional knowledge, on the other hand, focuses on the company you work for: its vision, its competitive advantage, how it operates & generates revenue, its priorities, the history and future plans and so on.

A domain knowledge expert in Payment Industry may identify fraud and declined transactions as very important problems. Institutional knowledge helps the expert pick one over the other based on which aligns better with the company’s vision.

Talking to experts in your field, people in your company, subscribing to newsletters, reading the company documents, all and all can help you develop your domain and institutional knowledge.

Listen to the conversations carefully, remember names and master important concepts mentioned and repeated over and over. And be patient!

And here is the good news: I have come to the realization that while we get hired for out technical skills, what makes us irreplaceable is the institutional and domain knowledge. It is not normally difficult to replace someone with someone with better technical skills, but it would be very difficult to replace a someone that knows the domain well and the institution she works for very well. Therefore, while in the short run, your competitive advantage is your technical skills; in the long run, your domain and institutional knowledge become the one!

Meet candidates at their comfort zone!

I argue that If you want to see the candidates at their best, evaluate them in their comfort zone: a suggestion to interviewers!

During the interview process, phone or on-site, the candidates’ brains are processing a zillion different things at once. Under these circumstances, if your judgment is solely based on their capabilities in understanding problems and challenges related to the new role, you have not evaluated them to the best of their abilities.

Instead, I suggest that a part of the interview should focus on moving to candidates’ comfort zone and challenging them by asking detailed questions about their past work. This indeed should go beyond a short introduction that normally takes place at the beginning of the interviews.

This will help build a more comprehensive picture about candidates’ cognitive and technical abilities, their thought process and approaches to the problem, how they deal with challenges and how they are presenting them to you.

While this requires experienced interviewers, it makes the process fair and helps organizations attract applicants who may end up being a better fit for the role.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade