Senior Software Engineer, Platform Bring-up (Embedded Linux)
Location:
San Francisco , California
Posted:
September 23, 2017
Reference:
1201646
Senior Software Engineer, Platform Bring-up (Embedded Linux) San Francisco

Apply directly on Meraki's job page: http://grnh.se/86khmq1
Meraki Software Engineers breathe life into our cloud-managed networking devices, which range from switches, routers, and wireless access points to desktop phones and security cameras. We leverage real-time telemetry from thousands of deployed networks spanning the globe to continuously improve the performance and stability of our products.
Platform Bring-up Engineers take the lead in building new Meraki products by integrating everything from bootloaders to web servers on prototype hardware. Our device firmware is built on Linux and open-source software. We work individually and in small teams to release several new products each year.
As a Senior Software Engineer focused on platform bring-up, you will:
  • Own projects from block-diagram concepts, to prototype boards that don't boot, all the way to shipping product.
  • Collaborate with our Hardware Engineering team on component selection and high-level architecture for new Meraki products.
  • Collaborate with our manufacturing partners to develop secure, reliable, and scalable manufacturing processes.
  • Integrate vendor board support packages and software development kits with our firmware and build system.
  • Develop, port, and debug Linux device drivers.
  • When things don't go quite as planned-a board doesn't boot, an LED doesn't light, a fan doesn't spin-use a JTAG debugger or logic analyzer or work with the hardware team to debug the problem.
  • Collaborate with other Platform Bring-up Engineers across product teams to continually improve our firmware design, development, and deployment practices.
You are an ideal candidate if you:
  • Have 3+ years professional experience programming in C or C++.
  • Have strong systems and networking foundational knowledge (systems architecture, memory hierarchy, storage subsystems, LANs, routing).
  • Have expert knowledge of embedded systems development concepts, including cross-platform development and build tools (GNU toolchain, OpenWRT, buildroot, Yocto), bootloaders (U-Boot, coreboot, UEFI), kernel configuration, device drivers, device trees.
  • Know common bus protocols like I2C, SPI, and MDIO.
  • Are comfortable using network protocol analyzers, logic analyzers, hardware debuggers, and source-level debuggers to troubleshoot problems at all layers of the stack.
  • Have experience reading schematics and data sheets.
Bonus points for:
  • Experience writing device drivers.
  • Upstreaming Linux patches.
  • Knowledge of wireless protocols (e.g., 802.11, Bluetooth).
  • Experience with multi-threaded or parallel programming.
  • Experience with Ethernet switch chips, crypto acceleration, or hardware offload engines.
  • Knowledge of web technologies: databases, high-level languages (Ruby, JavaScript), frameworks (Rails, React), and architectural patterns.

A little about us:
We are one, big, techie, employee tribe that changes the world while having fun.

Know someone who would be interested in this job? Share it with your network.