Offers “Cisco System”

Expires soon Cisco System

Senior Software Engineer, Switching Platforms

  • San Jose, USA
  • IT development

Job description

  • Location:
    San Jose, California, US
  • Additional Location(s)
    San Francisco, California, US
  • Area of Interest
    Engineer - Software
  • Job Type
  • Technology Interest
  • Job Id

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 with ethernet switching chipsets (i.e. Broadcom, Marvell)
  • Have experience reading schematics and data sheets.

Bonus points for:

  • Experience writing device drivers.

  • Upstreaming Linux patches.

  • Experience with multi-threaded or parallel programming.

Make every future a success.
  • Job directory
  • Business directory