- C Overview
- C++ Overview
- Tenouk's Ultimate C/C++ Tutorials
- Attributes
- C/C++ Preprocessor Directives
- C/C++ Type Specifiers
- Structure Member Alignment, Padding and Data Packing
- Memory Alignment
- The Function Stack
- C/C++ Compile, Link and Running Programs
- C Storage Class, Scope and Memory allocation
- C/C++ Storage Classes: const, volatile, local and global
- Inline functions
- Declarations in C
- C/C++ typedef
- Runtime data strtuctures
- Buffer Overflow
- C++ New Standard Specific Topics
- auto vs auto & vs auto &&
- Copy by value, by reference, by move
- C++ Big O Cheat Sheet
- C++ STL Cheat Sheet
- Concurrency
- Finite State Machine
- FSM for tasks state
- Task Scheduler
- Endianess Check
- Swap Endianess
- Array of Bits (bit sets/bit map)
- Low Pass Filter
- Memory map IO register manipulation
- Simple One-layer Timer list/wheel
- Memory Pool Allocation
- Simple Slab Allocator
- Data Structure
- Ring Buffer
- Hash Table
- Heap (priority queue)
- Stack
- Queue
- Binary Search Tree
- Red Black Tree
- Minium Spanning Tree (MST)
- Bitwise tries
- Math
- Rolling average
- Taylor Series
- Dividing by a constant
- Sine Functions with Lookup table
- Linear Interpolation
- Floating Point Arthimetic
- Multiply 16-bit integers using an 8-bit multiplier
- Common STL function implementation
- Bits Manipulation
- Reverse Bits
- Flip a monochrome bitmap
- Count bits with lookup table
- Length of the Longest Consecutive 1s in Binary Representation
- Find most significant set bit of a number
- Swap two number without temporary varaible
- Number is a power of 2
- Swap all odd and even bits
- Find position of the only set bit
- Find the element that appears once and other elements appear 3 times
- Signness Check for two integers
- Turn off the rightmost set bit
- Rotate bits to left/rigtht
- Swap bits in a given number
- Concurrency
- Implement a Spinlock/Mutex/Semaphone
- Test-and-set
- Compare-and-swap
- Test-and-clear
- Implement Semaphone with Mutex
- Producer and consumer problem (Bounded Buffer)
- Reader Writer Problem
- Leetcode Concurrency Tag
- FizzBuzz MultiThread
- Bouned Queue
- Print In Order
- Building H2O
- The Dining Philosophers
- Implement a Spinlock/Mutex/Semaphone
- Other Implementations
- Shuffle cards
- Accurately (emphasize) read 64bit register with read32
- Given a matrix and its center coordinates, draw the circle
- Find a 32 bit frame start sequence in a raw byte stream buffer
- Memory tracker to hook into glibc library to keep track of dynamic memory allocations, including statistics
- Given an array of angles and an array of voltages for these angles, now there is a new angle coming in, calculate its voltage.
- Other Common C algorithm
- Sort
- Bubble Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Insertion Sort
- Binary Insertion Sort
- Search
- Hash
- Binary search Tree
- Graph
- Memory management
- Multi-thread/Multi-processing
- Network
- Serial Communication
- Asynchronous Serial Protocols
- Synchronous Serial Protocols
- PCIE
- Linux Fundamentals
- Linux System Administration
- Linux Servers
- Linux Storage Management
- Linux Security
- Linux Networking
- Interrupt
- Exception Handling
- System call
- Re-entrant & Thread Safe Function
- Process Management
- Process Manager
- Process/Task Control Block
- Scheduling
- Context Switch
- Scheduling policy/algorithm
- Dispatcher
- Threads and Concurrency
- Multithreading/Multiprocessing
- Process Manager
- Interprocess Synchronization/Communication
- IPC
- Pipe
- Socket
- Message Queue
- Shared Memory
- Signal
- Sychronization Facilities
- Semaphore
- Mutex
- Spinlock
- IPC
- Memory Management
- Memory Management Reference
- Memory Hardware
- Virtual Addressing/Memory
- Caching
- File System Management
- Operations on Files
- Virtual File System
- Concrete File System
- Inodes
- Device I/O Management
- RTOS
- FreeRTOS
- Firmware Stack Layer
- IPC/Sychronization Mechanism
- Scheduler
- Interrupt
- Timers and time management
- API Reference
- QNX
- FreeRTOS
- Linux
- Linux Kernel Overview Blogs
- Kernel Source Code All Versions
- Linux Device Model
- Synchronization primitives
- Booting
- Linux Booting Process
- Intialization
- Interrupt
- System Call
- Boot Loader
- Timers and time management
- Linux Memory Managment
- Process Management
- Linux Data Structures
- Linux Socket Programming
- ARM programmer's model
- Pipeline
- CPU Architecture
- Memory Hierachy
- Memory
- DMA
- TCM
- TLB
- NUMA
- Memory translation
- RAM & ROM
- Flash Storage
- LED/LCD
- Timer
- Sensors
- Bluetooth/BLE
- Wifi
- LTE Modem
- USB devices
- Memory Protection Unit (MPU)
- Memory Management Unit (MMU)
- Floating Point Unit (FPU)
- Crypto Engine
- STM32 MCU
- JTAG
- Trace
- GDB
- Sysfs
- Printk
- Kernel Debugging
- GIT
- SVN
- Trusted Platform Module (TPM 2.0)
- Arm Trust Zone
- Intel SGX
- Embedded Reverse Engineering
- Encryption Algorithms
- Network OSI layer
- LTE
- Wifi
- BLE
- Bluetooth
- Multicast
- TSN/AVB
- C++11 Q/A
- C++ Core Guidelines
- Resources
- Advanced Leetcode Questions
- Advanced Leetcode Questions Practices
- Linked list
- String
- Array
- Math
- Data Structure
- Sliding Window
- Two Pointers
- Faster & Slow Pointers
- Merge Intervals
- Cyclic Sort
- In-place Reversal of a Linked List
- BFS
- DFS
- Two Heaps
- Subsets
- Modified Binary Search
- Bitwise XOR
- Top 'K' Elements
- K-way Merge
- Knapsack (DP)
- Graph Topological Sort
- Bitwise operation C questions
- Must Do Coding Questions for Companies like Amazon, Microsoft, Adobe
- Bus Protocol
- I2C Interview Questions
- SPI Interview Questions
- CAN Interview Questions
- UART Interview Questions
- USB Interview Questions
- PCIe Interview Questions
- Operating System
- Commonly Asked Operating Systems Interview Questions Sets
- Commonly Asked Operating Systems Interview Questions Sets2
- Interrupt Interview Questions
- Synchronization Interview Questions
- General OS questions
- Linux
- 30 Linux Kernel questions
- 70 RTOS interview questions
- 50 Linux device driver questions
- Programming Language
- Computer Architecture
- Computer Networks
- Computer Hardware
- 10 Most Common Embedded Interview Questions
- Embedded Interview Questions
- Embedded Interview Questions Repo
- Embedded C Interview Questions and answers
- 50 Multithreading questions
E. Brain Teaser
- System Design Primer
- System design interview for IT companies Github
- System Design CheatSheet
- System Design Interview Approach
- System Design Basics
- System Design Examples with Embedded Flavor
- Design a Cache
- Design a Vending Machine
- Design a Traffic Control System
- Design a ATM Machine
- Design a Elevator System
- Design a Air Traffic Controller
- Design a Amazon Locker System
- Design a service for Alexa devices to report battery status
- Design a Parking Lot System
- Design a File System
- Design a Garbage Collector
- Design a call center
- Embedded System Design Pattern Catalogue
- Embedded System Design Topics
- Small memory management
- Multi-MCU communication/coordination
- Scheduling
- Execution in place (XIP)
- Dynamic memory allocation for embedded systems
- Implementations
- Consistent Hashing
- Memcache
- Learning operating system development using Linux kernel and Raspberry Pi
- Raspberry-Pi-Multicore
- David Welch's tutorials
- Cambridge tutorials
- Bare Metal Programming on Raspberry Pi 3
- Network
- Unix Network Programming, volumes 1-2 by W. Richard Stevens.
- Internetworking with TCP/IP, volume I by Douglas E. Comer.
- TCP/IP Illustrated, volumes 1-3 by W. Richard Stevens and Gary R. Wright.
- TCP/IP Network Administration by Craig Hunt. Published by O’Reilly & Associates, Inc.
- Advanced Programming in the UNIX Environment by W. Richard Stevens.
- Computer Networking - A Top-Down Approach
Embedded software interview archive
Awesome Embedded Interview Link
Embedded system guide repo collection