Job Description
Develop real-time embedded software for production consumer products on a range of silicon platforms, mainly ARM based.
Involve/Lead product/system requirement document review and analysis, feasibility study and proof of concept.
Involve/Lead software architecture and high-level design, as well as improvement of robust solutions and resolutions of technical challenges across projects/matrix structure.
Responsible for low-level design, implementation/coding and software testing (unit/component/product level).
Involve in continuous integration (CI) infrastructure/environment setup.
Act as subject matter expert (SME) in specific domain, disseminating knowledge, guiding and mentor engineers in methodology, best practice and standards.
Proactively identify technical risks within projects and influence engineering teams in their resolution.
Challenge and develop best practice and process improvements within software team and across the wider RDD function.
Job Requirement
• Bachelor Degree in (Electrical/Electronics/Telecommunication/Computer Engineering) or equivalent.
• Software development experience in requirement analysis, architecture, design, coding and testing of embedded system.
• Experience with C / C++, UML, Python.
• Experience in embedded real-time software engineering, e.g. FreeRTOS.
• Good knowledge of MCU/MPU architecture and its common peripherals.
• Experience in configuration and use of sensor devices over I2C, SPI, UART with DMA.
• Experience in on and off target test harness, such as Ceedling, Behave, etc.
• Good understanding of software development life cycles (Agile) and basic electronics hardware (interface to software systems).
• Familiar with embedded development tools (emulators, debuggers, analysers, oscilloscopes, etc) as well as configuration management tools and concepts.
• Knowledge of the Atlassian suite (JIRA, Confluence, bitbucket) would be an advantage.
• Excellent analytical and problem solving ability.
• Excellent communication skills (written and verbal); fluent in spoken and written English
• Independent and reliable, able to work with others within a scrum team, to ensure that the whole team succeeds in its goals.
• For a highly experienced candidate, we expect excellent technical leadership skills and the ability to influence the work of others. Experience in over sighting high complexity software development projects is an advantage.