Design, develop, and maintain embedded software using C, C++, Embedded C, and assembly.
Develop Board Support Packages (BSP) and integrate kernel drivers for custom hardware platforms.
Lead firmware development efforts and manage system-level debugging and testing.
Collaborate closely with hardware, software, and QA teams for successful integration.
Optimize system performance and resource usage across platforms.
Document technical design, code, and deployment processes.
Ensure adherence to development standards, safety protocols, and certification requirements.
Mentor junior developers and share best practices.
Expertise in embedded programming (C, C++, Embedded C, Assembly).
Experience with Linux kernel, device drivers (I2C, SPI, UART, USB, Ethernet).
Hands-on experience with RTOS, embedded Linux, and firmware update frameworks.
Strong grasp of debugging tools (JTAG, GDB, logic analyzers, oscilloscopes).
Solid understanding of communication protocols: CAN, LIN, Bluetooth, WiFi, BLE, Zigbee.
Proficiency in version control systems (Git, SVN) and build tools (Make, CMake, Yocto).