Embedded software runs on hardware you cannot scale, often cannot update easily, and sometimes cannot fully trust. Panels for these roles care less about frameworks than about whether you know what the compiler and the silicon are doing. Below are the daily work, the employers hiring in India, and the questions that separate people who have debugged real boards from those who have only read about them.

Firmware, drivers, and the board on your desk

Most embedded engineers write C, and increasingly C++, for microcontrollers with kilobytes to a few megabytes of memory. The work includes bringing up new boards, writing drivers for sensors and peripherals, structuring tasks on a real-time operating system (RTOS) such as FreeRTOS or Zephyr, implementing protocols, building bootloaders and update paths, and cutting power consumption. A second branch, embedded Linux, works on application processors with device trees, kernel drivers, and build systems such as Yocto or Buildroot.

A typical week on a product team: a new board revision arrives and the SPI flash returns garbage, so you clip a logic analyser onto the lines and find a clock polarity mismatch. A unit in field trials resets every few days, and the registers saved by your fault handler point to a stack overflow in a task whose stack was sized by guesswork. Midweek brings a MISRA C code review and a meeting with the hardware team about pin changes in the next revision. Friday goes to the hardware-in-the-loop rig and its regression run.

Outsiders often lump the role in with application development or hardware design. Application developers work where memory is cheap, hardware is abstracted away, and a fix ships in minutes; in embedded, the bug may be in the board, and a release may need re-verification against a standard. Hardware and VLSI engineers design boards and chips; you write the software that runs on them, though at chip companies the line blurs into drivers and validation firmware.

The embedded skill set, from C to the oscilloscope

SkillWhat employers expectWhy it matters
CPointers, bitwise operations, structs and unions, volatile, integer promotion, undefined behaviour, linker scripts and map filesNearly all firmware, and most interview questions, start here
Microcontroller internalsMemory map, interrupt controller (the NVIC on ARM Cortex-M), clocks, timers, DMA, startup codeA driver is register reads and writes with timing rules attached
RTOSTasks, priorities, queues, semaphores versus mutexes, priority inversion, deferring work out of interruptsConcurrency bugs on a device are slow to reproduce and costly once shipped
ProtocolsI2C, SPI, UART, and CAN; USB, Ethernet, or BLE for some productsAlmost every board talks to a sensor, a radio, or another controller
Debugging toolsJTAG or SWD debugger, oscilloscope, logic analyser, fault register analysisSome bugs exist only on the wire or in the timing

Know each protocol at the level an interviewer can probe. I2C uses two open-drain lines with pull-up resistors, 7-bit or 10-bit addresses, and an acknowledge bit after each byte. SPI uses a clock, two data lines, and a chip select per device, with four modes set by clock polarity and phase. UART is asynchronous, so both ends must agree on baud rate and framing. CAN is a differential bus on which the frame with the lower identifier wins arbitration. Differentiators beyond this core depend on the industry, covered next.

Where embedded engineers work, and how seniority looks

By industry

  • Automotive. Tier-1 suppliers, vehicle makers' technology centres, and engineering services firms build software for ECUs such as body control, powertrain, driver assistance, and infotainment. Expect AUTOSAR Classic configuration, UDS diagnostics, MISRA C, requirements traceability, and Automotive SPICE processes. Safety-related work follows ISO 26262, which grades risk from ASIL A to ASIL D.
  • Semiconductor. Chip companies' India design centres hire for drivers, board support packages, SDKs, bootloaders, and firmware for pre-silicon and post-silicon validation. Computer architecture and Linux kernel knowledge count here.
  • Consumer electronics and IoT. Wearables, smart home, and audio products: BLE and Wi-Fi, low-power design, secure boot, over-the-air updates, and quicker release cycles. Many are startups, where one engineer may own the firmware, the update server, and factory tests.
  • Industrial and medical. Motor drives, controllers, meters, and devices with long service lives; fieldbus protocols such as Modbus; IEC 61508 for functional safety or, for medical device software, the IEC 62304 life-cycle standard.

By experience

  • 0–2 years (Graduate Engineer Trainee, Embedded Software Engineer): write and debug drivers under review, read datasheets without hand-holding, use a debugger and a logic analyser, and write unit tests.
  • 3–5 years (Senior Engineer, Module Lead): own a subsystem such as the bootloader or a communication stack, lead board bring-up, review code, and, in services firms, work directly with client engineering teams.
  • 6+ years (Technical Lead, Architect, Principal Engineer): partition software across cores and tasks, choose the RTOS and toolchain, contribute to safety and security concepts, and set coding and test standards.

Services firms offer breadth across clients and a well-defined ladder. Product and semiconductor companies offer depth and closer contact with the hardware. GCCs of automotive and industrial groups usually build the parent company's own products, with structured processes and global teams.

How embedded interviews are run

Fresher hiring often starts with a written test mixing C output questions, pointers, digital electronics, and microprocessor basics; ECE and EEE graduates are hired alongside computer science graduates. Interviews then go deep on C and on your final-year project: expect to be asked which registers you configured, and why.

For experienced hires, a common sequence:

  1. Recruiter screen: domain, microcontroller families, toolchains, notice period.
  2. C round: bit manipulation, a ring buffer, or a state machine, on paper or in a shared editor.
  3. Systems round: RTOS, concurrency, protocols, a debugging scenario, and the hardest bug from your last project.
  4. Domain round (some employers): AUTOSAR layers, diagnostics, and safety for automotive; kernel and device tree questions for embedded Linux.
  5. Manager and HR rounds.

Algorithm puzzles appear less often than in application development, though product and semiconductor firms may include one. What panels judge is precision: "this read-modify-write is not atomic on this core" earns credit; "there might be a timing issue" does not.

Low-level questions you should be able to answer cold

  1. "What does volatile guarantee, and what does it not?" It stops the compiler caching or dropping accesses to registers and interrupt-shared flags. It gives no atomicity and no ordering between cores.
  2. "Set, clear, toggle, and test bit n of a 32-bit register." Use 1u << n, and explain why shifting a signed 1 into bit 31 is undefined behaviour in C.
  3. "Read a status register at a fixed address." A pointer to volatile uint32_t, then a struct overlay for a peripheral's register block.
  4. "A 32-bit counter is incremented in an ISR and read in the main loop of an 8-bit microcontroller. Occasionally the value is wrong. Why, and what is the fix?" An interrupt can land between the byte reads; mask interrupts briefly or read until two values match.
  5. "What should an interrupt service routine never do?" Block, allocate memory, call printf, or loop for long. Clear the flag, capture the data, and hand the rest to a task.
  6. "Write a ring buffer for UART receive with one ISR producer and one task consumer, without disabling interrupts."
  7. "How do you detect endianness at runtime, and where has it bitten you?" Network byte order, binary file formats, and CAN signals defined in Intel or Motorola byte order.
  8. "After a reset, the I2C bus is stuck with SDA held low. What happened?" A device was mid-byte when the controller reset; clock SCL up to nine times until SDA is released, then send a STOP.

Writing an embedded resume a hardware-aware panel will trust

Name the hardware and the constraints. "Worked on embedded C" gives a panel nothing to ask about; "drivers for a Cortex-M4 with 256 KB of flash on FreeRTOS" tells them exactly where to start. Say which drivers you wrote rather than called from a vendor library, which instruments you debugged with, which standards applied, and whether you worked on bring-up, production, or field issues.

Illustrative bullets (the numbers are made up to show the pattern):

  • Brought up SPI flash and I2C sensor drivers on a new Cortex-M4 board running FreeRTOS; traced corrupted first bytes to an SPI mode mismatch with a logic analyser. The drivers shipped in two product variants.
  • Implemented UDS diagnostic services (reading and clearing DTCs, ECU reset, security access) in an AUTOSAR Classic body control module, with every deviation from required MISRA C rules documented and approved before release.
  • Extended a wearable's battery life from five to eight days by replacing sensor polling with interrupt-driven wake-ups and gating unused peripheral clocks, confirmed with current measurements on 20 test units.

What to cut or fix:

  • A protocol list (I2C, SPI, UART, CAN, LIN, USB, Ethernet, BLE) with no evidence behind it. Three you can defend beat eight you cannot.
  • Hobby-board projects described as production work. They are fine for freshers, as long as you say what you did below the library layer.
  • A client codename in place of a domain. "Body control module for a European car maker" keeps confidentiality and still says something.

Breaking in and growing in embedded

ECE and EEE graduates usually bring hardware intuition and need stronger C. Computer science graduates and application developers need the reverse: electronics basics, schematic reading, and comfort with instruments. Either way, a workable path:

  1. C, until pointer arithmetic, bit operations, and integer promotion feel routine.
  2. A Cortex-M board with an on-board debugger, such as an STM32 Nucleo, so you can single-step code from day one.
  3. One bare-metal driver written from the reference manual without the vendor's hardware abstraction layer, then again with it, to see what the library hides.
  4. An RTOS project with several tasks, a queue, and an interrupt.
  5. Then the domain: AUTOSAR and MISRA for automotive, or the Linux kernel and device trees for semiconductor roles.

Worth the money: an inexpensive USB logic analyser with open-source software such as PulseView. Seeing your own I2C and SPI traffic teaches more than any tutorial.

Projects that make a panel lean forward, ideally published with a README, wiring notes, and captures (see what to put on GitHub):

  • An I2C sensor driver with host-side unit tests against a fake register layer, and an annotated logic-analyser capture.
  • A FreeRTOS data logger: a sensor task, a storage task writing to SPI flash, a UART command shell, and stack sizes justified with high-water-mark measurements.
  • A two-node CAN network with transceivers, a documented message set, and handling for bus-off recovery.

Adjacent moves include computer vision for running models on edge devices, product and automotive cybersecurity (secure boot, firmware signing, ISO/SAE 21434), and general software engineering if you want faster release cycles.

Embedded job pages and a starter checklist

  • Choose a target industry before applying and rewrite your resume summary for it.
  • Answer questions 1, 4, 5, and 8 above aloud without notes, then write the ring buffer from question 6 on paper.
  • Freshers: read how freshers land a first software job for off-campus routes.
  • Use the four-week preparation plan, swapping algorithm practice for C and RTOS drills.

Current openings: Bengaluru, Hyderabad, Pune, and across India. The live data near the top of this guide shows which skills current postings in India name; use it to see whether AUTOSAR or embedded Linux is in demand before you specialise.