Experience
8 - 12 yrs
Job Location
Bengaluru, India
Vacancy
1
Designation
Software Development Engineer
Job Type
Not specified
Job Description
- Design and Development: Design, implement, and maintain embedded software for various platforms, including microcontrollers, microprocessors, and embedded operating systems.
- Testing and Debugging: Write test cases, perform debugging, and carry out hardware/software integration testing to ensure product functionality and reliability.
- Code Optimization: Optimize embedded software for performance, memory usage, and power consumption.
- Documentation: Create and maintain detailed documentation for system architecture, interfaces, and user manuals.
- Cross-Functional Collaboration: Work with hardware and software teams to define system specifications, develop drivers, and manage communications between system components.
- Compliance: Ensure software adheres to industry standards such as MISRA, or similar, and follows best practices for secure coding.
- Troubleshooting: Investigate and resolve issues related to embedded software and real-time systems.
- Continuous Improvement: Participate in code reviews, system design meetings, and propose improvements to the existing systems.
- Education: Bachelor s degree in computer science, Electronics, or a related field.
- Experience:
- 8 - 12 years of experience in embedded software development.
- Strong proficiency in C, C++ and any HMI Application programming for embedded systems.
- Experience with Linux OS and low-level system programming.
- Experience with Camera streaming applications like gstreamer.
- Good Understanding of yocto build system, cmake.
- Good Understanding of Linux internals like IPCs.
- Good Understanding of OOPS.
- Proficient in C++ 11 and above, STL, D-Bus, Call back functions, multithreading.
- Develop custom C++ software code, debugs, troubleshoots, and resolves software and hardware compatibility and operability issues
- Familiarity with hardware peripherals like I2C, SPI, UART, CAN, etc.
- Experience with debugging tools like JTAG, logic analyzers, or oscilloscopes.
- Experience with software version control (Git, SVN).
- Skills:
- Strong understanding of embedded systems, microcontrollers, and microprocessors.
- Knowledge of communication protocols such as CAN-J1939, LIN, Ethernet, or Modbus.
- Familiarity with hardware abstraction layers and device drivers.
- Experience with build tools like Make or CMake.
- Desirable:
- Exposure to MISRA standards and functional safety requirements (ISO 26262).
- Experience with ARM architecture and working with hardware simulation tools.
- Familiarity with Agile software development processes.
- Knowledge of signal processing, AI/ML applications in embedded systems is a plus.
- Strong problem-solving skills and attention to detail.
- Excellent verbal and written communication skills.
- Ability to work independently as well as in a team-oriented environment.
No Referrers Available
There are currently no referrers available for this job. You can still apply, will let you know once there is any referrer available.