I’m aware of what kind of system design interview questions may be asked during an software engineering interview, but if you’re asked about embedded system design, what kind of questions can one expect? I’m looking for any answer that you think is relevant or you as an interviewer you may ask someone if this was the area you wanted to question someone around.l Embedded systems are generally: A single application with no downtime, single specific purpose, if things go wrong, the entire system goes down/crashes or handles it and goes to sleep/recovery mode. #engineering #software #swe #embedded #firmware #google #amazon #apple #interview
Bit manipulation, pointers for memory access, communication protocols like SPI or I2C, redundant system design
System design in embedded can be vast and depends on role. A low level embedded engineer might need to know about choosing components, power consumption, designing firmware modules which deal with peripherals, boot-loader and application code etc Emphasis on state machines A higher level could be asked more software design oriented for roles like Linux or Windows driver development That would involve device tree, OS core utilization, paging, handling OS power events, etc. I am just guessing. I have not personally been asked to design an entire embedded system so far on interviews
I am in the same boat, looking everywhere for SD questions or topics but no where we can get it for embedded systems design domain
For firmware Engineering interviews system design interviews, it is very niche and dependent on what company you are interviewing for. For example companies like Magic Leap or Reality labs can ask you to design some smart glasses or VR device. If you are interviewing for some IOT company like silicon labs, they may ask you to design an IOT based system which is to accomplish an objective. Sometimes, the interviewer will ask you how to design a product and sometimes he or she will ask you to design an interface or protocol. However, the basic approach to answering any embedded system design question should be as follows: 1. Understand the problem statement really well. Ask clarifying questions to the interviewer. More often than not, candidates fail system design interviews because of not knowing what the interviewer expects. 2. If you are asked to design an electronic toaster, design the basic functionality of the toaster first, before thinking of what IOT interface the toaster needs. Simplicity is the key. 3. Define all the blocks the system might need. The ones I am talking about are the component blocks that are absolutely needed. For example, if you are designing a basic computer motherboard, you will need a DRAM and an SRAM and some sort of interface to the CPU. 4. Think about the peripheral blocks that the product might need if applicable, like UART, or SPI etc. 5. Once you are convinced that you have all the basic building blocks of your system, explain to the interviewer how the system would work and its flow. 6. First think through the basic design and only then think of system optimization. For example, only when you think that the CPU should not be kept busy all the time, add the DMA block. But this is only an optimization that should be added later. Stick to the basics first. Too many details will clutter your design so don't add them in the beginning. 7. Think of power optimizations the system might need. Last and most importantly, think in this order: 1. First make it Functional. i.e. it should work. 2. Then make fast, think about performance. 3. Lastly, think about scalability. For system design in ESE, I highly recommend Elicia White's book : Making Embedded Systems Examples of what they might look like: 1. Design a vending machine. 2. Design a toaster 3. Design a simple arbitration scheme if two client devices try to talk to a host on an i2c wire.
Design problems would probably be about memory and how to build an efficient system that connects to the cloud.