About this role
.Essential Job Responsibilities:
• Design/implement embedded real-time systems that meet rigorous functional safety and cybersecurity requirements
• Work in an agile development environment that uses Azure DevOps or similar tools
• Collaborate with cross-functional teams located in multiple geographical locations
• System/product architecture, system requirements, user interface requirements
• Allocation of system requirements to technical areas subsystems and requirements
• Plan and execute software development activities to address features planned in sprints
• Performing Object-Oriented Design and coding of real-time embedded software
• Participate in sprint planning, backlog refinement and retrospective sessions.
• Conduct code reviews and ensure the code quality meets the standard coding guidelines
• Manage code changes using version control tools such as Git
• Creation and execution of unit and integration tests for verifying firmware requirements
• Debugging software and hardware/software integration issues
• Prototyping software on custom hardware and performing low-level board bring-up
• Propose improvements using code optimization, refactoring and enhancement of real time performance
• Use scopes, meters, power sources, logic analyzers, sniffing tools etc. to debug issues on the target hardware boards
• Follow secure coding practices and perform static and dynamic code analysis to uncover vulnerabilities
• Understand cyber security requirements for the product driven by EU-CRA or similar cyber security product certifications and ensure those are addressed throughout the SDLC process.
Technical Skills:
• Must Have Skills / Competencies
• Minimum of 15+ years of embedded software development experience preferably on Embedded Linux platform
• Expert programming skills in C / C++ and shell scripting
• Hands-on experience in Device Driver development, building YOCTO image and device tree development
• Experience working on boot loaders (U-boot preferred) and a good understanding of Linux kernel internals will be an advantage
• Familiarity working with ARM or PowerPC processor architectures, FLASH memory, ADCs and RTC devices used in embedded systems
• Experience using communication protocols such I2C, SPI, CAN, RS-232/RS-485 or Modbus
• Understanding database management using Sqlite, JSON or similar methods
• Experience in developing and conducting unit testing using manual or automation method
• Experience in debugging software using GDB debugger or similar tools on simulated environment as well as hardware boards.
• Experience with tools such as JTAG or J-Link for board programming
• Hands-on experience in secure coding practices and understanding of open-source software licensing for cyber security compliance
• Knowledge and experience with agile development methodologies
• Experience working on Virtual environments such as VMWare or similar tools for code development
• Experience on DevOps using Azure and implementing CI/CD
• Experience in implementing data encryption to secure critical data and firmware residing inside the product
• Ability to identify security vulnerabilities in software by developing a deeper understanding of architecture as well as tools such as Blackduck and address EU-CRA requirements
• Good to have Skills / Competencies
• Experience working on embedded products used for temperature, pressure, electricity or gas measurement will be an added advantage.
• Experience in UML or similar modeling languages for software design and architecture development
• Knowledge and experience with RTOS as well as developing UI using QT framework
• Knowledge and experience with distributed version control such as (GIT, SVN etc)
• Knowledge and experience with static code analysis tools such as PC-Lint, Coverity or MISRA - C Std.
• Knowledge and experience with VS Code or similar IDEs for code development
• Experience in software build automation using QBS for cross-platform development
• Experience in developing multi-threaded, modular design on single/multi-core processors
• Experience implementing cybersecurity features and exposure to IEC62443 or EU-CRA compliance
• Hands-on experience using copilot tools for code development or unit testing to enhance productivity
• Experience in threat modeling using Microsoft Azure or similar tools will be an advantage
• Experience working in geographically distributed teams
Education: B.E/B. Tech in Instrumentation, Electronics & Telecommunication Additional Competencies
• Strong verbal & written English communication
• Strong analytical and problem-solving skills.
• Strong learning ability and experience in handling ambiguity
• Guide and act as a technical mentor for other members within the team