ABOUT BASE
Base is America’s next-generation power company. We’re rebuilding the foundation of modern civilization–electricity–by deploying a vast network of distributed batteries that is transforming today’s fragile, centralized grid into a resilient and abundant system. We are engineers, operators, and creatives solving some of the most complex, interdisciplinary challenges of our time.
ABOUT THE ROLE
Base is building software that coordinates computing across physical devices deployed in homes and on the grid. We're hiring a Software Engineer to build the software that runs on those devices. It collects telemetry, runs compute tasks, and reports state back to our central systems, and it has to stay reliable, secure, and fast out in the field.
This isn't a firmware role. You'll write application software that runs on deployed hardware. You'll own it end to end: learning what the hardware and field networks can actually handle, designing communication protocols that hold up when things go wrong, and shipping updates to a live fleet safely.
You'll work with hardware engineers who know what the devices can do, infrastructure engineers building the backend that coordinates them, and product teams who depend on computing that works at the edge. Your software is what connects the devices to the cloud, so it needs to be efficient, resilient, and easy to maintain.
WHAT YOU'LL DO
- Design and implement core device software that runs reliably on thousands of deployed devices with >99.5% uptime, reducing software-related incidents through improved error handling, telemetry, and observability.
- Build robust device-to-cloud communication protocols that handle network interruptions, packet loss, and latency without data loss, ensuring state consistency across distributed devices.
- Create safe, rapid deployment infrastructure and tooling that allows the team to push updates to devices in the field with clear rollback mechanisms and health monitoring.
- Develop telemetry systems that collect the right data to diagnose problems without being bandwidth-heavy or privacy-invasive, enabling remote debugging and system understanding.
- Work within hardware constraints (memory, CPU, power, storage) and design software that respects physical limits while maximizing functionality and efficiency.
- Collaborate with hardware engineers to understand device capabilities and limitations, and translate those into sound architectural decisions.
- Partner with infrastructure teams on device-to-cloud sync protocols, authentication, and secure communication.
- Ship code that is tested, reviewed, monitored, and maintainable — treating edge software with the same rigor as backend services.
WHAT YOU'LL BRING
- 3+ years of production software experience on physical devices, IoT systems, or embedded systems (not firmware, but software running on devices)
- Strong experience in C, C++, Rust, Go, or equivalent systems languages
- Deep understanding of networking, HTTP/REST APIs, and device communication protocols
- Experience building software that handles unreliable networks, offline states, and eventual sync
- Familiarity with Linux or equivalent operating systems at the system level
- Understanding of battery life, memory constraints, and performance optimization on resource-constrained hardware
- Comfort owning backend device software end-to-end: development, testing, deployment, and monitoring
NICE TO HAVES
- Experience with real-time or safety-critical systems
- Background in automotive, robotics, industrial IoT, or energy/utilities
- Experience with OTA (over-the-air) updates and device management platforms
- Familiarity with containerization or lightweight runtimes (Docker, systemd, etc.)
- Experience with gRPC or other RPC frameworks for device communication
- Exposure to cryptography and secure communication on devices
- Experience with distributed tracing and understanding system behavior at edge scale
ABOUT THE TEAM
Base is solving one of the hardest…