Job Title: Senior Software Engineer
Location:
Bangalore, KA, IN, 560048
Business Unit:
Instrumentation, Controls and Vision Sys
Posting Date:
Nov 27, 2024
Job Description:
Job Title: Sr Software Engineer
Location: Bangalore
Job Type: Full-time
Job Overview:
We are seeking a skilled Embedded Application Developer to join our dynamic team. The ideal candidate will design, develop, and maintain embedded software for a range of applications. You will work closely with hardware engineers, product managers, and other software developers to ensure the delivery of high-quality embedded systems.
Key Responsibilities:
- 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.
Requirements:
- Education: Bachelor’s degree in computer science, Electronics, or a related field.
- Experience:
- 6 - 8 years of experience in embedded software development.
- Strong proficiency in C/C++ and any HMI Application programming for embedded systems.
- Experience with real-time operating systems (RTOS), Linux OS and low-level system programming.
- Good Understanding of Linux internals like IPCs.
- Good Understanding of OOPS.
- Proficient in C++ 14 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, 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.
Soft Skills:
- 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.