Firmware Development Engineer, Sr. Staff
BS/BEng in Electrical, Computer Engineering, or Computer Science (or equivalent professional experience) with 5 years' experience in embedded firmware development Self-starter who takes initiative and brings technical leadership Proficient writing and debugging C and assembly Driver development experience in RTOS or OS Kernel environments Demonstrated development experience with embedded OSes such as Zephyr, eCos, uC/OS or FreeRTOS Experience developing for pre-silicon environments including simulators and FPGA emulation Experience defining interprocessor communication interfaces between embedded controllers and the platform Familiarity with ARM v8 architecture. Development experience for a ARMV8 platform is a plus. Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 6+ years of Software Engineering or related work experience. OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 5+ years of Software Engineering or related work experience. OR PhD in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience. 3+ years of work experience with Programming Language such as C, C++, Java, Python, etc. Drive the firmware design, implementation and verification, in pre-silicon and post-silicon environments. Actively engage with open-source communities to contribute support for processor architectures, device drivers, and firmware features Assist in identifying skills requirements and in hiring engineers, collaborating with other teams on platform bring-up/debug/diags, firmware lifecycle, etc. Works independently with minimal supervision. Decision-making is significant in nature and affects work beyond immediate work group. Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc. Has a moderate amount of influence over key organizational decisions (e.g., is consulted by senior leadership to make key decisions). Tasks often require multiple steps which can be performed in various orders; extensive planning, problem-solving, and prioritization must occur to complete the tasks effectively.