How Machine Learning gives you an edge in System Design
Tags: machinelearning, systems, design, career
Published: 2020-11-06 17:46:23

*This article was written by Fahim ul Haq, CEO of Educative and former senior engineer at Microsoft.*

___

System design interviews are essential to your career advancement as a software engineer. The concepts of  system design interviews often acts as the gatekeepers that take you from L5 to L6 in big companies. This jump is hard, and most engineers, even highly qualified candidates, struggle to move beyond L5. 

*So, how do you move from a mid level engineer to a senior engineer in just a 45 minute interview window?*

It's hard to stand out when it comes to system design interview questions. But there are ways to rise above the noise. In the next few years, almost every system will have an ML component to it. 

Interviewers want to hire engineers who evolve with the systems, and machine learning is the most important evolution we face today. Read on as we explore how machine learning skills are the solution. 

**We will discuss:**
* [Challenges of system design interviews](#challenges)
* [How to be a next-gen engineer](#next-gen)
* [What Machine Learning skills do I need to know?](#know)
* [Wrapping up](#wrap-up)

<br>

<a name="challenges"></a>

## Challenges of system design interviews

System design interviews are important for career advancement. Even expert engineers must demonstrate that they can design complex systems within varying constraints. It’s difficult to show off all those skills in just a 45-minute interview. 

There is often **more than one optimal solution** to a system design problem. System design requires a **high-scale level of thinking**. Interviewers want to see how you think when given ownership of an open-ended problem. 

In my experience, the most common pitfall here is *depth of skill*. Even the most talented candidates cannot demonstrate a depth of design skills because their solutions **do not account for modern software demands**. 

> Interviewers want to advance someone who thinks towards scalability within the context of production. In other words, a **next-generation system design engineer**. 

The key to success, then, is moving beyond the theoretical or basic aspects of system design.  This is where **machine learning** comes in. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hkhf6x6arvdrab9ztxc6.png)


<a name="next-gen"></a>

## How to be a next-gen engineer 

The system design interview has changed drastically in light of major changes to technology, namely, **machine learning**. Almost every industry has adopted machine learning principles and systems into the basics of business. In fact, machine learning is one of the fastest growing fields and is projected to grow to over $30 billion in 2024. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qcgbbfvkjf6avhfs7p8u.png)

> *A subset of areas where ML has made significant advancements*

For those seeking careers as machine learning engineers, system design concepts are essential. But beyond that, I say that *any engineer* who wants to advance in their career needs to implement machine learning into system design, particularly during interviews. 

> Even interviews for engineering managers demand knowledge of ML to truly scale a team to meet industry demands and take products into uncharted territories.

In the next few years, almost **every system will have an ML component**. In fact, most systems already do! ML components are now super critical for most system design interviews, such as designing a Facebook newsfeed or building a  Netflix recommendation system. 

Designing these systems is almost impossible without an understanding of how the ML component will be developed. 
Interviewers want to hire engineers who evolve with the systems, and machine learning is the most important evolution we face today in the tech sector.

ML is already commonly used as a blackbox in system design interviews. This is particularly true for questions about scaling. Most engineers don’t take a deep dive. You might *elude to ML parts* but don’t actually demonstrate with  embedded knowledge. 

If you really want to **extend yourself from run-of-the-mill**, you need to demonstrate your knowledge of ML systems and an aptitude it **beyond the theoretical**. A next-gen engineer will actually go into the technologies and methodologies behind ML components. 

> Interviewers, in particular, are looking for someone who understands how recommendation systems work, namely ad suggestions, rideshare clustering, or news feeds. 

Recommendation can be leveraged for all kinds of systems, and an employer will look for this level of thinking as you design your system. Every product needs to embrace ML. So, demonstrate in your system design interview that you are the person who can lead a product into that new era. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/p59ja0o5oz0487z7jduz.png)

<a name="skills"></a>

## What ML skills do I need to know?

The machine learning concepts needed depend on your career goals. In general, anyone in the tech industry, especially those looking to advance, need at least a basic understanding of:
* ML terminologies 
* Different branches of the data science field
* Python libraries 
* Different types of ML systems
* [Uses of ML algorithms](https://www.educative.io/blog/top-10-ml-algorithms-for-data-science-in-5-minutes)
* and more

> Beyond that, knowledge of ML infrastructure and architectures is essential, especially for cloud services and recommendation systems. 

If you are new to Machine Learning, I recommend starting with the basics and then getting practice whiteboarding common problems. It’s crucial that you understand what is **actually required to design** an ML component. Starting with our **[Machine Learning Adaptilab Courses](https://www.educative.io/courses/machine-learning-for-software-engineers)** is a great place to start for a technique-based approach to ML. 

For those who already possess some knowledge of machine learning, you’ll need to take those concepts much further. You’ll need knowledge of:
* Performance considerations
* Transfer learning
* Feed based systems
* Complex training data
* Ad prediction systems
* and beyond

You’ll need to study the [anatomy of machine learning questions](https://www.educative.io/blog/anatomy-machine-learning-system-design-interview) and master the best practices for designing common ML systems, such as a recommendation system, visual understanding system, and search ranking system.

I recommend starting right away with our **[Grokking the Machine Learning Interview](https://www.educative.io/courses/grokking-the-machine-learning-interview)**. This course applies ML to advanced  system design. You’ll get hands on experience building the most common systems from the ground up, so when these questions arise in your interview, you’ll stand out as a next-gen thinker. 

If you’re an engineering manager, it’s crucial that you develop the **ability to talk about ML** without getting into the weeds. Since ML is the future, it is also the future of your management and long-term goals. 

A next-generation engineering manager thinks about the bigger picture of Machine Learning and how it can be applied to current or upcoming projects. Our course **[Grokking AI for Engineering & Product Managers](https://www.educative.io/courses/grokking-ai-for-engineering-product-managers)** is specifically designed for those who manage ML teams. 

<br>

<a name="wrap-up"></a>

## Wrapping up 

ML is the new stakes, and we are all called to take part. It’s time to demonstrate that you can lead a team and product into the new era, uncharted world. Become a next-gen engineer or manager, no matter your current standing with ML. 

Don't fall behind as system design moves into the world of machine learning. Take charge of your system design skills by leveraging ML concepts and technologies. Soon, you'll be building for the future. 

*Happy learning!*

<br>

### Continue reading about Machine Learning 
* [Crack the top 40 machine learning interview questions
](https://www.educative.io/blog/top-machine-learning-interview-questions)
* [Introducing Artificial Intelligence for Engineering Managers
](https://www.educative.io/blog/artificial-intelligence-for-engineering-managers)
* [Cracking the Machine Learning Interview: system design approaches](https://www.educative.io/blog/cracking-machine-learning-interview-system-design)