Embedded Systems Engineer - Kernel at Eero
San Francisco, CA, US

The systems team at eero develops the critical software platform that brings eero products to life and supports application development. Team members work across the organization, creating the APIs, system services on eero devices. There are opportunities to work in kernel and device driver development or to focus on higher level software development. The team is small, values open discussion and curiosity, encourages people to ask questions about how things work, and collaborates on all aspects of the product. This is a fantastic opportunity to have a significant impact on all aspects of the product while working to build a world-class company that embodies great design, attention to detail, technological innovation, and quality.

Role & Responsibilities

  • Own and drive porting, debugging and testing of changes from latest Linux kernel to the current version eero ships with
  • Design, develop and test kernel subsystems and device drivers
  • Work with multiple vendors and HW team to integrate device drivers to our system
  • Triage and debug kernel level issues reported by developers, QA and users
  • Develop debugging tools to help track kernel panics, memory leak and other system instabilities
  • Build out a software platform that is flexible enough to span multiple hardware products
  • Collaborate with Customer Support to investigate field issues
  • Mentor other engineers in the team

Minimum Qualifications

  • Deep understanding of Linux OS internals, multi-threaded systems and interprocess communication
  • Experience in developing, debugging, or porting Linux device drivers
  • Experience with bringing up of Linux-based HW systems
  • Strong HW and SW troubleshooting and problem-solving skills
  • Good knowledge of work being done in www.kernel.org, submitted patches in various areas of Linux kernel to upstream
  • Solid working experience with C, C++ and Python
  • Solid experience with git, build systems, open source projects
  • 5+ years of experience in Embedded Linux system software development
  • Bachelor's degree or equivalent in Computer Science, Computer or Software Engineering, Electrical Engineering or related field

Desirable Skills

  • Experience designing large software systems based on embedded Linux or Android
  • Firmware development experience, preferably on ARM processors
  • Knowledge of networking concepts and protocols, including IEEE 802.11, TCP/IP, firewalls, and network security
  • Hardware technologies experience with USB, PCIe, ARM, SPI, I2C, I2S, JTAG, NAND, DDR SDRAM, PMU, Ethernet, Wi-Fi, Bluetooth, HDMI, DisplayPort
  • Proven track record with cross-functional teams

At eero we believe the foundation of home technology has been broken for far too long. After years of slowly waving laptops around in hopes of a better signal, we couldn’t wait any longer. So in 2014, we assembled a team of the brightest engineers and designers with a singular goal: never worry about WiFi again. And that’s what we’ve done. eero is easy to setup, blankets your home with WiFi, and intelligently adapts to your home and devices for max performance. But it does not stop there. Imagine if everything from home automation to health monitoring could tap into the connectivity, context, and intelligence provided by an eero system. Not everything has to be smart, as long as it’s connected to something that is.

We also offer competitive benefits like full medical, dental, and vision coverage, on-site lunches, unlimited and flexible PTO, nine weeks of parental leave, short-term and long-term disability, and contribution towards commute and parking.