Embedded Software Engineer
Job description
About the role
This position operates at the intersection of firmware and hardware, delivering reliable on-device software for recording, sensors, storage, and power management. Engineers partner with hardware teams to define system interfaces and ensure devices operate consistently across diverse conditions.
Software engineers turn product ideas into working code. Engineers work in small teams, review each other's work, and ship in small batches. Most teams follow agile practices such as sprints and daily standups. Engineers also write tests, fix bugs, and improve performance. The field values clear communication as much as technical skill. Engineers spend part of every week on planning, code review, and debugging, not just writing new code. The ability to explain a technical decision in plain words separates strong engineers from the rest.
Key facts
What you'll do
Control recording, sensors, storage, and power through firmware that remains stable across long sessions.
Collaborate with hardware engineers to evaluate parts, define interfaces, write sensor drivers, and complete board bring-up.
Analyze open device problems, prototype alternatives, observe real behavior, and influence the build roadmap.
Maintain the on-device API and protocols so the application and cloud teams can integrate reliably and keep documentation current.
Create firmware development tooling and automation that lets the team move quickly while scaling toward production.
Requirements
Deliver embedded software to real users on physical hardware for multiple products.
Write C/C++ and Python code, work with embedded Linux device drivers and boot processes, and target bare-metal or RTOS firmware.
Read datasheets, bring up boards, develop new sensor drivers, and weigh hardware options against tradeoffs.
Use oscilloscopes, logic analyzers, and debug tools to inspect firmware behavior and validate builds.
Prioritize reliability across locations and conditions, testing thoroughly and measuring results accurately.
Build side projects that demonstrate learning and hands-on problem-solving.
Hold a Bachelor of Science in EE, CE, CS, or show comparable real-world experience.
Nice to have
Work with camera interfaces like MIPI CSI-2, DSP/ISP, and video pipelines handling multiple streams.
Develop MCU firmware, including bootloaders and RTOS such as Zephyr or FreeRTOS.
Implement connectivity using BLE, Wi-Fi, and USB protocols.
Design SDKs and APIs that other teams consume.
Support OTA updates, device telemetry, and fleet management.
Practice CI/CD and automate tests for firmware and calibration.
Ship wearable or consumer hardware and collaborate closely with hardware and manufacturing partners.
Practical notes
The role is based in Menlo Park, California, requiring on-site presence. Compensation aligns with the stated range for this Series B startup. Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
Firmware and hardware teams collaborate closely in a fast-growing startup that ships device interfaces used across fleets. Engineers build and maintain tools for reliability, measurement, and rapid prototyping. The technology stack spans embedded Linux, RTOS, and bare-metal microcontrollers. The role emphasizes thorough testing and learning through real-world prototypes.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets.