Hello and welcome to Society’s Backend! I’m so glad you’re here.
I’m Logan 👋 I’m a software engineer at Google working in machine learning and I teach machine learning to other software engineers through my writing and other resources.
This article will be your guide to navigating my resources. We’re going to go over what it means to be a machine learning engineer, why you should become one, and the resources you need to do so. I’ve also included some frequently asked questions at the end.
First, a little bit about me
I've been a machine learning engineer for about five years now. I’ve spent two years at Microsoft and three at Google. My primary focuses have been on machine learning infrastructure, improving machine learning experimentation, and understanding model proxification. Before that, I worked in machine learning research using convolutional neural networks (CNNs) to improve magnetic resonance imaging.
I went from knowing nothing at all about software engineering and machine learning to working as a machine learning engineer in just four years. You might think that’s a long time, but you have to remember that most of that time was spent learning programming and software engineering (and computer and electrical engineering, too). We’ll go over why this is significant in the next section.
When I was learning ML, there were far fewer resources to learn about it outside of academia than there are now. Now, the greatest machine learning educators post their resources online for free. All you need to do is be willing to learn and be pointed in the right direction.
And that’s why I write Society’s Backend! I write to provide clarity in understanding ML topics, current events in AI, the reality of building ML systems, the AI job market, and more.
What is a machine learning engineer?
Fundamentally, a machine learning engineer is a software engineer that builds machine learning systems. Machine learning systems are any software system that comprises a machine learning component and requires special considerations because of it.
The definition of a machine learning engineer is important to understand for two reasons:
Machine learning systems have special considerations that make them different to work with compared to traditional software systems. Understanding this is what differentiates a machine learning engineer from a software engineer. Some examples of these considerations include ML systems being non-deterministic, being able to properly version both code and data, and understanding the research science aspect of developing ML models.
ML engineering comprises two parts: software engineering and machine learning. Of these two, software engineering is much more difficult and time-intensive to learn. I’ve been helping software engineers understand ML for a few years now and I’ve realized the primary blocker for them to learn ML is being intimidated by ML math. In reality, ML math is rather intuitive and much less intimidating than learning to program—which they’ve already done.
Why should I become a machine learning engineer?
The most popular reasons for become a machine learning engineer are:
Machine learning is cool
It opens up better job opportunities
It has higher earning potential
It lets an engineer work on cooler projects
All of these are true, but the real reason software engineers should become ML engineers is much more fundamental.
Most people see machine learning as a subdiscipline of software engineering (i.e. “I’m a software engineer working in ML” like I said above). In reality, machine learning is another tool for software engineers to solve problems.
The real job of a software engineer isn’t to write code, it’s to solve problems with technology. Programming is the primary methods of doing this, but it’s just one tool in our toolbox.
As machine learning becomes more prominent (which is happening very quickly), machine learning will become THE tool software engineers use to solve complex problems. To do this, software engineers must understand machine learning.
In summary, software engineers need to become machine learning engineers because before long all software engineers will build with machine learning.
How do I become a machine learning engineer?
To get a job as a machine learning engineer, you need have both a software engineering and machine learning skillset and prove experience in both them (i.e. something to put on a resume).
I’ve created resources to help with just that!
1. The Machine Learning Roadmap
I’ve put together a roadmap that will walk you step-by-step through learning ML. It goes from prerequisites to ML fundamentals to advanced topics. The goal of the roadmap is to get you a good foundation of ML fundamentals from. After you complete it, you’ll have a good understanding of how ML works and feel comfortable exploring advanced machine learning topics on your own.
I’ve meticulously curated and refined the roadmap to be optimized for someone with a software engineering background. I’ve focused on making it streamlined and approachable and I only include the highest-quality resources for each topic. Go through the roadmap at your own pace and skip any subjects you already know. Check it out here and don’t forget to star the repo to support it.
If you’re already a software engineer, don’t worry about the note below.
An important note: The ML roadmap focuses on machine learning and math resources—NOT software engineering. While it does include programming basics and Python (because you need to know Python for ML), you’ll need other resources to really get into software engineering.
My recommendation for this is a college degree, but I realize that isn’t always feasible. There are plenty of high-quality resources online to get started with software engineering. I highly recommend NOT doing a bootcamp that costs money as the return on investment from them is very poor.
2. End-to-end machine learning
There are many resources online for how to train a model, but far fewer on how to actually set up a production ML system. There’s also a severe lack of ways to actually gain practical experience in ML after going through those resources. That’s a problem because that’s what companies look for when hiring ML engineers.
End-to-end machine learning aims to “train two models with one dataset”. It’s a guided walkthrough from data to training to serving for real-world ML systems used in industry today. The goal is to not only train a model but also go through the necessary steps to get it into production to simulate actually working as an ML engineer.
End-to-end machine learning is my current project and is just getting started. I plan to set up the following five systems:
Document classification
Compute vision (or VLM)
Recommendation system
Demand forecasting with time-series data
Fraud/anomaly detection
Simulating a production environment for ML systems is difficult and so is collecting real-world data. I want to make sure this is done right and is actually useful, so I’ll be taking my time and the list above is subject to change.
If you’d like to get updates on end-to-end machine learning as guides come out, star this repo.
3. Society’s Backend
That’s this newsletter! Society’s Backend is where I write about important machine learning engineering topics each week. These include:
ML engineering tutorials
The most in demand job skills for ML engineers
AI job market updates
Soft skills lessons needed to succeed
Weekly explanations of AI developments to cut through misinformation
And whatever else I think is important for you to understand. Subscribers get these in their inbox each week and can join the community chat!
You can also become a paid subscriber to get even more for just $3/mo! Don’t forget to check with your company to see if they’re willing to pay for it. Many companies have education budgets that can be used for this.
A huge thanks to the nearly 6000 subscribers already supporting me! I hope to help 10,000 engineers learn ML by the end of this year and I appreciate you helping me achieve my goal. 😊
FAQs
Do I need a PhD to be a machine learning engineer?
No, absolutely not. Previously, a PhD was a common requirement even for ML engineering, but that was largely because there were very few ways to get adequate ML experience outside of research. This is no longer the case and many software engineers are required to get ML into production.
How difficult is ML math?
The foundations of ML math are generally intuitive. This foundation is what you need to learn more complex concepts. The ML roadmap focuses on building this foundation and only includes the resources and topics needed to gain it.
As you dig deeper into ML, there will absolutely be more difficult topics to learn along the way. Building a proper foundation first will make those topics much easier.
How long will it take to complete the roadmap?
If you worked on it full-time, I’d expect it to take about 3 months. However, everyone learns differently. Topics that are difficult for one person will easy for another and vice-versa.
My recommendation is not to think of this as a timed exercise, but instead focus on taking it concept by concept. These are subjects that should not be rushed. If you do rush, you’ll likely come out the other side having forgotten most topics and have to revisit them anyway.
When will end-to-end machine learning be done?
I’m expecting it to take a while and I want to make sure I do it right. This will be my primary project for 2025 but could take longer depending on what I think is needed. Just as I mentioned before, these topics shouldn’t be rushed so I won’t rush creating resources for them either.
Share this post