My prep strategy
After many requests, I’m posting my prep strategy and interview experience here:
Old post : https://www.reddit.com/r/embedded/s/lBKgmJBEsC
Recently got selected after one of the most mentally exhausting interview processes I’ve been through, and I thought I’d share the full story because the outcome could give hope to others
Background:
- almost 4 years experience in automotive validation/testing
- Mostly worked on Vector stack and application-side testing , no regular coding or low level driver work
The important part:
I seriously prepared for around 60 focused days while working full-time.
Prep included:
- C fundamentals (Neso Academy etc.)
- Basic C++
- ARM Cortex-M basics
- RTOS concepts
- Threads, mutexes, semaphores
- Producer-consumer
- Memory layout / linker / stack / heap
- Embedded systems fundamentals
- DSA basics again from scratch
- Some LeetCode medium problems
- Reverse linked list
- Binary search variants
- Hash maps / LRU attempts
- Bit manipulation
- IPC/scheduling concepts
Sources:
- Neso Academy YT playlist for C fundamentals
- Udemy courses by fastbit academy on ARM cortex and RTOS fundamentals
- ChatGPT for fast learning
- online compilers for coding practice and leetcode medium problems here and there
FYI - I used these sources mostly as a tools for brushing up as i had prior context in these topics from my academic days.
Tip: I created separate chat boxes for each topic in ChatGPT and only a particular chat box for only that topic to avoid mixup and quick reference
Also makes it easier to have an interactive quiz generated by the ChatGPT to test how well I’m learning
Interview process was 5 rounds total.
Interview experience:
Round 1:
Concurrency problem involving ordered thread execution using semaphores (odd/even printing style logic). Needed hints but eventually converged. Questions from current work and some academic projects relevant to their work.
Round 2:
Coding:
- Merge two sorted arrays
- Search in sorted matrix
Onsite round 3:
- C Memory map layout in depth grilling
- C fundamentals grilling
- Linked list reversal
- Basic array and pointer manipulation questions
- Deep questions on my relevant project from masters
Onsite round 4:
- Motivation for job change
- Background discussion over work and academic history
- logistic discussions
Round 5.
Got grilled for ~1.5 hours.
Topics:
- Multithreading on single-core systems
- Scheduling overhead
- Why multithreading helps/hurts
- Thread allocation strategy for image-processing systems
- Core vs virtual thread discussion
- types of semaphores and usages
- Asked to design a small parallel processing system and how the resource allocation should be done( theoretical)
- Detailed questions about my exact work experience and implementation depth
Then coding:
- Implement memmove
- Reverse bits of a number with optimization discussion
- matrix problem involving row/column suffix sums
I misunderstood the matrix question twice under pressure.
Then HR called.
Received the written offer letter just today.
Anyway, posting this because during prep I used to read posts like these myself and assume everyone getting into top companies was already cracked from day one.
A lot of us are figuring it out in real time.
FYI - I used ChatGPT for formatting this post, excuse me if any mistakes are there.