Senior Embedded Engineer
Indexed description
Position Overview
We are looking for an engineer to develop and optimize firmware for embedded platforms, working closely with hardware and cross-functional teams. The role involves end-to-end development, performance tuning, and enabling intelligent features on edge devices with a focus on deficiency and reliability. You will also contribute to solving complex system-level challenges and building scalable, high-quality solutions.
Key Responsibilities
- Design & Develop: Build embedded firmware and software using Embedded C, C++, and Python.
- Driver Development: Design, develop, and test peripheral drivers for Linux/RTOS at the Kernel and User levels.
- Hardware Interfacing: Work on microcontrollers, peripherals, and hardware interfaces. Develop and integrate communication interfaces like UART, SPI, I2C, USB, PCIe, and Ethernet.
- Debugging: Troubleshoot embedded systems using tools like debuggers, oscilloscopes, and logic analyzers.
- Testing & Automation: Develop functional and unit tests, validate firmware functionality, and automate testing processes.
- Optimization: Analyze system performance and optimize code for memory and real-time constraints.
- Lifecycle Management: Participate in the full development lifecycle: design, coding, testing, and debugging
- Collaboration: Work with hardware and other software teams to solve system level issues.
- Prototyping: Create prototypes to validate design concepts.
- Edge AI: Collaborate on integrating AI/ML models into the embedded development lifecycle or edge devices.
- Core Skills: Strong programming skills in Embedded C/C++/Python.
- OS Experience: Working experience with Linux/RTOS.
- Experience: Minimum 3–5 years in embedded software/firmware development.
- Architecture: Good understanding of embedded systems architecture.
- Protocols: Experience with hardware interfaces like UART, SPI, I2C, USB, PCIe, and Ethernet.
- Problem Solving: Strong debugging and problem-solving skills.
- System Knowledge: Strong understanding of memory management and realtime constraints.
- Tools: Familiarity with development tools like compilers, debuggers, and version control (Git).
- Working experience or understanding of microcontrollers and processors like ARM, PIC, x86, DSP.
- Working experience or understanding of specific RTOS variations like Zephyr, VxWorks, FreeRTOS.
- Working experience or understanding with BSP development.
- Working experience or understanding with Linux distributions & build environments.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search