Some datasets escape our understanding. They're vast or complex or both, and we can't analyze them without help. Specifically, help from self-improving machine learning algorithms.
These algorithms can glean “insights into how the world works that a person wouldn't be able to see, because they're [too] abstract or [too] fine-grained,” says Meghan Hickey, a Boston-based machine learning engineer at Pryon.
That can mean picking up on patterns humans can’t see — like learning to spot cancer symptoms invisible to the human eye — or performing human analysis at nonhuman speeds.
Take Boston-based Tamr. The company makes a data analytics platform called Unify that clients often use to integrate overlapping datasets. For example, if two merging banks share some clients, they want to make sure those clients aren't double-entered in their respective databases. It may be obvious to most humans when two client entries reference the same person — i.e., if "Jane Z. Doe" and "Jane Zamboni Doe" both have the same home address, that's the same woman — but computers can struggle with that type of imprecise matching, which tech insiders term "fuzzy matching."
That's where artificial intelligence comes in handy. By observing and imitating humans performing fuzzy matching, machine learning algorithms eventually learn to do so autonomously.
That isn’t new; machine learning has been around for more than a decade. But interest in the field is skyrocketing lately: search volume for the phrase "machine learning" has roughly doubled since 2016 and machine learning algorithms play an increasingly visible role in everyday tech.
Machine learning engineers play a key role in all this. While they occasionally build machine learning algorithms, they more often integrate those algorithms into existing software. That's done by connecting the algorithms to relevant data pipelines, compressing them so they don’t overload computer systems and enhancing them with intuitive interfaces.
Seem interesting? Read on. We spoke with three machine learning engineers about their careers and how to get started in the field.
What factors helped get your first machine learning engineer role?
Machine learning engineer at Pryon
A couple years back, I took some programming classes, and I got really excited about all the linguistic data being produced on the internet. So much of our communication these days happens online. I studied linguistics as an undergrad, and I decided to get a master's degree in computational linguistics. The network of people I met getting my degree was super helpful.
When I graduated, I could've become a machine learning research engineer, focused more on the linguistic side of natural language processing. I took some research roles. But I discovered that I was less excited by the prospect of taking a week and thinking deeply about a problem and coming up with an innovative solution to it, than I was about solving more immediate problems and collaborating with a team.
In my current role, I was brought on when it was a super early stage start-up. We didn't really have specific jobs. Our CTO saw what I was gravitating towards and thought the engineering might be a fit for me. I moved into that role, and I really enjoy it.
Data ops engineering lead at Tamr
This is my first machine learning job. I was a technical consultant at my previous job, doing standard data processing. That gave me an appreciation for the fundamental problem of data scale, and I think that was one of the main factors in getting this job — I probably blabbed on about that in any interview I did.
Before that consultant role, I was in grad school as a physicist. I'm not doing physics now, but I learned indirect lessons in grad school: how to focus on a problem, how to be tenacious. I think that helped as well.
Principal machine learning engineer at Attivio
In many roles earlier in my career I started as a software engineer and then as machine learning problems came up, I transitioned towards machine learning engineer. But that wasn't officially my title until maybe five years ago, when I built a much better sales forecasting system for a company. They could directly measure its impact, and they wanted to expand the project. They changed my title and built a team around the new system.
I had a background in machine learning long before my professional roles, though. I've been interested in it since I was a kid, and I built a program to play chess and a program to play Go. I got a lot of my experience running my own projects.
For people looking to start a career in machine learning, what are key first steps?
Hickey: For people like me, who don't have an engineering background, definitely learning Python, learning fundamentals of computer engineering like data structures, algorithms — all that stuff is super important. If they're trying to transition from already being a software engineer to being more of a machine learning engineer, definitely learning Python is huge — getting familiar with some of the toolkits, like PyTorch.
Bilbro: Whenever I interview somebody for a machine learning engineer role, I have three things I look for. It's not really, Do they know a specific language? Any language is fine. But can they handle real data? Real data is messy. They can't just expect that every problem is a college textbook problem.
Number two: Can they build reasonable programmatic solutions? I need to know that if I give them a test problem, they can build something that makes sense. It’s great if they can identify inefficiencies and tell me about fancy algorithms, but I really need someone who can think programmatically.
The last thing is communication. For the job we do at Tamr, we work together. I would actually prefer someone who can talk through a solution with me than someone who just puts their head down and solves the problem. One way I test this is that when I give a problem, I'll actually leave out important details so that if they don't ask me questions, they're going to be in trouble.
"In my own path, it's been really helpful to have a strong foundation in software engineering... If you don’t have that opportunity in your job, you can think about maybe building your own product. It could just be a toy product."
Hendley: I don't think anyone should feel limited to a traditional path. But certainly if you're still studying, take opportunities to specialize in machine learning. Universities are starting to offer degrees in data science, which I definitely hadn't seen when I was studying.
In my own path, it's been really helpful to have a strong foundation in software engineering. Because when you work in a company as a machine learning engineer, often you'll really have to understand the software product and kind of integrate your work into an existing software system. If you don’t have that opportunity in your job, you can think about maybe building your own product. It could just be a toy product.
Do you think a college degree is important to getting a machine learning engineer role? Graduate degrees?
Hickey: I think it really depends on what you want to do. A lot of the machine learning scientist positions that I've seen require either a masters or a PhD. They prefer a PhD. I think in terms of being a machine learning engineer, that the bar for that in terms of formal education is a lot lower. If you get hired on as an engineer, you can transition into being specifically a machine learning engineer if you study and try to get put on projects like that.
Bilbro: I would say college yes, grad school no. For me grad school was important, but mainly because coming out of college, I was not mature enough. I needed grad school just to get to a point where I was focused on what I wanted to do and able to admit the things I was not good at. But there are plenty of people who can come right out of college and have done some kind of internship and are way more mature than I was and can probably jump right in — provided they have enough real world experience.
Hendley: I think college definitely helps. It's not required. We’re seeing actually a huge demand for machine learning engineers and data scientists now, and there just aren’t enough people with degrees in those areas. So companies are starting to learn that there are many capable people with other types of degrees, no degrees at all, practical experience.
What are your core responsibilities in your current role?
Hickey: From my point of view, the machine learning researchers build these models and they do all these tests. Once the results are impressive and our business team thinks the models could actually help people—that’s where I come in. I pick up the model and shepherd it into production.
That involves a lot of thinking about how we're representing different features and different data in our pipelines, to make sure that we don't run out of memory. It involves understanding how the models work and making sure that I don't accidentally mess them up when I'm trying to shepherd them from this research area into this production environment. When you're a researcher, you run these huge long tests—you run 16,000 samples through your model at the same time. If you're just one person asking one question, just the code around it, the engineering around it, it's going to need to look different. I do a lot of work on the engineering side for how to make it usable on a day-to-day basis.
In addition to shepherding the models, it's also making sure that the engineering and machine learning teams are communicating with each other effectively.
"The goal is always to help customers derive value from their data. I help them get the most out of the algorithms."
Bilbro: I'm responsible for designing and architecting solutions that utilize the Tamr Unify platform. On the platform everything, at its core, is a machine learning algorithm.
The goal is always to help customers derive value from their data. I help them get the most out of the algorithms. The Tamr Unify platform is kind of the core backend horsepower that's going to do all the hard work, an amount of work that humans can't do in five or ten years. But in order to get it to be usable, there's a certain amount of systems integration and custom feature engineering that I do. I hook up all the data pipelines and all the connections, that kind of data engineering, so that we're able to do machine learning engineering.
Hendley: Currently I'm focusing on giving the end users of Attivio’s platform the best possible search experience. So that involves getting the best results for their searches and also understanding what type of searches they're performing — maybe showing them a different user interface or taking different action depending on whether they have a research-oriented question or if they’re looking up someone’s contact information. If you can really narrow in on what the person's asking for, you can show them the answer directly in a box, as opposed to having them click on a webpage.
What’s the most challenging aspect of machine learning engineering?
Hickey: Machine learning as a field is relatively new, so a lot of the toolkits that you're using aren't the best documented. There's a lot of uncertainty around how to get the best performance. That can be really challenging.
The other challenging piece is communicating with people about machine learning. If you ask a model a question, you get a specific answer. Then you ask a model a question that to you seems really, really similar — but you might get a different answer. The patterns that the models see are not the same patterns that you as a human being see.
Bilbro: There are logistical challenges that are quite frustrating at times. We work with companies all around the world and I have to resolve bottlenecks, I have to identify productivity issues, but it could be that my main contact is 12 hours different from me. Commonly customers have extremely important point people for their data, and there's no guarantee that those people speak your language, let alone are in your time zone.
Hendley: It's sometimes challenging to meet user expectations. If you show a user some bad results for their search one time, but you show them good results 10 or a hundred other times, they might not forgive you for that one bad set of results.
At Attivio, we specialize in allowing companies to search across all their different data, so we’re dealing with many different data formats: websites, Word documents, emails, a people directory. Depending on what a user searches, they might only care about one of those data formats. So we have to understand what users are looking for, and without the larger search engines’ millions and millions of logs of user behavior.
What’s the most rewarding aspect of the machine learning engineer role?
Hickey: Seeing a model that used to run super slow run super fast, and seeing other people be impressed by that. Seeing something that used to take six seconds to respond get a response back in less than a second.
Bilbro: Well, I would say it's nice to be on the cutting edge of technology in this field. Machine learning is clearly a hotspot. It's everywhere, but the technology is developing so fast it's hard to stay on top of it. When you’re in this job, you’re kind of getting paid to continue learning, and that is really cool.
Hendley: What I've definitely found most rewarding is being able to define problems that can have a huge value to a business. And solving problems that no one has really solved completely before, or applied to that specific industry.
What resources do you recommend to people who want to get into machine learning?
Hickey: So much of what I've done has specifically been around natural language processing. For people interested in that, there's a Dan Jurafsky and James H. Martin textbook, Speech and Language Processing.
Also, there's this ubiquitous Coursera course by Andrew Ng, an introduction to machine learning, that's pretty good if you're an engineer and you've never been exposed to it before. There's a machine learning podcast called Talking Machines — that's a good way to stay up to date on the field. There’s also an active machine learning community on Twitter. My favorite person to follow is Hal Daumé III.
Bilbro: An internship or a co-op is invaluable. An eight- or ten-week summer internship at a company will get you farther than anything. Find a paid one, if you can. I like reading company blogs, too. Tamr has one. It helps you stay up to date with the lingo.
Hendley: There's an amazing amount of online resources that are available very cheaply or for free. One of the ones I really liked was the Fast AI course on machine learning.
I also recommend getting into competitive data science on platforms like Kaggle. That's where you will participate in competitions to, for example, make the best predictions based on some data set that they give all the competitors. There might be competition to make the best system for predicting the sale price of a house or any number of types of competitions like that. I think that's a great way to learn what it takes to build a state of the art machine learning system.