Machine learning engineering is currently one of the most in-demand professions across sectors ranging from tech to entertainment, finance, healthcare, and government. But what do ML engineers actually do? How do they differ from data scientists and software engineers? And what are the day-to-day roles and responsibilities of someone working with machine learning and artificial intelligence?
Springboard spoke with seasoned machine learning engineer Shubhi Jain, who has worked in data science and machine learning at companies such as Apple, NASA’s Jet Propulsion Laboratory, and SurveyMonkey, to learn about how he got into machine learning, what a day in the life of an ML engineer looks like, and the skills and tools he uses most often.
Can you introduce yourself and give us a little bit of your background?
I grew up in the Bay area and I went to undergrad at Caltech, down in Pasadena. Over there, I studied business economics and computer science, specializing in machine learning systems.
Specifically, talking about machine learning, what does a machine learning engineer actually do? And how does that differ from being a data scientist?
A data scientist today would primarily be responsible for translating this business problem, for example, we want to figure out what product we should sell next to our customers if they’ve already bought a product from us. [They would translate] that business problem into more of a technical model. A machine learning engineer would probably then take that model that this data scientist developed and integrate it with the rest of the company’s platform. And that could involve building an API around this model so that it can be served and consumed, and then being able to maintain the integrity and quality of this model so that it continues to serve really accurate predictions.
And how does it differ from being a software engineer?
Software engineers tend to have two main areas that they focus on. Generally, there’s a front-end engineering aspect and a backend engineering aspect. The front-end engineering is your UI, your UX, what your end users really end up seeing. And then, the backend engineering is developing systems in which data is flowing. There’s a lot of business logic that really exists there. A machine learning engineer ends up utilizing a lot of what the software engineer and backend engineer would end up doing day-to-day, using their knowledge of data science and ML in order to integrate ML models into engineering systems.
How did you get involved with machine learning?
There are actually two interesting small stories related to that. One thing is when I first got to Caltech, my freshman year roommate had been doing machine learning for several years before that, and I had never heard of it before. And when I asked him what machine learning was, he explained it in the way of, you can use data from the past to decipher patterns in the data and make predictions about the future. And that totally blew my mind that you could use data from the past to make predictions about the future in literally any space whatsoever. And today, the reason that really drives me in machine learning to pursue it, even more, I would say, is it’s amazing what you can do with data insights at scale, and machine learning really allows you to do that.
What’s a typical day for you as a machine learning engineer?
Day-to-day, I might do projects or tasks that are in two different buckets. One might be developing infrastructure or platforms to automate ML within our organization. That could be making sure that our models are retrained automatically whenever their performance tends to degrade. The second thing is, as an ML engineer, I’m also responsible for a couple of different models and services, especially when they’re placed into production. So that could be making sure that their quality isn’t degrading, that they’re still performing as expected, and being able to take the actions necessary if anything were to go wrong. As part of that, I guess a third thing actually might be working to put other models into production.
What teams do you normally work with?
[To the previous point], I’m working with the data science team, the data engineering team, product managers and also other software engineering teams in order to really make that happen. [I’ll also work with] the data scientists and data engineers during model development, and make sure that this model will still work in production in a practical and feasible manner. [I’ll work] with the PMs and other software engineering teams, who are really responsible for then consuming the model once it’s out there in production.
For those of us maybe who don’t know the world of machine learning, what would surprise us about your day-to-day or your job in general?
I think a lot of people have asked me, “Oh, so do you end up just typing code on a computer all day long?” And I guess this applies to most software engineers, too, but I think because we interface a lot with the business problem…we really have to understand the business problem. And a lot of that is collaboration, communication, working with different teams—it’s really a cross-collaborative effort. And after we’ve really understood this problem and we’re really translating it into more technical architecture, we still need to be on the same page about the technical problems.
What would you say is your biggest challenge in being a machine learning engineer?
Having access to clean, reproducible data. At the end of the day, whenever we’re developing these ML systems, you need clean data. And you could have the most well organized data sets or data pipelines, but we end up finding again and again that there’s still some [room for] improvement here, especially when we get into the realm of trying to automate a lot of our processes, where we don’t have access to these certain set of attributes within our data. Or we realize that we were able to get this data this one time, but because the data ownership has changed, it’s not no longer available in that way. And because this is a process that’s constantly in flux, it’s almost impossible to always have that available.
What’s a really cool problem that you’ve solved, and how did you use machine learning to solve it?
I used to work in the credit union space, and a really interesting thing about credit unions is that they are a few years behind banks in utilizing machine learning within their organizations. And what I was doing for them was to try to demonstrate that ML has value within their organization. Our goal really was to see, can we derive a really simple use case that can be implemented very quickly to show to our stakeholders that, hey, this is very valuable for your organization. What we ended up doing for that specific project was developing a churn prediction model and putting it into production, such that when people came and visited the credit union to maybe extract money or make a deposit, the bank tellers or the credit union tellers would know how likely this member was to churn or no longer be a member of this credit union, which is really valuable information. And the business got some immediate business value out of this project and was able to move forward to even have even more ML projects in their pipeline.
Piggybacking off of that project, what are some tools and technologies that you use day-to-day?
Honestly, as a machine learning engineer, you almost have to be an expert in knowing what tools are out there. In my day-to-day at SurveyMonkey, I am using mostly Python as my main development language, but a little bit of Scala here and there. But in terms of frameworks and technologies, it’s really across the board. So I end up using pretty much a lot of the full AWS stack of S3, EMR, Kinesis, Lambda, so on and so forth, but also containerizing tools like Docker, Kubernetes, Ansible. And then, on the ML-specific side, things like, Scikit-learn, TensorFlow, and PI Spark. There’s really a lot of different domains that exist within the tools and you have to know not just one tool that can get the job done, but almost three or four, because sometimes you might find yourself needing a specific speed versus the ease of development, versus having multiple people be able to collaborate. And when you’re making those decisions, you really need to know what’s out there.
Let’s say someone’s just getting started in machine learning. What different types of machine learning jobs are out there right now?
I’ve found that there are probably three groups of machine learning engineers. One is your ML engineer who works at a startup. They end up doing everything from integrating your ML model into any consumer service, to actually doing the model development, data cleaning, or building out a data pipeline. And then, at your more mid-level companies, their ML engineers are really responsible for working with software engineers and the data scientists in order to productionize or deploy a model, which in itself is a really huge task or project. But they may not be as responsible for the actual algorithmic model development. And then, there’s the third set of ML engineers that I think work at much larger companies—Google, Facebook, etc. And, really, I might even call them ML infrastructure engineers, where they’re building the infrastructure or platform to automate ML or to make ML much easier to do within the organization.
For aspiring machine learning engineers who don’t have a degree in computer science, what advice would you give on how to break into the industry?
Honestly, I think in today’s world, the need for a CS degree to enter into the field of machine learning, or just engineering in general, is really going down, that barrier is going down. And there are a plethora of resources out there, especially MOOCs (massive open online courses) or just blog posts. When approaching the idea of entering into a new field, I always like to bucket things and say, all right, there are two types of resources that I think exist out there. One is really your technical knowledge, your models, your algorithms, your engineering stuff. And then, a different type of resource is the blogs or the essays or the papers that really help think about your approach to the field or approach to solving a problem. I want to dedicate 50% of my time to this technical knowledge that I will look to gain, and I also want to maybe also apply about 50% of my time to this more high-level knowledge of my approach to solving problems or my approach to the field in general. Because I often find that there’s an imbalance that persists when we try to enter a field without, say, maybe a formal education. And it’s really helpful to have both when you’re joining the workforce, at the end of the day.
Is machine learning engineering the right career for you?
Knowing machine learning and deep learning concepts is important—but not enough to get you hired. According to hiring managers, most job seekers lack the engineering skills to perform the job. This is why more than 50% of Springboard’s Machine Learning Career Track curriculum is focused on production engineering skills. In this course, you’ll design a machine learning/deep learning system, build a prototype, and deploy a running application that can be accessed via API or web service. No other bootcamp does this.
Our machine learning training will teach you linear and logistical regression, anomaly detection, cleaning, and transforming data. We’ll also teach you the most in-demand ML models and algorithms you’ll need to know to succeed. For each model, you will learn how it works conceptually first, then the applied mathematics necessary to implement it, and finally learn to test and train them.
Find out if you’re eligible for Springboard’s Machine Learning Career Track.
This post was written by Tracey Lien.