Firmware Engineer

New York 9 days agoFull-time External
Negotiable
We are seeking a highly motivated Firmware Engineer to design, develop, and optimize embedded software for our next-generation products. The ideal candidate has strong experience in low-level programming (C/C++), microcontroller/SoC development, and hardware bring-up, with a proven ability to collaborate with cross-functional teams to deliver robust and efficient firmware solutions. This role is a full-time onsite position in Menlo Park, CA. Position Overview We are seeking a highly motivated Firmware Engineer to design, develop, and optimize embedded software for our next-generation products. The ideal candidate has strong experience in low-level programming (C/C++), microcontroller/SoC development, and hardware bring-up, with a proven ability to collaborate with cross-functional teams to deliver robust and efficient firmware solutions. This role is a full-time onsite position in Menlo Park, CA. Key Responsibilities • Design, develop, and maintain firmware in C/C++ for microcontrollers, SoCs, and embedded platforms. • Implement and optimize device drivers for hardware peripherals (SPI, I2C, UART, USB, CAN, Ethernet, GPIO, ADC/DAC, PWM). • Integrate and configure RTOS or bare-metal firmware. • Perform board bring-up and hardware validation, working closely with electrical engineers. • Debug and analyze firmware/hardware issues using oscilloscopes, logic analyzers, and JTAG/SWD. • Develop secure bootloaders and update soluions • Write and maintain unit tests and automated test scripts for firmware validation. • Collaborate with cross-functional teams (hardware, software, QA, systems engineering) to deliver products on schedule. • Document firmware architecture, APIs, and design decisions for maintainability. Qualifications • Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science • 5+ years of experience in embedded firmware development. • Strong proficiency in C/C++ and Python. • Experience with ARM Cortex-M, RISC-V, or similar MCU/SoC architectures. • Familiarity with RTOS and bare-metal programming. • Hands-on experience with hardware interfaces (SPI, I2C, UART, USB, BLE, Wi-Fi, etc.). • Proficiency with debugging tools (JTAG, GDB, oscilloscopes, logic analyzers). • Experience with version control (Git) and CI/CD pipelines.