Both data scientists and machine learning engineers get to work on some pretty exciting business problems, but which one is the “cooler” job? 

To answer this question—and many others—we invited Nikunj Bajaj, a machine learning engineer at Facebook, and Sreeta Gorripaty, a data scientist at Uber, to sound off. 

And because they’re married, they did not hold back. 

It was all in good fun, of course. And between the laughs, the pair offered incredibly insightful takes on the fundamental differences between machine learning engineering and data science, what the future looks like for each field, and whether you need a degree to become a data scientist.

The full video is below, but here are some highlights from the conversation.

Sreeta: So Nikunj, what do you think about the future of AI? Big question.

Nikunj: Oh man, OK. So, I am a machine learning engineer, and I’m very positive about the future of AI. Because I think that we haven’t even scratched the surface so far in how we can leverage AI to improve our lives. It is already affecting our lives: the way we commute, the way we shop, the way we eat food. And I believe that it’s going to go a lot [farther]. And I have a strong feeling that in the future, AI will become such a nice counterpart to human beings that these two smart minds can just inter-operate with each other and make the world a better place to live in.

Sreeta: Yeah, and I totally agree with you. And I also, actually, I’m quite excited because I feel like we’re in this situation where it’s just scratching the surface, and it’s creating these opportunities. And I feel like we’re all starting up in this journey of AI. And we can be the leaders who can actually make the important decisions about privacy, safety, making sure that AI for good—that it’s happening in that direction. So I’m actually excited about not just the future, but the roles that we can play in moving it forward.

Nikunj: All right, the big one. How did you become a data scientist?

Sreeta: Oh, yeah. I like this question. So I finished my undergraduate in IIT Bombay in civil engineering. And I was focusing on transportation engineering. I really loved the field because it was extremely diverse. You could be doing anything. You could be focusing on the behavior of people in transportation choices, how aircrafts fly, how do we manage airports, how do we model traffic on the road. So it was a super diverse field where you could really focus on any one part.

So I was like, I need to spend more time studying and understanding this area. So I did a master’s in Berkeley. I kind of got a funded master’s, so it was pretty easy for me to come here and study. And so it was a no-brainer, I had to do it. And then during my master’s, I actually, by pure accident, I got introduced to this course, which was Introduction to Machine Learning. And I was like, yeah, the name sounds fancy, let’s just go see what this is like.

And I went, and I was just so absorbed. I was like, oh my God, you could actually measure this? You could predict so well. You can actually understand how and where the rain will fall so accurately. Something I’m doing in my class is predicting where the rain is falling in the Sierra Nevadas. So we had this super, super cool course projects, and then I was absolutely sure that I have to study more, apply my education to some of the applied problems in transportation.

And so I did my Ph.D., where I was focusing on air traffic management, and using machine learning to improve that, and to provide better tools and stuff. Then I did an internship in Apple Maps to understand what do I want to do, industry or academia? And then I just loved the fact that in industry the ideation-to-impact cycle is really short. You think of something, you prototype it, and then you experiment it, and then it’s live in a couple of weeks sometimes, or even faster. So I just really loved that and I wanted to pursue data science. I graduated, looked for jobs, got into Uber, and here I am.

Nikunj: Perfect match. Transportation and data science. 

Sreeta: So what’s the difference between a data scientist and an ML engineer?

Nikunj: I think the terms data scientist and ML engineer are used pretty loosely across the industry. And different companies have different rules, different requirements for a data scientist and an ML engineer. Sometimes people switch hats as well. So it’s difficult to give an answer that’s conducive to all kinds of scenarios. 

So, when I think about an ML engineer, there are essentially two main parts to my role. One, that I’m doing machine learning and I’m trying to build models to solve a particular product use case. And second, I’m doing engineering, as the name goes, right? So, not only building the model, but one of my main objectives is to take that model and deliver it to the end-users.

How can I build an engineering system which is robust enough, solid enough that it can deliver that model to the users and then take care of aspects like: what’s going to be the run-time complexity of this thing? Which part of this model would run offline versus which part of this model would run online. And think about all those elements of solving the problem. 

And in fact, I would like to hear what is the data scientist job from you instead of trying to answer myself.

Sreeta: Yeah, that’s actually a good point. It is very fudgy, I think, across industries. And there’s a lot of locality. I think also not just across different industries, but also the size of the company matters. If you’re in a very big, established company like Facebook, like Uber, you have more specified rules, so it’s clear what the differences are. But if you’re working in a startup, or a slightly smaller company, I feel like the roles really start merging and blending a lot more because you need to be a little bit more full-stack.

So in terms of more big company situations, where it’s more clear what the differences are, as a data scientist, my focus is: how do I solve problems that I’m seeing for my users, at the end of the day. 

So an example is, I know I kind of alluded to the traffic before, so just continuing on that theme. If I need to find what’s the time taken for an Uber to go from point A to point B. What’s the travel time to do that? That’s a real-world problem. So as a data scientist, I come in there and I’m like, hey, how do I formulate this problem into a mathematical question? So that’s where I start to think about, what’s the mathematical problem? 

So it’s like, there’s an origin, there’s a destination, and I need to find the time to go from point A to point B. Then I start thinking about, what’s the data needed for that? So: map data, there’s traffic information, there’s some amount of information on the surroundings—is it cloudy, is there congestion, is it rush hour? So, I need to first collect data. So there’s a lot of work on data wrangling, data cleaning, SQL, and all that stuff.

And then once that’s done, the next question is: now that I have the inputs, I need to solve the problem. So that’s where, what’s the right model for this question? What are the assumptions that are made for this model? Are they valid for this particular scenario? And do they make sense? So then I start to think about model training, model evaluation.

And then once I have something that works, the next question is: hey, how do I know this is better than what I’m doing right now? It’s one thing to build cool models for the coolness, but it has to serve the purpose that of the problem, which is how do I predict the travel time to go from point A to point B? And it’s better than the options I have right now.

So that’s where evaluation and metrics become really important. So I need to make sure that I understand: what are good metrics for this problem? What are the numbers that impact my users the most? What are the ETAs that are most important for the drivers and riders and the consumers of the app? And then once I have these metrics in place and I can see, well, this is a good algorithm, the next step is: how do I launch this? How do I close the loop and measure the impact on my users when it’s live?

So, the whole cycle of going from a very abstract problem to actually quantifying the impact of it end to end, I think that’s the data scientist. And the difference from what I’m hearing from you, which you put well, is that I am thinking more of the problem-solving and how to solve it, what to solve, and how to measure. And you’re thinking of how to implement it, and how do I make sure—

Nikunj: Right. How do I deliver it?

Sreeta: Yeah, how I deliver it. So that’s kind of the theme.

Related: Machine Learning Engineer vs. Data Scientist

Nikunj: Do you need a CS degree to do your job?

Sreeta: Well, short answer is no, because I’m employed in data science and I don’t have a CS degree. So I think I’m living proof of that answer. But I think on a more serious note, a CS degree is useful at the resume level. I think at the resume level is when you have to kind of concisely put the information together that: hey, I have good skills that are relevant for data science, for machine engineering, and kind of the general idea of this work. And so there, a degree comes in handy because it’s standardized, everyone takes certain courses to finish a degree. So the person who’s reading your resume says: I know you’ve finished all these requirements. 

But that’s not the only way to put that information there. If you’ve done bootcamps, if you’ve taken any online courses, if you’ve done research projects, if you’ve done Kaggle competitions, those could be other ways to show your enterprise in data science and how you’re kind of a self-learner. 

So once you go beyond the resume screen stage, I think what matters the most is what you know, not the degree you have.

Because I’ve seen both cases where people have these amazing degrees with beautiful resumes, but they come onsite or they come on a phone call and I’m just disappointed. There’s really no understanding of how to solve the problem. And I’ve seen the other cases where people have like a pretty thin or scrappy resume without a lot of standard degrees, but they just know how to solve the problem.

That’s what matters to get the job, versus getting screened for the job.

Related: How to Learn Data Science Without a Degree

Sreeta: So the question is, can a data scientist become an ML engineer and vice versa?

Nikunj: I think so. I think people make transitions from being a data scientist to being an ML engineer and vice versa pretty often, honestly. And the reason I believe that a transition is not a big jump is because in your day-to-day job, a data scientist and an ML engineer have to work very hand in hand to deliver a solution. 

Let’s say a data scientist is building a model to solve a problem. One of the examples you mentioned is the ETA problem. Now, that ETA problem can potentially be solved using 20 different models. However, looking at the engineering, say within Uber, potentially not all of the models are feasible, either based on the limitation of some kind of data or based on the engineering system that is powering the app, right?

So the data scientist has to understand some of the engineering aspect to actually make the right model choice. And for that, they have to have the ML engineering know-how in their toolkit, right? Similarly, an ML engineer cannot really design a system until they understand what goes inside the model. Because some models can be training-time heavy, some models could be prediction-time heavy. So they need to make decisions on what goes offline, what goes online. How do I make my database choices? How do I even implement the right algorithm, right?

So for all of that, an ML engineer needs to be pretty well versed with the data science models. So, clearly these two people understand each other’s jobs, and that would definitely help when they’re making the transition. I guess when they’re really making the transition, they need to go knee-deep into each other’s roles.

So for example, if you’re a data scientist, and you understand engineering, you need to be able to go knee-deep so now you can start actually taking calls, so you can make engineering decisions. You need to do some study or some practice for that, and vice versa. As an ML engineer, I understand some of the models. But can I actually make decisions myself? Maybe I need some coaching for that. You need to understand a little bit deeper into the other role, but you can make the transition.

Sreeta: Yeah, that’s a totally fair point. I actually have a couple friends who’ve made this transition recently. They came from a startup as a data scientist, and as we said before, the roles can be quite different in startups versus big industries. They came in and they realized that what makes them happy is more the machine learning engineering part of the role than the data science part of the role. And they came in and were doing the science activities that I was talking about before, and they kind of built more and more technical strength, more and more coding skills, and they made the transition.

Nikunj: And I’m sure it helped that, because they were coming from a startup, they probably were doing a bunch of different things.

Sreeta: OK, what skills do you need to become a data scientist? And the same question for an ML engineer.

Nikunj: For machine learning engineer, I think it’s pretty obvious. The name says it all. You need two different skills. One is you need to be good at machine learning. Second is you need to be good at engineering. 

So when I say you need to be good at machine learning, you need to understand the models—and not just how to use the models, because a lot of times people tend to use these popular libraries and almost think that they know machine learning. But I really think that to be a good ML engineer you need to zoom into it and understand what’s happening inside the model. What is the maths behind the model? In certain scenarios, what model could be properly used? So you need to have that understanding, and that’s a very important skill to build. Yes, understanding the theory, understanding the mathematics is important. 

Secondly, in terms of engineering, you need to be a phenomenal coder, hands down. That’s probably one of the most important skills. But beyond that, you also need to understand the general engineering fundamentals so that you can make proper design choices when you are developing a system. And that comes with both reading and actual experience. You read and learn from what other people have done, but you really become an expert at it by designing more and more systems like that. So that’s kind of a more acquired kind of skill.

Sreeta: I think for data science it’s three-pronged. The first part is, I cannot emphasize this enough, is problem-solving skills. You need to be able to go from really abstract problems into mathematical formulations effectively. And that includes having a good amount of business acumen. So you need to be able to go from: hey, my users are churning, to how can I go from that business problem into a more mathematical problem? So that problem formulation, that communication, is really important there.

The second phase is the technical part. You need to be good, obviously, at data science. You need to be really good on two aspects in data science: the first being just theoretical data science. I think someone who’s a DS should know what models are relevant at what point, what assumptions are made for these models. Are they valid for the problem that you’re looking at? Is the data validating assumptions for these models? And will this model provide the output of choice? Probability scores versus continuous variables versus classification. So you need to have this good know-how of what model applies where and what the limitations are and assumptions are. And the second part is coding. I think this is very often overlooked for data scientists. Coding is really important. You need to be good at prototyping. Whatever your ideas are, to really be an effective data scientist you need to go from ideation to execution really effectively. So being good at program skills, like working in Python, working in R—super important. 

And I think the third aspect is: once you have something really fascinating and impactful ready, you need to communicate. You need to work with stakeholders to make sure that it can be productionized, it can be put out there for impact. So you need to work with your engineering managers, with your product managers, you need to communicate with leadership. There’s a lot of storytelling for data science. It’s like: why is this problem important? How do I solve it? What is the impact of doing it? 

So I think it’s these three aspects together really form an effective data scientist. 

Nikunj: Who has a cooler job?

Sreeta: Such an obvious answer. But I should start. I think, obviously, in a data-driven manner, I can conclude that a data science job is cooler. Because at the end of the day, no matter what happens, the data scientist has to sign off on the project. The data scientist has to say: this is making sense, it’s a go, or this is not making sense, it’s a no-go. So whatever happens within, data science wins.

Nikunj: Well, I disagree. And I disagree with all my heart. Because a machine learning engineer not only gets to solve the real cool problems and build awesome models and everything. The most important part is they actually get to build code that is shipped to users. How cool is that? You actually make an impact to users, a direct coding impact. And that part is super cool to me. I make changes and that’s affecting a user’s life right away.

Sreeta: I guess we can agree to disagree on this, and move on and have peaceful lives as husband and wife.

Nikunj: Oh, yeah. I don’t want to say too much.

Ready to start your data science career? Or perhaps you’re more interested in machine learning engineering? We have mentor-guided, career-focused bootcamps for both: check out the Data Science Career Track and the Machine Learning Engineering Career Track now.