Job description:- advocate for best practices for firmware development, including source code control, continuous integration, coding standards and unit testing.
- understand behavior of legacy code in order to troubleshoot bugs or extend features.
- define requirements for development and testing tools. Define new ways to use existing tools in order to improve development processes.
- select algorithms and design patterns considering embedded system constraints.
- break down user and technical stories into smaller tasks. Provide accurate estimates for task completion time. Assist others in breaking down stories and improving their estimation.
- work with product management to define user and technical requirements.
- read schematics and component datasheets to understand requirements for drivers implementation.