When I went through a bunch of interviews in 2021 all my interviews were remote. After the first few hour-long interviews it became apparent that there were many repeat questions. I started writing the questions down along with my answers. I ended up with a notepad with ~20 of the most frequent questions and answers that I kept open on my screen next to the video conference. It was super helpful and now I have one of those $300k tech jobs!
Edit: these were the questions, the answers are left as an exercise to the reader (or your preferred AI):
What are you looking for in a role?
How do you deal with a conflict with a coworker?
What leadership experience do you have?
Do you have experience working with multiple teams?
What APIs have you designed?
What is priority inversion?
What are the differences between a mutex and a semaphore?
What is preemption?
How do interrupts work?
What is interrupt latency?
What is the difference between an ISR and a function?
What is the difference between an interrupt and an exception?
What is hard vs soft real time?
What is the boot process of a CPU?
What do you do for board bring up?
What are different memory sections used for (code, data, bss, etc.)?
What is a TLB?
What is the difference between big and little endian?
What is the difference between 32 and 64 bit processors?
Priority inversion: A situation where a higher-priority task is indirectly blocked by a lower-priority task holding a shared resource.
Mutex vs semaphore: Mutex ensures mutual exclusion for a shared resource, while semaphore controls access to a resource by multiple tasks with a counter.
Preemption: The act of interrupting and temporarily suspending a task, allowing another task to execute.
Interrupts: Signals to a CPU to temporarily stop its current task to handle an event or perform a specific function.
Interrupt latency: The time between the arrival of an interrupt and the start of the interrupt service routine (ISR).
ISR vs function: ISR handles an interrupt, cannot be called directly, and must complete quickly; a function is a reusable block of code that can be called as needed.
Interrupt vs exception: Interrupts are external events requiring CPU attention, while exceptions are internal events caused by the execution of an instruction.
Hard vs soft real time: Hard real-time systems have strict deadlines that must be met, while soft real-time systems have more flexible deadlines.
CPU boot process: Initialization sequence a CPU follows upon startup, including loading firmware, running tests, and loading an operating system.
Board bring up: Process of validating and configuring new hardware to ensure correct functionality.
TLB: Translation Lookaside Buffer, a cache for memory address translations in virtual memory systems.
Big vs little endian: Big endian stores the most significant byte first, while little endian stores the least significant byte first.
32 vs 64 bit processors: 32-bit processors have 32-bit wide registers and address spaces, while 64-bit processors have 64-bit wide registers and address spaces, allowing for larger memory and better performance.
Null pointer dereference: Undefined behavior occurs, often leading to a crash or unpredictable results.
Does the job actually require the knowledge behind these questions directly in live discussion environment? or are you able to get away with it by Googling/Stackoverflow/ChatGPT?
Edit: these were the questions, the answers are left as an exercise to the reader (or your preferred AI):
What are you looking for in a role?
How do you deal with a conflict with a coworker?
What leadership experience do you have?
Do you have experience working with multiple teams?
What APIs have you designed?
What is priority inversion?
What are the differences between a mutex and a semaphore?
What is preemption?
How do interrupts work?
What is interrupt latency?
What is the difference between an ISR and a function?
What is the difference between an interrupt and an exception?
What is hard vs soft real time?
What is the boot process of a CPU?
What do you do for board bring up?
What are different memory sections used for (code, data, bss, etc.)?
What is a TLB?
What is the difference between big and little endian?
What is the difference between 32 and 64 bit processors?
What happens if a null pointer is dereferenced?