Switch Career From Software Developer to Machine Learning Engineer

How To Switch Career From Software Developer to Machine Learning Engineer

There has never been a better time to be in tech. You can specialize in so many different areas, and the number of options might feel overwhelming. Should you stick to software development? Is machine learning worth exploring? The answer is highly subjective, but we’ll do our best to objectively explain how to switch between the two.

The article assumes you have a solid background in software engineering. After a couple of years in the field, you are considering switching to data science and machine learning. It’s not that you don’t like software engineering, but being in the same industry for years could make you lose the drive and motivation you initially had. Picking up a new field of study is likely the best way to fix it.

We’ll start by exploring the strengths you bring to the table as a software developer and then focus on areas that will probably need some revisiting.

From Software Developer to Machine Learning Engineer - The Good News

You already have a ton of experience with areas that machine learning engineers use daily: programming, databases, and APIs.

It would be ideal if you’ve spent the last 3 years working as a Python developer, as Python is the most widely used language among machine learning engineers. It’s not the end of the world if your background is in Java, C, or Go - just to name a few - there’s actually a hidden benefit here. Python is quite forgiving and you can get by with terrible code writing style and not thinking too much about the architecture. That’s not the case with the more strict, statically typed languages.

If you can understand Java and C, you can understand Python. It was designed to teach programming to kids after all.

Machine learning engineers work with databases all the time. You need to connect to a data source that contains data for modeling, version and maintain the model, and specify who can and can’t access it.

The good news continues with REST APIs. As a software developer, you likely know how to develop them and how to develop them well. You’ll need that knowledge in data science. Machine learning engineers deploy predictive models as REST APIs. That way, the prediction functionality is deployed and exposed as an URL that anyone with the right credentials and/or subscription plan can access.

Here are a couple of resources to get you started with Python:

As a software developer, you already have more than 50% of the prerequisites covered for machine learning, at least for the practitioner position. Let’s explore what you’ll need to learn from a data science and machine learning perspective.

Must-Know Machine Learning Knowledge for Software Developers

Machine learning can get intimidating real fast. All machine learning algorithms are based on concepts from mathematics and statistics, which means there’s a steep learning curve if you want to grasp the full picture. Python and its libraries simplify machine learning to a couple of function calls you can learn in a weekend, but you should still do your best to learn what’s behind the surface.

Listing all machine learning algorithms would be like listing all colors - there are a few fundamental ones, and each branches further. For example, a base for gradient boosting is a decision tree algorithm, and gradient boosting branches further to XGBoost, LightGBM, CatBoost, and so on.

Learn the fundamental ones first - linear regression, logistic regression, decision trees, Naive Bayes, support vector machines, and similar ones you’ll find in every textbook. These are fundamental pieces you need to understand before diving into specialized versions of each.

The other big area or subfield of machine learning is deep learning. Put simply, it moves away from traditional machining algorithms discussed above and replaces them with neural network architectures. As with traditional machine learning, there are also fundamental algorithms you must know - feed-forward neural network, convolutional neural network, recurrent neural network, generative adversarial network, and so on.

From there you can learn specialized network architectures. For example, pretty much nobody uses vanilla recurrent neural networks these days. Everyone opts for Long Short Term Memory networks or Gated Recurrent Units instead, as their design offers more than a handful of advantages.

We recommend these resources to get started with machine learning as a software developer:

From Software Developer to Machine Learning Engineer - What You Don’t Want to Hear

As briefly mentioned in the previous section, all machine learning algorithms are based on concepts from mathematics and statistics. This could be a concerning factor to you as a software developer, as you probably haven’t touched these since college.

That being said, you’ll need to revisit the core concepts behind linear algebra, multivariate calculus, and inferential statistics if you want to be successful in data science and machine learning.

If you’re aiming for junior machine learning engineer positions, it makes no sense to spend a year writing equations and learning all there is about linear algebra and calculus. You’re far better of learning and understanding the fundamentals only. Expect to spend a couple of months here. After all, years are separating junior and senior positions so you’ll have the time to dive really deep and address the gaps in your knowledge.

Also, not all machine learning engineer positions are created equal. Practitioners spend most of the time writing code, and in general, have a more hands-on job. Researchers focus on advancing the field through, well, research in math and machine learning. The required math skills for these job roles can’t be identical for that reason.

We recommend the following free online courses to learn mathematics as a software developer:


To summarize, the machine learning engineer position is usually much heavier on math than a regular software developer position. How much math you’ll need varies from company to company, and from seniority. For example, you’ll need to know much less math if you’re aiming for a junior machine learning engineer position at a startup than if you were to apply to an AI lead position at Google.

Learn the fundamentals of maths and stats first. The three resources from the previous section are excellent places to start. You’ll have a much easier time understanding the background of machine learning algorithms if you understand the core math behind them. 

You have a tremendous advantage as a software developer. You know how to think creatively and critically, and you’re a natural problem solver. Also, you already know how to write good-quality and production-ready code, which is something that a lot of newcomers struggle with.

If you can spare 8-10 hours per week to learn machine learning and everything discussed today, you should have no problem landing your first machine learning engineer job within a year.

Har du idéer på ett intressant eller roligt ämne att skriva om eller kanske till och med en redan färdig artikel? Klicka här för att läsa mer.

Demando Demando