Senior Software Engineer, Build Systems
Meraki Software Engineers breathe life into our cloud-managed network-attached devices, which include switches, routers, wireless access, and security cameras. We use real-time telemetry from thousands of deployed networks spanning the globe to continuously improve the performance and stability of our products. We are passionate about building real products that our customers love.
As a Senior Software Engineer, Build Systems, you will provide strategic direction and logistical support for Meraki’s product development organization, focusing on functionality, simplicity, scalability, and availability of our build systems. You're driven by a strong desire to improve developer happiness, always keeping an empathetic ear out for developers’ day-to-day experience with tools and workflows and finding ways to improve these. You'll make incremental changes to quickly get a developer unstuck as well as propose and implement longer term changes that reduce technical debt and anticipate future needs.
RESPONSIBILITIES:
- Develop, maintain, and operate a modular and scalable build system for a multi-site product development team.
- Establish processes and tools to maintain code base integrity and ensure consistency of outcomes, including check-in validation rules, branch/merge processes, automated testing, and the use of static and dynamic analysis tools.
- Investigate and recommend evolution to the structure of the code base and build processes to shorten the developer feedback loop.
- Collaborate with the Site Reliability Engineering and Developer Tools teams to ensure scalability and availability of build systems, and the integration of its processes with the agile tool set used to track user stories and product defects.
- Influence and drive operational excellence and best practices within the organization.
YOU ARE AN IDEAL CANDIDATE IF YOU HAVE:
- Minimum of 7 years of relevant experience in the areas of development, build, and release engineering.
- Experience with development of modular build systems and tools for a scalable continuous infrastructure that supports product development in a multi-platform (x86, ARM, etc.) embedded software environment.
- Solid understanding of the integration between automated software testing and the build process.
- Experience with C/C++ compilers and toolchains.
- Experience with Linux and open source software.
- Experience with Build systems such as yocto, cmake, make, and autoconf.
- Strong scripting knowledge using shell, groovy, ruby, and/or python.
- Experience with distributed version control systems such as git, gitlab, and/or gerrit.
- Experience with Continuous Integration and Jenkins.
BONUS POINTS FOR:
- Experience with the use of containers in a build environment.
- User Experience and the ability to generate and communicate meaningful development metrics.
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.