Embedded Software Engineer Sensors Drivers Embedded Linux
Embedded Software Engineer II in Bengaluru writing sensor, peripheral and power drivers plus the Embedded Linux platform (boot chain, device trees, Yocto/Buildroot images, A/B updates) for HyPrix's low-cost missile and flight systems. Daily work spans driver bring-up, fault detection/BIT, kernel debugging with JTAG/gdb, and CI-tested OS images.
- Compensation
- Not disclosed
- Location
- Bengaluru, India
- Work setup
- Not specified
- Seniority
- Principal
- Employment
- Not specified
- Experience
- 3+ years
- Category
- Embedded
- Posted
Skills
Must have
- Strong C for bare-metal, RTOS, kernel and user-space code, and good C++
- MISRA C, unit tests, code review, Git and CI pipelines
- Hands-on work with Cortex-M or Cortex-R MCU peripherals, interrupts, DMA and timers
- Hands-on work with Cortex-A53, Cortex-A72 or similar SoCs
- Hands-on with TI C28x/C29x MCUs (ePWM, eCAP, ADC, CLA) and C2000Ware in Code Composer Studio
- Production drivers for UART, RS-422/485, SPI, I2C, CAN and Ethernet (UDP/TSN) with interrupt and DMA designs, and binary sensor protocols
- Sensor data validation, timestamps, fault detection and built-in test in a delivered product
- Production firmware on FreeRTOS, Zephyr, ThreadX or bare metal; knowledge of latency, determinism and interrupt priorities
- Embedded Linux: kernel configuration, device trees, U-Boot or UEFI, and a kernel driver written or ported
- Yocto or Buildroot with custom layers
- Knowledge of systemd, threads, memory management and Linux networking
- Firmware debug with J-Link, ST-Link or XDS probes and gdb (breakpoints, watchpoints, hard-fault analysis)
- Linux debug with dmesg, oops traces, ftrace, perf, strace and kgdb
- Bus decode and timing measurement with oscilloscope, logic analyser and schematics
Nice to have
- 3-4 years of embedded software development on microcontrollers and embedded Linux, incl. one sensor integrated from ICD and one Linux image in a product/field trial (preferred, not mandatory)
- Bachelor's degree in electronics, electrical, computer engineering or computer science
- Experience with INS, IMU, GNSS, lidar/radar, air-data, gimbal or servo integration for UAVs, missiles, launch vehicles or automotive ADAS
- Knowledge of PPS or PTP time synchronisation, MIL-STD-1553 or ARINC 429
- Experience with engine ECU interfaces, safety-critical discrete I/O, HIL rigs or fault injection
- Experience with NVIDIA JetPack, Xilinx PetaLinux, hardware video encoders, CUDA, PREEMPT_RT, RAUC, Mender or SWUpdate
- Knowledge of DO-178C, IEC 61508 or ISO 26262
Full description
Who Are We?
At HyPrix, we're building attritable payload delivery systems for autonomy. Things that fly fast, we're enabling them with conscious software. Replicating the capabilities of expensive conventional frontline systems, we're building the cheapest micro and cruise missile systems on the planet. Built for a war of attrition, built for the era of software-defined warfare, built to cater to the front lines of battlefields where no man should stand in the future.
Learn more about us:
What You'll Do
The Embedded Software Engineer II – Sensors, Drivers & Embedded Linux connects the sensors, actuators and payloads of each HyPrix flight system to the flight software, and builds the Linux platform on the mission and payload computers.
The position holder works to the architecture that the Principal Engineer – Embedded/Firmware sets. Sensor fusion, GNC algorithms, RTOS scheduling, datalink protocols and secure boot are not in the scope of this role.
- Sensor drivers. Develop the driver for flight/perception sensors from its datasheet or ICD. Timestamp each sample at the interrupt or DMA completion, and synchronise to the PPS output where the sensor has one. Give each output a defined safe state at power-on, reset.
- Sensor configuration and data contracts. Write the start-up, alignment and mode sequences for each sensor, and keep each configuration in version control. Work with GNC team on the units, frames, signs, update rate, timestamp definition, latency and validity flags for each sensor data.
- Fault detection and BIT. Detect timeouts, stale data, frozen values, out-of-range values and loss of sync, and define the recovery for each fault. Write the power-on and continuous BIT for each sensor and peripheral, and the result to the health-monitoring framework.
- Sensor logs and test setups. Log the raw and validated data of each sensor. Build a bench test setup for each sensor with a reference source and fault injection, and verify the driver output against it before HIL tests.
- Peripheral, power and health drivers. Write the GPIO, ADC/DAC, PWM, timer and input-capture drivers to the HAL patterns, and the PMIC, voltage, current, temperature and load-switch drivers.
- Integration and bring-up. Bring up new sensors, avionics units, flight computer boards against their ICDs. Measure the worst-case latency, CPU load and bus use of each driver.
- Debug and root cause. Debug driver, kernel and boot faults with JTAG or SWD, SWO or ETM trace, kernel logs, logic and protocol analysers. Find race conditions, DMA cache faults and stack overflows from fault records, oops traces and crash dumps. Reproduce each intermittent fault on the bench, and close it with a recorded root cause.