Job Description
Position Summary
We are seeking an experienced Embedded Software Engineer to develop application-layer software (user space) on Linux-based microprocessor systems. The primary focus will be implementing and maintaining applications for battery monitoring systems based on industrial communication protocols such as Modbus, CAN, and Ethernet-based industrial stacks.
Responsibilities:
- Design and develop user-space applications on Embedded Linux platforms for Energy storage system.
- New Board bring-up and hardware validation.
- Implement and maintain industrial communication protocols like Modbus RTU/TCP, CAN (user-space via Socket CAN), Ethernet-based protocols.
- Develop multithreaded, event driven applications.
- Debug communication issues using Wireshark, CAN analyzers, and protocol.
- Write clean and Maintainable code conforming to company standard.
- Debug communication issues using Wireshark, CAN analyzers, and protocol tools.
- Collaborate with cross-functional teams to develop, debug, and test product features.
- Provide comprehensive design, unit test, and integration test documentation artifacts.
- Drive continuous improvement in firmware development processes and methodologies.
- Participate in code reviews and technical discussions.
Qualification Requirements
Minimum Job Qualifications
- Strong experience with Embedded Linux (User Space Development).
- Strong in C (mandatory)
- Hands-on experience with ARM Cortex-A / MPU-based systems.
- Multi-threading, IPC, shared memory.
- Socket programming (TCP/UDP)
- Good understanding of Industrial Communication protocols like Modbus, CAN.
Preferred Qualifications
- Experience with software design principles, including functional design of software components and libraries, object-oriented concepts, and Agile methods.
- General understanding of computer security vulnerabilities and protection techniques.
- Well-developed cultural and communications skills.
- Knowledge of source code version control tools like Git.
- Experience working with and building Yocto for embedded devices.
- Experience with TI microprocessors.
Education and Certifications
- Bachelor's degree in Computer Science, Engineering, or equivalent work experience. Advanced degree preferred.
Physical Requirements
- No special physical requirements.
Environmental Demands
- No special environmental demands.
Travel Time Required
- Occasional travel may be required.