We recently sat down with Shubhankar Jain, a machine learning engineer at SurveyMonkey, and Chirag Mahapatra, a machine learning engineer at Airbnb, to discuss the best way to transition into an AI/ML role, what the hiring process typically is like, and industry trends for 2019.
The full video Q&As are below, but here are some of the highlights:
How does the role of machine learning engineer differ from a software engineer or data scientist?
Chirag: The traditional software engineering role is meant to generally serve some sort of an application, keeping that application alive. So in the case of Airbnb, the software engineering role would be more focused on ensuring that we are building new features in Airbnb which our customers can see and then ensuring that we have adequate back-end infrastructure which keeps the site alive.
A machine learning engineer focuses a lot on the machine learning infrastructure and the machine learning models and keeping them alive. Most machine learning engineers work on the three main components, which are the infrastructure at inference time, the infrastructure for training, and infrastructure for annotation and labeling. So you would be working on a lot of these services. In my year and a half at Airbnb, I haven’t pushed anything which a customer or consumer gets to see per se—you don’t have an opportunity to work on, like, fancy UI elements, but you get an opportunity to build interesting models and shape their user experience in a different way.
At least at Airbnb, the data scientist role is heavily focused on analytics and building data pipelines which help inform business decisions. Most of the data scientists focus on: what are the metrics which are most important for the organization today and then are we counting them in the right way?
Shubhankar: A data scientist today would primarily be responsible for translating this business problem of, 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. And translating that business problem into more of a technical model and being able to then output a model that can take in a certain set of attributes about a customer and then spit out some sort of result.
An ML engineer would probably then take that model that this data scientist developed and integrate it in with the rest of the company’s platform—and that could involve building, say, 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.
Software engineers tend to have two main areas that they focus on: generally, there’s a front-end engineering aspect and a back-end engineering aspect. The front-end engineering is your UI, your UX, what your end users really end up seeing. And then the back-end engineer is developing systems in which data is flowing, there’s a lot of logic and business logic that exists there. And an ML engineer ends up utilizing a lot of what the software engineer, or back-end engineer, would end up doing day to day and using their knowledge of data science and ML in order to integrate ML models into engineering systems.
How can a data scientist transition to a machine learning engineer role?
Chirag: There are two types of data scientists: one data scientist who’s focused on analytics and one data scientist who’s focused a lot on algorithms and machine learning. I think it’ll probably be easier for the latter person. In that case, it would be good to just learn a bit more of coding and building production systems. So, maybe having a project where you actually worked in a back-end system and make sure that it scales—that would be appropriate.
For the former, it will probably be a lot more about getting much better at the machine learning algorithms part and then probably learning more coding as well.
How can a software engineer transition to a machine learning engineer role?
Chirag: The important things to learn will be—one is, of course, the modeling part because you will be expected to do quite a bit of modeling. But apart from that, learning a lot about: how will your model be evaluated in practice? That is something useful to learn. Then, also getting familiar with all the machine learning tools out there in the industry. And then maybe doing a few projects on specific topics—like, maybe if you’re interested in NLP, then do two to three NLP projects.
What does the hiring process look like for a machine learning engineer?
Chirag: For a machine learning engineer, you will have one interview which talks a lot about the algorithms and what sort of machine learning tools you can be using and just evaluating whether you actually understand what machine learning is. There will be an interview about your experience, where you are asked about, like, have you actually built machine learning systems in the past and how you built them, what could have been done better—things like that. Apart from that… we have at least two core-values interviews for every candidate who comes to Airbnb because for us culture is the most important thing and we want to make sure we don’t mess it up. And depending on the person, you might be asked to one or two programming- or algorithmic-based interviews as well. I think what Airbnb likes to see is a lot of execution capability—that is, you’re actually able to write code quickly and then be able to implement it and make sure it’s working in the interview time.
We are looking for people who are curious and who are willing to learn. Some background in machine learning, like building machine learning systems. Good skills to actually ensure that you can make this system work in production and not just modeling skills. And a good understanding of different experimentation frameworks.
What are some tips for the interview process?
Shubhankar: I would recommend, at least on your resume, listing a lot of different projects that you might tend to do—especially ones that aren’t really commonly performed. A lot of people have tackled, say, the Netflix challenge as a project within their engineering courses or even as part of their MOOCs and a lot of people have tackled things like the Titanic project—these are very commonly known projects.
I would recommend students try out something in a field that they’re really interested in. For example, I’m really interested in sports, so I’ve done a lot of sports analytics projects, where I’m working on scraping data from the troves of data warehouses that are publicly available and trying to make some interesting projects out of that. And that’s what really makes you stand out on a resume.
Once you get that first interview, I think it’s of utmost importance that you know the ins and outs of models, for sure. Knowing the math behind them, why you would apply certain algorithms over some other set, how they work, and realizing that, again, ML isn’t really just the modeling part, there’s a greater aspect to it, and understanding how they all really fit together.
I think something that would blow me away is if they have a project or something that they can point to and show me end to end how this works, why they chose to implement this project in a certain way, the trade-offs that exist there, what the impact of this project was—not in terms of like, hey, I just got 93 percent accuracy on this machine learning model, but what was the value that came out of that? Did you help a team of people detect that there’s deforestation going on where they couldn’t do that in an automated fashion, or things like that, where they really closed the loop on why we’re doing ML right now—we’re trying to translate a business problem into something technical, solving it, and then closing the loop and seeing, OK, what was the impact of solving this technical problem?
What separates a great candidate from a good candidate?
Chirag: I think everyone really likes a candidate who knows one thing really well. Machine learning is a field which is growing really fast. There’s no way a person can be good at everything—it’s just impossible. So we really like candidates who are specialized and they know one thing really well
Shubhankar: Their thought process and their approach to ML. A lot of people have, you know, the technical stuff down, and that’s amazing, but having a vision of recognizing: where is ML within our organization today, and the industry today, and where can it go in the future, and how do I work to develop systems that allow us to take that step forward for what may come in the future?
For example, these days it’s becoming increasingly common or needed to have central feature repositories within your ML systems, and although, say, an organization may not have one today, how can we develop our ML systems such that we can incorporate them later? Really developing and thinking for the future because this is a rapidly changing field that, you know, new technologies and new ideas are always flowing through.
What are some upcoming trends in machine learning?
Chirag: I think one of the things which we are seeing is people are a lot more ready to share tools and open-source their work, so that’s why the industry is moving really fast. An example is: I think Uber recently had this blog post on the Michelangelo platform, which they use for their internal machine learning. Airbnb recently published a paper on their experience using deep learning for search, which was pretty well-received. So I think the main trend in this industry is sharing your knowledge and then helping everyone get better. I think the learning in this field is going to be extremely rapid compared to what we have seen in the last 10 to 15 years and that’s a really exciting trend.
Something which I think there is going to be a lot of work around is: how do you explain these models? A lot of people build these amazing models which hit their metrics and things like that, but when a model is actually asked to explain why they made this single decision, those models generally fail. I think there’s going to be a lot more work in the industry around explainability.
These Q&As have been lightly edited and condensed for clarity.
If you want to transition into a career as a machine learning engineer, check out Springboard’s AI / Machine Learning Career Track, the first of its kind to come with a job guarantee.