Advocate for best practices for firmware development, including source code control, continuous integration, coding standards, and unit testing.
define internal processes and standards.- 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.- review and implement protocols for interacting with backend and mobile software.- read schematics and component datasheets to understand requirements for hardware driver implementation.
provide recommendations to hardware engineers for component selection based on firmware needs.- use hardware tools such as multimeters and oscilloscopes to bring up firmware on new boards.