Senior Embedded Software Engineer – Camera at Cisco Meraki
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.
The camera team is a small, fast-moving team building security cameras with a unique edge-storage architecture. The Meraki MV system is powerful, secure, and does not rely on any on-premise servers, making it easy to deploy and scale from one to hundreds of cameras per site. Today, cameras are mainly used for security, but what if they could be used for more? Imagery from a camera is information that can solve a problem or offer an alternative insight. MV cameras blend the best of cloud and IoT technology, making it simpler and easier for customers to use the camera as a sensor.
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 5+ 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 image sensors, GPUs, ISPs, DSPs, h.264 and other video encoding technologies.
Cisco is an Affirmative Action and Equal Opportunity Employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, gender, sexual orientation, national origin, genetic information, age, disability, veteran status, or any other legally protected basis. Cisco will consider for employment, on a case by case basis, qualified applicants with arrest and conviction records.
At Cisco Meraki, we’re challenging the status quo with the power of diversity, inclusion, and collaboration. When we connect different perspectives, we can imagine new possibilities, inspire innovation, and release the full potential of our people. We’re building an employee experience that includes appreciation, belonging, growth, and purpose for everyone.