Embedded Systems & Firmware Engineering
Embedded Linux & Firmware Engineer (AI-Assisted Development)
We are looking for a proactive Embedded Linux & Firmware Engineer with 2 to 5 years of experience to join our core engineering team.
About openecore
openecore (Open Embedded Core) is a technology company in Bengaluru working across software, AI, embedded systems, IoT, edge computing and SaaS. We don’t just write software — we engineer working technology: products and systems that work in the real world.
About the role
We are looking for a proactive Embedded Linux & Firmware Engineer with 2 to 5 years of experience to join our core engineering team. This role bridges low-level hardware schematics, firmware bring-up, and Linux/Android OS development, with a forward-looking focus on AI-assisted engineering productivity. You will be responsible for board bring-up, device drivers, bootloaders, and system-level debugging, while actively leveraging modern AI-assisted development tools (such as GitHub Copilot, Cursor, LLM coding assistants, and automated static analysis tools) to accelerate firmware scaffolding, automate unit test generation, parse complex datasheets, and root-cause intricate system bugs.
Responsibilities
- Board Bring-Up & Bootloader Porting: Configure, port, and customize bootloaders (U-Boot, Little Kernel) for new silicon targets; validate power rails, clocks, and pin multiplexing against hardware schematics.
- Driver & OS Development: Design and maintain Linux kernel drivers across common peripheral interfaces (I2C, SPI, UART, PCIe, USB, GPIO, MIPI) and configure Linux Device Trees (.dts/.dtsi).
- AI-Accelerated Engineering: Integrate LLM-assisted workflows into daily development:
- Accelerate the generation of driver boilerplate, hardware register bitmask definitions, and HAL skeletons.
- Rapidly ingest and query voluminous chip datasheets, reference manuals, and register specification tables using AI tools
- Use AI assistants to draft and automate comprehensive C/C++ unit tests, mocking frameworks (e.g., Google Test, Ceedling, CMock), and automated regression scripts.
- Use AI to assist in decoding cryptic kernel panics, register dumps, and trace logs.
- Linux & Android Integration: Configure kernel subsystems, build embedded distributions using Yocto Project or Buildroot, and integrate Android HAL and native service layers.
- Lab Bench & Silicon Debugging: Debug communication protocols, timing violations, and system lockups using hardware bench tools (JTAG/SWD, Logic Analyzers, Oscilloscopes).
- Memory & Stability Profiling: Trace memory leaks, buffer overruns, race conditions, and kernel crashes using GDB, Valgrind, AddressSanitizer (ASan), and Linux tracing tools (ftrace, perf).
Qualifications and skills
- Experience: 2 to 5 years in embedded systems, Linux kernel/BSP development, or firmware development
- Languages: Proficiency in C (required) and working knowledge of C++ and scripting (Python or Bash).
- AI-Assisted Development Tools:
- Active, hands-on experience using generative AI coding assistants (e.g., GitHub Copilot, Cursor, Claude Code, or OpenAI/local LLM tools) for embedded coding, code refactoring, and documentation.
- Demonstrated ability to leverage AI for datasheet parsing, register configuration synthesis, and test case generation while maintaining critical engineering judgment to review and catch AI hallucinations.
- Prompt engineering techniques tailored for low-level systems (e.g., feeding register maps, protocol timing constraints, or error logs to diagnose issues).
- Linux Internals & Drivers: Strong understanding of Linux OS architecture: memory management (DMA, virtual memory), concurrency primitives (mutexes, spin locks), interrupt handling (top/bottom halves), and character/platform drivers.
- Hardware & Schematics: Ability to read schematics, component pinouts, and timing specifications to guide board bring-up and firmware design.
- Lab Debugging: Hands-on experience with hardware debuggers (JTAG / SWD via OpenOCD, J-Link, or Lauterbach) and signal analyzers (Logic Analyzers, DSOs).Memory Analysis: Solid background isolating stack corruption, heap leaks, and pointer faults with GDB, Valgrind, or Sanitizers.
- Memory Analysis: Solid background isolating stack corruption, heap leaks, and pointer faults with GDB, Valgrind, or Sanitizers.
- Familiarity with the Linux/Android BSP / HAL stack (AIDL, HIDL, binder IPC, native daemons).
- Experience with build systems like Yocto (BitBake) or Buildroot.
- Exposure to automated CI/CD pipelines integrating AI code review or static analysis tools.
- Experience with RTOS environments (Zephyr, FreeRTOS).
- Bachelor’s or Master’s degree in Electronics & Communication Engineering (ECE), Electrical Engineering (EEE), Computer Science (CSE), Embedded Systems, or a related technical discipline.
