Device Software Engineer, Gateway/Embedded Linux
Job description
About the role
SPAN is enabling electrification for all, and this role owns the firmware and embedded Linux systems that make our hardware intelligent, reliable, and secure. You will design, build, and maintain the software stack that runs on our energy management devices, from bootloaders and RTOS services to applications in Rust and Python. You will collaborate closely with hardware, product, and cloud teams to deliver features that improve resiliency, enable smart energy features, and reduce carbon emissions. This position requires strong ownership of complex integrations across communication interfaces, power systems, and third party networked devices. You will be responsible for writing code that directly impacts customer experience and grid interaction in real world environments.
Key facts
What you'll do
- Define and implement firmware and system services for SPAN's energy management hardware, ensuring robust performance across diverse deployment scenarios.
- Own the end to end lifecycle of embedded software features, from requirements and architecture through implementation, testing, and field updates.
- Build and maintain integrations with smart networked third party home energy devices, coordinating with external partners and defining system architecture.
- Develop system services and applications in Rust and Python for embedded Linux, while maintaining C and C++ code for resource constrained microcontrollers.
- Work across regulatory frameworks that govern electrical systems, enabling market driven features and new capabilities through software.
- Deliver software that unlocks new market segments by aligning product strategy with certification and compliance requirements.
- Create diagnostic and command line tools that help validate hardware behavior and streamline field troubleshooting for support teams.
- Collaborate with product, mobile software, and cloud teams to ensure seamless behavior across the full SPAN technology stack.
- Drive decisions and resolve technical tradeoffs using data, experimentation, and close partnership with cross functional stakeholders.
- Mentor new engineers and establish best practices for code review, testing, and reliability in embedded environments.
- Write low level drivers and system software for standard electrical communication interfaces such as UART, I2C, and USB.
- Ensure system resilience and uptime through careful memory management, multiprocess design, and multithreading strategies.
Requirements
- 5 or more years of experience writing software for a hardware device, primarily in a Linux environment, using Rust, Python, and/or C/C++.
- Strong fundamentals in modern software design with awareness of concerns like multiprocess architecture, multithreading, and memory management.
- Experience working with standard electrical communication interfaces like UART, I2C, USB, and similar protocols.
- Exceptional interpersonal communication and collaboration skills, with the ability to build trust and drive decisions to resolution.
- Track record of taking ownership of projects and willingness to help others with theirs, from design and code review through to mentorship of new employees.
- Comfort working in regulated environments where standards such as UL 60730, ISO 26262, and IEC 61508 may apply.
- Demonstrated ability to translate product requirements into reliable firmware and system services that meet certification and quality targets.
- Commitment to writing safe, maintainable, and testable code that supports long term operation in the field.
Nice to have
- Experience with functional safety processes and standards such as UL 60730, ISO 26262, IEC 61508, and UL 1998.
- Experience writing higher level system or application software, including diagnostic command line tools and the application side of communication interfaces.
- Wireless technologies like LTE, WiFi, Thread, and Zigbee.
- Hands-on experience with electronics lab equipment, including oscilloscopes, logic analyzers, and power supplies.
- Experience with clean energy hardware in a multidisciplinary environment, working alongside solar, storage, and EV technologies.
Practical notes
This role is full time based in San Francisco, with the expectation of regular onsite collaboration at our headquarters in the vibrant SoMa neighborhood. No specific working hours are mandated, but the position requires availability for collaboration across time zones and participation in standard industry events. Travel may be required to support customers, partners, or regulatory engagements as needed. Candidates must be authorized to work in the United States, and there are no paid visa sponsorship arrangements available for this role. The position reports to the Embedded Applications team within the broader SPAN strategic organization.