Technical Leader – Embedded Software Development
Emerson · Pune Division, Maharashtra, India
Free to search · AI fit score against your CV · tailor your résumé in one click
Emerson · Pune Division, Maharashtra, India
Job Description • 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 10+ 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