Role Summary
As a Full Stack Software Engineer, you will design, build, and own end-to-end software systems that interface directly with energy hardware, edge compute platforms, and cloud services. You will work across the stack—from low-level systems programming on Linux-based devices to high-performance backend services and user-facing applications. This role requires strong systems thinking, excellent coding skills in modern systems languages, and a deep appreciation for reliability, safety, and performance in energy and industrial environments.
You will collaborate closely with power firmware, infrastructure, and data teams to deliver robust, production-grade software that operates in real-world energy systems.
Responsibilities:
- Architect, develop, and maintain full-stack software systems supporting energy and grid-connected products.
- Build high-performance backend services and APIs using C, Go, and/or Rust for control, data ingestion, and orchestration.
- Develop user-facing applications and internal tools that surface device health, telemetry, and system insights.
- Design and implement software that runs reliably on Linux-based edge devices as well as in cloud environments.
- Work with and improve Linux build systems (e.g., Make, CMake, Bazel, Yocto/Buildroot) for repeatable, reproducible builds.
- Integrate software with embedded systems, real-time data pipelines, and hardware control layers.
- Own software quality through testing, code reviews, CI/CD integration, and production monitoring.
- Collaborate cross-functionally to define system requirements, interfaces, and long-term technical direction.
- Mentor engineers and provide technical leadership on architecture, performance, and reliability.
Qualifications
- Bachelor’s, Master’s, or PhD in Computer Science, Electrical Engineering, or equivalent practical experience.
- 2+ years of professional software engineering experience, with demonstrated ownership of complex systems.
- Strong proficiency in C, Go, and/or Rust, with the ability to reason about memory, concurrency, and performance.
- Solid experience developing on Linux, including debugging, profiling, and systems-level development.
- Hands-on experience with Linux build systems such as Make, CMake, Bazel, Yocto, or Buildroot.
- Experience building and operating backend services, APIs, and data pipelines.
- Familiarity with modern software development practices: version control, CI/CD, testing, and code review.
- Strong communication skills and ability to work effectively across software, hardware, and infrastructure teams.
Bonus Qualifications
- Experience in the energy, power electronics, industrial, or embedded systems domains.
- Knowledge of real-time systems, distributed systems, or high-availability architectures.
- Experience with time-series data, telemetry systems, or control systems.
Work Environment
- Occasional travel (up to 20%) may be required, including international travel.
Please note: This role requires working on-site 5 days a week. We do not offer hybrid or remote options.