About Cisco Meraki
At Cisco Meraki, we know that technology can connect, empower, and drive us. Our mission is to simplify technology so our customers can focus on what's most meaningful to them: their students, patients, customers, and businesses. We’re making networking technology that simply works for customers across the globe, managed and monitored through our cloud.
Our networking hardware is extremely popular, with nearly 10 million devices deployed globally. With this popularity come interesting engineering challenges. Our globally-distributed backend systems handle tens of billions of requests every day. We're looking for engineers to join us in solving the challenge of growing and evolving our existing services and our organization for the next level of scale and reliability.
At Meraki, we focus on building real products that delight our customers. We believe in fostering a positive culture by hiring, coaching, and empowering smart, helpful, humble people and providing opportunities for all employees to thrive. With the support of management, we constantly look within for ways to improve organizationally. We maintain a positive relationship with Cisco that gives us the stability and resources of a large company without sacrificing the atmosphere of a smaller one.
About the role
We are looking for a Senior Software Engineer (typically, at least 7 years of experience) to join the Network Access team, which is responsible for distributed systems that support advanced authentication and network policy enforcement. You’ll help build features and solve scalability and reliability challenges in these core parts of Meraki’s cloud offerings. Our main focus is scaling backend services that enable advanced network authentication and access policy enforcement on all Meraki devices. You’ll be joining a team of 5 experienced engineers with a diverse set of backgrounds spread across Berkeley, Boston and London, so we’re confident that you’ll be well-supported.
What you will do:
- Design, develop, scale, and maintain the backend services and infrastructure that form gateways to internet access for millions of devices around the globe.
- Learn the difference between authorization and authentication!
- Design systems and services that enforce access policies for users and devices on distributed networks.
- Help us refactor our monolith and re-envision our services as we move towards independent, containerized services.
- Collaborate with other globally-distributed teams of UX specialists, firmware engineers, SREs, and product managers.
- Contribute to a kind, inclusive team that’s enthusiastic about scaling distributed systems to simplify networking for our customers.
- Work on projects that span numerous domains — networking, databases, web app development, systems — to help our platform scale to handle enormous amounts of data.
- Make an immediate and significant difference to the hundreds of millions of users who rely on our access points, switches, security appliances, cameras and sensors every single day.
Here are some projects that the Network Access Team is working on:
- Refactoring frameworks/libraries and creating an internal API with a simple, unified interface for other developers to work with access policies.
- Scaling up our backend services to handle 10x the load they can today. You could help us rethink the way we do sharding and load-balancing and make our infrastructure elastic.
- Ensuring data consistency across our full stack -- 1) Meraki devices, 2) backend data services and 3) Meraki Dashboard - to enable a global customer base. Think of it as a large distributed storage system.
- Re-evaluating the data storage and architecture for our policy management system. It is built with an event sourcing pattern, and uses our custom time-series database, LittleTable to store application state.
- Building observability and troubleshooting tools and creating dashboards for our team, so that we can have visibility into the internals of our systems for debugging and identifying performance issues.
- Introducing exhaustive code quality metrics and standards as well as defining SLIs/SLOs for our services.
- You like thinking about whole systems — from trade-offs in design to edge cases and failure scenarios.
- Experience in analyzing, monitoring, and troubleshooting distributed systems.
- You thrive when you’re given freedom and autonomy.
- Experience in some form of backend software development at scale: distributed systems, databases, platform engineering, data processing or similar.
- Have a focused, organized approach to design, implementation, testing, and quality.
- Know your way around at least one of the languages we use: Scala, Ruby, Java, C/C++, Go. You embrace the idea of being language-agnostic.
- Experience with SQL and any RDBMS.
- Excellent communication skills (our team is distributed across several time zones).
- You’d like to see the true full stack nature of our products (from hardware to firmware to UI).
- Ability to attend meetings in the evening to facilitate communication with teams in California (not often).
Bonus points for:
- Interest in general security and/or data privacy and/or zero-trust networks is a plus.
- You’re excited about solving scalability challenges both on the organisational and technology levels.
- Personal projects or contributions to open-source.
- Mentorship or leadership experience.
We encourage you to drop us a line even if you don’t have all the points above. That's a lot of different areas of responsibility! You don’t need to have a background in computer networking or security either. We will help you pick them up because we believe that great engineers come from a diverse set of backgrounds.
To give you a taste of what you could be learning in your time at Meraki, our tech stack:
- Ruby (Rails, EventMachine, Unicorn), C++, Scala (Jetty, Akka, Netty), Go
- Git, SVN, Gerrit, Gitlab, Jenkins, TeamCity
- Postgres, LittleTable (our own time-series DB), ElasticSearch, Redis, RabbitMQ
- Debian, Ubuntu, OpenStack, AWS, Docker, Kubernetes, Ansible, Terraform and Vault by HashiCorp
- gRPC, Protocol Buffers
- ELK, Graphite, Grafana, Prometheus
- Maven, sbt, CMake, Artifactory, NGINX, FreeRADIUS
You will be working in a complimentary team where every team member is focused on doing what they love. For example, some team members are amazing at building web-services in Ruby but didn’t come in with as much C++/JVM knowledge.
Life at Cisco Meraki
We are passionate about building real products that our customers love. We are confident you will love it here.
As a Cisco Meraki employee you can expect:
- A supportive and fun environment and a team that values your contributions and helps you grow; regular career conversations.
- A lot of opportunities for professional and personal growth via employee-led groups and mentorship programs. Check out one of our groups — Women of Meraki on Twitter and Instagram.
- Meaningful and candid feedback on a regular basis following Radical Candor.
- Paid time off to volunteer (5 days a year), and much more.
- When the pandemic is over: trips to the HQ in San Francisco with stunning views of the Bay Bridge; delicious catered meals every day and fully-stocked kitchens and all you can eat snacks.
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.