Benefits
- Health insurance
- 401(k) matching
- Paid time off
- Parental leave
Responsibilities
- Partner with hardware engineering during board bring-up to debug boot sequences, peripheral initialization, and device configurations
- Support manufacturing and operations teams to ensure production firmware quality and flash provisioning reliability
- Develop and maintain low-level drivers that enable secure, reliable, and fleet-wide deployments
- Design, develop, and maintain system-level services and daemons on eeroOS (embedded Linux) using Golang, Python, and C/C++
- Develop and optimize low-level platform components in C/C++ for eero devices, including system initialization, process management, and hardware abstraction layers
- Maintain and evolve the eeroOS distribution, including kernel configuration, package management, and system image builds
- Implement and debug networking features spanning L2–L4 (Ethernet, Wi-Fi/802.11, TCP/IP, mDNS, DHCP) within the platform layer
- Collaborate with firmware and radio teams on wireless subsystem integration and performance tuning
- Maintain and continuously improve CI/CD pipelines, build systems (Yocto/BitBake or equivalent), and developer tooling to accelerate velocity and code quality
- Develop automated testing frameworks for device software validation
- Analyze telemetry and diagnostics data from beta, dogfood, and production fleets to identify regressions and performance opportunities
- Drive root-cause analysis for field issues using remote debugging, log analysis, and device-level diagnostics
- Lead technical design reviews and mentor junior engineers on embedded platform best practices
- Contribute to architectural decisions that impact the full eero device portfolio
- The Connectivity team on eero focuses on platform software development for the operating system powering all eero devices, software build infrastructure used by feature teams, Smart Home Hub, Automation and Tooling
- A software development engineer on the platform team builds applications and features in Golang and Python across eero's operating system, maintaining and improving the eeroOS and build infrastructure
Requirements
- 3+ years of professional software development experience
- Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent work experience
- 2+ years of experience with embedded Linux or Linux-based platform development
- Proficiency in C/C++ and one scripting/systems language (Python or Golang)
Technologies
- Golang
- Python
- C/C++
- eeroOS (embedded Linux)
- Yocto
- BitBake
A Day in the Life
The Connectivity Platform Software Development team maintains the eeroOS across all hardware, builds features in Golang and Python, and upholds the operating system and build infrastructure used by multiple product teams. You will contribute to sustaining and evolving the platform that powers all eero devices, working across hardware, firmware, and software domains to deliver reliable, scalable solutions.
About the Team
The Platform Software Development team owns eeroOS, the embedded Linux based operating system powering all eero devices, along with the software build infrastructure, Smart Home Hub integration, and automation tooling used by feature teams across the organization. The team operates at the intersection of embedded systems and modern software engineering, delivering reliable, high-performance services on resource constrained networking hardware deployed in millions of homes. They also triage and resolve customer issues across production, beta, and dogfood deployments, collaborating with Cloud, Data, and Mobile app teams. For more opportunities, visit the careers page: Amazon.jobs Careers - eero hardware.
Preferred Qualifications
- Experience with Golang for platform and systems service development
- Knowledge of Linux internals: systemd, networking stack (netlink, iptables/nftables), filesystems, and process management
- Experience building systems for embedded targets (Yocto, OpenWrt, Buildroot, or equivalent)
- Experience with networking protocols (802.11, Ethernet switching, TCP/IP, mesh networking)
- Experience with Rust in systems programming contexts
- Familiarity with hardware debugging tools (serial consoles, JTAG) and reading device trees
- Experience with secure boot, firmware signing, or OTA update security
- Experience with fleet-scale device management and telemetry systems
- Familiarity with CI/CD for embedded targets (cross-compilation, hardware-in-the-loop testing)
- Experience working in resource-constrained environments (memory optimization, startup time reduction)
- Track record of debugging complex cross-layer issues across applications, kernel, and hardware