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:
You are an ideal candidate if you:
- 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.
Bonus points for:
- 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.
- 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.