About this role
Job Description:
We are seeking an experienced and motivated Software engineer to design, develop and test software for our real-time MCU’s. The ideal candidate will have deep expertise in embedded C/C++ programming and a strong understanding of embedded systems. This role requires close collaboration with hardware and application engineers to deliver robust, high-performance solutions that powers mission critical data centres, AI Servers and a wide array of Industrial applications.
Key Responsibilities:
- Software development: Design and develop high-quality, real-time software for TI ASM MCU families like AM1x and AM2x for a broad range of applications in segments like appliances, factory automation, datacenter, robotics & drones and edgeAI.
- Hardware-Software Integration: Work closely with hardware design teams to integrate firmware with new capabilities, validate system functionality and participate in board bring-up.
- Driver development: Write and maintain device drivers for the MCU internal peripherals and external communication interfaces (e.g., UART, I2C, SPI, CAN).
- Debugging and optimization: Use debugging tools like JTAG emulators, oscilloscopes and logic analysers to troubleshoot firmware, hardware, and system-level integration issues. Optimize firmware for performance, memory footprint, and power consumption.
- Validation and testing: Develop and execute comprehensive test plans and automated test scripts to ensure the software meets all functional and performance requirements.
- Customer Support: Provide technical support to application engineers and customers, assisting with firmware-related issues and implementation guidance.
- Documentation: Create and maintain technical documentation, including design specifications, firmware architecture, and test procedures.
- Continuous Improvement: Participate in code reviews and contribute to the improvement of software development methodologies and processes.
Required Skills and Qualifications:
- 2+ years of industry experience is software development on embedded devices.
- Bachelor's or master’s degree in Electronics/Electrical/Computer Engineering, or a related field.
- Strong proficiency in embedded C/C++ and familiarity with assembly language.
- Hands on experience working with RTOS’s like FreeRTOS, ThreadX and Zephyr
- Experience implementing industry-standard communication protocols like UART, I2C, and SPI.
- Experience with TI's Code Composer Studio (CCS), IAR, Keil and other relevant development tools.
- Familiarity with scripting languages like Python, JavaScript and ability to automate software development and test flows/methods.
- Knowledge of software development life cycle and experience using development tools like git, KlocWork, Unity Test Framework etc.
- Ability to read and interpret schematics and datasheets, with experience in hardware-software interaction and board-level debugging.
- Proficiency in using standard lab equipment and debugging tools.
- Strong analytical and problem-solving skills, excellent communication abilities, and a collaborative mindset.