Embedded Software Engineer - RL Research Responsibilities:
- Contribute effort to analyze, design, develop, and debug firmware, and embedded software including sensing and imaging systems.
- Understand and implement firmware on micro-controllers and SoCs, leverage peripherals, manage power consumption, support boot loaders, and schedule real-time tasks (RTOS).
- Collaborate in a team environment across multiple, research-focused, and engineering disciplines, making the architectural tradeoffs required to rapidly deliver firmware solutions.
- Support all phases of custom hardware development, including early architecture requirements definition, firmware and embedded system architecture, proof-of-concept implementation, selection of MCUs and tools, and board bring-up.
- Understand and drive implementation of embedded SW development good practices across teams and projects, including setting expectations, defining backlog, and tracking progress of contingent staff.
- Document and communicate learning, understanding, and problem solving to a wide range of audiences and disciplines.
- Interact closely with firmware, software, and hardware teams both project-specific and cross-functional to ensure that the platforms we are building will work well with other systems.
Minimum Qualifications:
- B.S. degree or equivalent experience in Computer Science, Electrical Engineering, or a related field.
- 10+ years of experience in embedded software development, or 7+ years with a M.S. degree.
- Experience with embedded software design and programming in C/C++.
- Experience with building drivers for custom hardware systems.
- Experience with synchronous and asynchronous serial protocols.
- Experience in the use of oscilloscopes, logic analyzers and protocol decoders.
- Experience with designing a firmware solution from hardware components or datasheets.
- Experience with register level and system debugging.
- Experience working with international manufacturing partners.
Preferred Qualifications:
- Proven track record of success in solving complex technical problems with breadth and depth, critical thinking and decision-making.
- Strong teamwork, collaborative, and cross-team communication skills.
- M.S. degree or equivalent experience in Computer Science, Electrical Engineering, or a related field.
- Experience working effectively with cross-site & cross-functional teams.
- AOSP experience, outside of apps and in the native environment.