Preparing for An Embedded Systems Interview — Part I

Preplaced
Preplaced
Published in
5 min readJul 9, 2019

Embedded Systems is a field with immense opportunities and growth. They are everywhere around us. Ranging from smart watches , music player , routers to mobile phones, powerful computers , factories and automobiles.

This job profile is considered to be one of the highest salaried jobs. Its
demand keeps rising, and will continue to do so with continuous increase in requirement for better and efficient computing systems.

Some of the world known companies hiring in this domain are:

1. Intel
2. Qualcomm
3. Google
4. Samsung
5. Microsoft
6. IBM
7. AMD
8. Nvidia

This blog covers some of the most amazing resources available today for preparing for an embedded systems role. Major topics that should be known to aspirants appearing for interview are:

  1. Computer Architecture (& Digital Design)
  2. Operating Systems
  3. Systems Programming
  4. Programming ( Generally C/C++ preferred)
  5. Data Structure and Algorithms (At the minimum basics are required )

Lots of books,online courses and websites are available to prepare for programming and Data Structures. Here in this blog(2-part), we give a thorough strategy and guidance of resources for preparing the first 3 mentioned topicsconsidered as the most important tools of any embedded system engineer. The strategy and resources given guides readers for a long term path and is not a quick tutorial on cracking the interview.

Computer Architecture

Computer Architecture is one of the most important subjects for embedded design engineers. Most of the evolutionary ideas on system design optimization have their roots starting from this area. Almost all companies set the requirement that Embedded engineers have good understanding of underlying hardware ecosystem.

List of some of the most important concepts that you should not skip while preparing for a computer architecture interview:

— Topics marked as “advance” are for profiles expecting experienced candidates. Freshers can feel free to skip advance topics.

  1. Single Cycle & Multi Cycle Architecture , ISA
  2. Pipelining
  3. Out of Order Processors (Tomasulo , Load-Store Queues) (Advance)
  4. Performance Measurement parameters (IPC, CPI, AMAT)
  5. Cache & Memory Heirarchy
  6. Cache Architectures and Optimizations (Design Tradeoffs) (Advance)
  7. TLB and Virtual Memory concepts.
  8. Multicore Architecture (Advance)
  9. GPU & Heterogeneous Computing (Advance)

Below is the list of some great resources that can help you prepare for above topics and start you on a journey of becoming an exceptional computer architect:

— Only the books and resources that we feel best are mentioned and described here. There are tons of other resources available, a link to some of which is available at the end of the blog.

Books:

  1. Computer organization and Design 4th edition PDF by John L. Hennessy and David A. Patterson
  2. Computer architecture a quantitative approach 6th edition PDF by John L. Hennessy and David A. Patterson

Rightly claimed as the bible of computer architecture, these books by Hennessy and Patterson are a true masterpiece. If you are a beginner, you can start with the 1st book. It takes the reader from the most basic of the concepts to understanding the base of modern computing systems. This is the level that is generally expected during an interview for a college fresh graduate.

The 2nd book is the closest description of modern day processor design that you can get in any book out there in the market. It is truly remarkable in the way it describes the concepts and dwells into most advanced features. It is highly recommended for people preparing for an interview in openings requiring in-depth architecture understanding.

Amazing part about both these books is the enormous amount of case studies and exercises available at the end of each chapter. It compels the reader to think in various directions and teaches on how to actually utilize the theory in solving design problems (preparing you for the hard real world!). Some of the case studies also covers design of modern day processors from Intel & AMD which provides great insights on where the field is heading.

Online Lecture Videos

I am not the guy who likes to read books

Many of us might fall in the above category. Reading books might feel like a nightmare. Below are some great online videos as an alternative!:

There are quite a lot of video courses available but the ones mentioned here are the latest ones. Also, for each of the playlists there are links available on Youtube for the course material that goes along with the videos. Course Material is equally great and gives great amount of practice for practical implementation of the theory learnt. The link also mentions research papers covering all relevant topics and problem statements.

  1. Onur Mutlu Digital Design (ETH Zürich, Spring 2019)
  2. Onur Mutlu Undergraduate Computer Architecture (Carnegie Mellon, Spring 2015)
  3. Onur Mutlu Graduate Computer Architecture (ETH Zurich, Fall 2018)

Few points to mention about the video lectures:

Onur Mutlu is a renowned professor of computer science at ETH Zurich. Videos of all his lectures taken at CMU and ETH Zurich are available online for free on Youtube.

Only one lecture of his will be enough for you to understand how good a professor he is. Especially if you have a taste for research and exploring modern day problems, you are going to love him.

Computer architecture design is all about understanding trade offs and choosing the best available option. Onur Mutlu has a great style of teaching. The way he dismantles the trade offs for each problem statement is truly remarkable. It prepares the students on how to think while solving a problem. Also, one of the key things about his video lectures is that he covers the most relevant and latest technology.

His lectures cover almost all of the topics of computer architecture in great depth. You won’t ever need any other material if you complete this!

Extra Marks for Extra Reading!

Apart from all of this, reading and understanding about specific architecture like x86, ARM can help a lot. It helps in understanding how the industry is using the concepts taught in academics to solve real problems. Coming to the point, it will actually help you in impressing the interviewer as they love if the candidate has good understanding of industry used architectures.

There are quite a lot of references and information available for each of them in the mentioned books and also on online platforms.

Another important point to take a note of is: Architecture keeps evolving very quickly. To be up to date with what is actually present in embedded systems surrounding us is also an important part of the puzzle to solve for engineers. Unfortunately, Reading good quality research papers on latest topics on a regular basis is the only available solution! Sigh!

Continue reading about operating system and systems programming on part II of the blog.

This blog post is contributed by Sahil Maniyar, a System software architect at Qualcomm.

Preparing for an interview?

Prepare better with free mock interviews from professionals working in top companies ! Visit Preplaced to get your first mock interview and more of such insightful blogs for free!

--

--

Preplaced
Preplaced

Preplaced is a personalised 1:1 mentor-led interview preparation platform that operates with one and only goal: getting people placed in their dream companies.