So You Want to Become a Machine Learning Engineer/Data Scientist?

I'm a fresh graduate and I want to become a data scientist or machine learning engineer. Can you please give me some guidance?

I've been working as a software engineer for the last two years, but now I want to switch to data science. Can you help or share some guidance?

I've been applying to many data science jobs but not getting any responses. Can you please give me some suggestions?

What’s the interview process at Optimizely for data scientist roles?

I get these kinds of questions in my inbox all the time, and replying to everyone individually isn’t simply possible for me. So I’ve put together a general response in this blog post, so that next time anyone asks me anything related to this, I can just send them here.

Disclaimer: this is just my opinion, and I could be wrong. So take everything I say below with a grain of salt.

What Actually Helps You Stand Out for a ML/Data Science Job

First off, let’s talk about what actually helps you stand out for a job opening and what doesn’t.

If it’s an entry-level position or you’re a fresh grad, top companies usually don’t care much about tool-specific skills. They’re looking for strong fundamentals, things like data structures, algorithms, databases, and OOP matter way more than being good at a specific library or framework like React or Django. For ML/DS roles, you should have a basic understanding of ML workflows like how to prepare dataset for ML models, train a model, evaluate it, and deploy it (at least in a basic way). Understand the core concepts of machine learning.

Let me give you an example. Let’s say the interviewer asks, “How do you know if a model is overfitting?” If you can’t answer that, then there’s really no point in discussing topics like how backpropagation works in neural networks.

That said, the recruitment process at small to mid-sized companies can vary a lot depending on the team. Even within the same company, different teams prioritize different things. Some focus more on tool-specific knowledge, while others care more about raw problem-solving skills and how you tackle algorithmic challenges. Big companies like Google or Meta usually have a more structured interview process, and you can easily find their frameworks with a quick search online.

Resume Tips (Especially for Fresh Grads)

Unique personal projects matter. A lot.

Don’t just mention your projects, show them off. Upload your code to GitHub. Write blogs about your work. Participate on Kaggle competitions. When recruiters can see what you did, they’re more likely to believe it.

Recruiters don’t know you personally or aren’t aware of your personality. The only thing they have to go off of is what you’ve written on your resume, so having a strong one is super important.

It also really matters which projects you include. Pick ones that stand out a bit and align with the job description. For example, if you’re applying for a machine learning internship, a React app won’t add much value. But if the job description mentions computer vision, show off something like image classification or object detection.

There’s a great resource on Reddit about how to craft a great resume: https://www.reddit.com/r/EngineeringResumes/wiki/index/

For senior roles, recruiters are usually looking for depth in specific skills. For example, if a team’s stack includes GCP, PyTorch, and NLP or LLMs, and they follow strong software engineering practices even in data roles, then having experience in that exact setup is a huge plus.

Be Honest About Your Resume

Be careful about what you put on your resume, especially when describing your past work or projects. Interviewers often dig into those details, so whatever you write can easily become a talking point. For example, if you mention that you used XGBoost in a project, be ready to explain: why you chose it, how you tuned it what trade-offs you considered. So if you’re faking anything, there’s a good chance you’ll get caught. Bottom line: make sure you’re genuinely familiar with everything you’ve listed and are ready to talk about it in detail during the interview.

The Importance of Being a Good Team Player

Everyone wants someone on their team who’s not just talented but also friendly and cooperative. You’re going to work in a team, not alone. So it’s really important to show that you’re a good team player during the interview. There’s no direct way to show that you’re a good team player since you’re not actually giving the interview with a team. But the way you talk can give the interviewer a sense of how cooperative and friendly you are.

I personally know a lot of great programmers who aren’t doing well in their careers just because they’re not friendly or cooperative.

Let’s say you did really well in the technical interview and answered everything right, but still got rejected. Many times, the reason is how you spoke. Maybe your tone sounded rude or you came across as someone who doesn’t like working with others. The way you talk during interviews is just as important as your technical skills when it comes to getting the job.

What the Hiring Process Looks Like at Optimizely (Data Science Roles)

Now, about Optimizely’s hiring process. It really depends on the team and the role. But there are a few things that are pretty consistent across the board: strong communication skills and being a good cultural fit.

The technical interview process can vary a lot, though. I’m not 100% sure how it works for other teams, but I can walk you through what it looks like for our team.

On our data science team, we usually have four rounds of interviews (not counting the resume screening and salary negotiation calls).

Three of those are technical, and one focuses on culture fit. We don’t do live coding tests. Instead, we give out a technical take-home project. After you submit it, the whole team rates your work. If it meets our standards, we go through the code together in a follow-up session, reviewing it line by line and talking through your approach and decisions. We want to understand how you think, not just whether you can code. Our team values both your ML skills and your ability to write clean, modular, and scalable code using software engineering best practices.

Other teams may do things differently. Some might include live coding or even system design depending on the role level.

The Reality of Data Science and ML Job Market

Now let’s talk honestly about data science and machine learning roles. The competition is intense.

I don’t want to demotivate anyone, but I also don’t want to sugarcoat things. It’s important to be realistic about the current job market so you can prepare properly.

These days, almost everyone wants to get into ML or data science. Even folks with long careers in software engineering are making the switch. For example, there are a lot of people who’ve been working in the industry for 10 or 15 years as software engineers, and they’re now leaving that career to move into data science, even joining at entry-level positions. I personally know a few folks like that.

For fresh grads, getting data science jobs is more difficult, particularly in places like Bangladesh. If you’re in your final year or just graduated and you manage to land a data science or ML internship or job, that’s amazing. But if not, I’d suggest starting with a software engineering role, ideally backend work in Python, or a data analyst role if that's more accessible. Then keep working your way toward the ML job you want.

Even working as a Python backend dev for a year can help you transition later. The skills may not line up one-to-one, but there's plenty of overlap. For example, solid coding practices from software engineering directly apply to ML engineering too. At the end of the day, building ML pipelines is still software development, just with different tools and goals.

Posts in this Series

comments powered by Disqus