How to Find a Data Science Job in 2024 (with experience)

At the end of 2023, I decided to change my job. I had worked previously in multiple companies as a Data Scientist (Machine Learning Engineer): an outsourcing firm, a small startup, and a medium-sized mobile applications publisher. But I had never worked before in big tech or similar companies, so my main focus was to find a job in one of those.

In this article, I will tell you about how I found a new job, how I prepared for the interviews, and what my success rate was. And because experience matters a lot, I will provide my background information below.

  • I am a Data Scientist with 4 years of experience.
  • I have a bachelor’s degree in Computer Science.
  • I was looking for a job in Europe because I am living there.

Preparation

In this part, I will tell you how I prepared for the interviews. Some parts could be relevant to any Software Engineering position, while other apply only to Data Scientists or Machine Learning Engineers. You can skip the parts you are not interested in.

Coding

Because my main focus was big tech companies, it made sense to improve my LeetCode skills. In university, I took multiple algorithms courses, read a couple of books on algorithms and completed one or two online courses. So, I was not a novice at all. But still, knowing general algorithms and solving LeetCode tasks in 20 minutes are quite different tasks.

I started solving LeetCode problems. My plan was to solve at least one per day. And I did so roughly for 3 months, with a one-week break for vacation. In the beginning, I spent around 3-4 hours a day. In the last month, I just solved the daily challenge as fast as I could.

As a result, I solved 300 tasks. I think it is much more than you actually need. But I loved the process.

LeetCode results

You need theoretical knowledge to solve those questions. Again, I could be biased because I learned this stuff in university and by myself for a couple of years beforehand. But from the experience of my friends, solving the Udemy course Master the Coding Interview: Data Structures + Algorithms and reading Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People will be enough to begin. I did it too, just a little earlier.

But theory will not take you far. You need lots of practice. And for that, we all use LeetCode. From my standpoint, it will be enough to solve the whole Grind 75 or neetcode.io, which will take you a couple of weeks with a tight schedule.

I think the best approach will be to spend 30-40 minutes on each task. I always begin by drawing needed structures and conditions. This leads me to the initial solution, which then I optimize if needed. After that, I write the solution in pseudo-code on paper. And then transform it into my Python solution. This may sound like overkill. But in reality, the first step takes most of the time. If you have a drawing of your solution, then writing the code will be a piece of cake.

If you are not able to solve the task by yourself, watch the solution on the NeetCode YouTube channel, and then code the solution again by yourself. This way, you will memorize and understand the solution much better than simply copying it from the Solutions tab.

If some topic is not understandable to you, I recommend spending a couple of hours on YouTube. For example, the legendary channel of Abdul Bari. And I suggest implementing the new structure or algorithm in your programming language from scratch. It will solidify your base and understanding of the basic Computer Science topics.

And remember, you don’t need to be a genius to solve those tasks. You need patience, time, and consistency. I still can’t solve some of the medium tasks, and I skip hard tasks altogether. Don’t be hard on yourself, just stick to it, and you will succeed.

Data Science and Machine Learning

Those topics are really broad and everybody expects different things from those specialists. Some companies need to build matching systems, some LLM-powered tools, and some analytical dashboards. Therefore, it’s crucial to adapt according to the job description. But, there is general knowledge which you should know for most interviews.

I think Chip Huyen did an amazing job writing the Machine Learning Interviews Book. To prepare for the interview, I recommend reading this book and solving tasks in which you are not proficient. For example, I forgot probability theory. Working through tasks from this book, along with a few additional ones from the internet, allowed me to refresh my knowledge.

Also, going through the list of popular questions is helpful too, for example, Data-Science-Interview-Questions-Answers.

Machine Learning System Design

This topic is growing rapidly. But I still have some resources that I love.

First of all, these two books:

These books are great; they are not about interviews but about the general approach to building ML Systems.

I also loved this article by Stefan Hosein. It provides you with a practical approach to handling this type of interview. Last, but not least, I do recommend ML System Design Interview videos from karpov.courses. These are originally in Russian, but in my opinion, they are the best videos on the topic. So I strongly suggest you watch them with English subtitles. And by the way, they are hosted by Valerii Babushkin, one of the authors of the Machine Learning System Design book.

Generally, reading articles and being curious about the field pays off in this interview.

Mock Interviews

These are crucial. You can test your interviewing abilities in a controlled environment. There are services for which you can pay, but I recommend using the help of your friends or reaching out to people on LinkedIn and asking them for help. You will be surprised how many people are willing to help you for free. They gain experience from it too!

Resume

There is an infinite amount of information on this topic. My general recommendations are:

  • Keep it to just one page.
  • Do not add your photo. I know you are pretty, but a picture takes up space.
  • Use a simple and minimalistic design.
  • Sort blocks by importance, from top to bottom.
  • Add not only technical but also business information. For example, “By building X, I improved retention by Y.”

Interviews

The interviewing process sucks. It is not the best proxy for your job performance, but it is the main one we use. I think there is a lot of information on how to prepare for interviews mentally.

My main advice for anybody is to gain experience. Do mock interviews, and interview for companies you are not interested in first. Don’t worry about rejections. Interviewing is a skill in itself. To become better, you need to practice.

With the companies you want to work for, you can significantly boost your chances using simple things.

First of all, try to have at least a couple of real interviews with other companies before you interview with the company of your dreams.

Second, research the company and the role. Try to think of tasks you can potentially solve in this company. Prepare answers to the basic behavioral questions and prepare your questions for the interviewer. Read the interview section on the company’s Glassdoor page.

Third, apply to the companies using a referral system. For example, via an acquaintance of yours. Or again, find a person who works there on LinkedIn and ask them to refer you. Most people will refer you without any problems. They want to get a bonus if you wind up in their company.

Fourth, don’t freak out about rejections. You can reapply after half a year in most cases. And then you will be much more experienced and prepared.

Duration

Searching for a job takes time. I think you should expect the process to take 3 to 6 months, from the application to the first day in the company. Typically, with smaller companies or startups, it takes less time, while with big tech companies, the process is longer.

Questions

Do not be afraid to ask questions. If anything, it will make things better, not worse.

Before each interview, ask your HR questions about the interview. What will this interview be about? How should I prepare? Can I look at the LinkedIn profile of the interviewer? These questions will allow you to prepare much better. You will know what to expect, which will take some of the anxiety off you.

Ask questions during the interview if you think that you didn’t understand your task fully. Sometimes interviewers ask ambiguous questions and expect you to ask clarifying questions in response. Or they simply weren’t able to formulate the question correctly.

And finally, at the end of each interview, you will be able to ask your questions. Use this time wisely. Ask questions that are worrying you, about the role and the company. Before the interview, prepare a list of general questions you will ask every company and a separate list for the company you are interviewing with. This way, you will learn something useful about the company. And, which is also important, the interviewer will notice that you are prepared and that you are interested in the company. If you can’t come up with your list, use the reverse-interview GitHub repository as your muse.

Overall, questions are extremely important. And sometimes asking the right questions will make a lot of impact.

My Latest Experience

Below, you can see the table I used to track my interviewing progress with all the companies in 2024. Looks scary, doesn’t it? Most of those are rejections or ignoring of my applications. If you like the table, you can duplicate it from here.

Interview Outcomes Table

Let’s look at the pie plot below. Am I a Data Scientist or not?

Interview Success Rate

Again, it looks scary. My hit rate is 3.6%, just 3 out of 83 companies. It would be fair to say that with companies under the Stopped label, I was pretty deep in the process. However, by this stage, I had already accepted an offer. So, I didn’t want to waste people’s time on myself.

In the table below, you can find the absolute numbers if you are interested.

Offer 3
Stopped 6
No answer 32
Rejection 42
Total 83

Luckily, I got an offer from the company I wanted to work for — Revolut. I visited their meet-ups and used their application daily. A colleague from one of my previous jobs works there, so he referred me for the position I wanted. And I was able to pass all the interviews and got the role! But without all the preparation, I wouldn’t have been able to do this.

Conclusion

For the most part, finding a job is a numbers game. But, using an analytical approach, you will maximize your chances of getting offers from the companies you want to work for.

Take your time. Learn from your failures. Be prepared and practice a lot. Hard work will pay off sooner or later.

And a huge thanks to Maria Zakharevich and Anton Masiukevich for their invaluable assistance with this article.