Job Description
In this position, you will be:
- Technically lead the designing, developing, reviewing, and maintaining embedded software products.
- Proactively lead all aspects of embedded software starting from pre-development, design prototyping, testing, and validation till maintenance.
- Plan and execute multiple project requirements with changing priorities.
- Review the code of junior developers to ensure that standard processes are followed in coding.
- Ensure optimal performance, reliability, and resource utilization.
- Communication Protocols: Implement and optimize communication protocols such as Ethernet, Modbus, or wireless technologies.
- Resolve firmware and software issues.
- Optimization and Performance tuning: Optimize code and algorithms for memory and processing efficiency.
- Improve system performance and response times.
- Documentation – Contribute to the creation and upkeep of various documentation materials, such as code comments, user manuals, and design documents.
- Security and Safety considerations – Implement security features and adhere to safety standards relevant to the industry
- Collaboration – Collaborate with cross – functional teams including hardware engineers, quality assurance, product managers, and solution architects.
- Participate in design reviews and project meetings.
- Experience with the use of JTAG debugging, logic analyzers, oscilloscopes, and other debugging techniques.
- Experience with software tools such as repository management (Git/Subversion), Jira, static analysis, etc.
- Continuous learning - Stay abreast of industry trends, evolving technologies, and standard methodologies in embedded development.
You have:
- Academic background in Bachelor’s Degree or above in Electronics Or Computer Science/Electrical Engineering or equivalent.
- 10 plus years of experience and extensive knowledge in architecture, design, and programming in an embedded systems environment
- Ability to drive end-to-end development of embedded systems to achieve varying levels of requirements with respect to power consumption, performance, and code size.
- Ability to identify root causes and resolve complex issues and bugs in firmware.
- Expert knowledge of developing modular software using C/C++ in an embedded platform.
- Experience working in Embedded Linux – Linux System Programming and Embedded Application development
- Experience with system management and industrial protocols (SNMP, Redfish, BacNet, ProfiNet, EtherNet/IP)
- Experience with RUST is an added advantage.
- Knowledge on board bring up is an added advantage
- Capable of understanding hardware/software interfaces and reading schematics
- Familiarity with communication protocols
- Experience in writing multi-threaded software, class libraries, uBoot, kernel, device drivers is desired.
- Experience in software estimation techniques, technically leading and guiding the team.
- Experience with CI/CD, static code analysis, unit testing tools, and cybersecurity aspects
- Exposure to working with multi-site global teams