Senior/Staff Software Engineer - Config Team

  • Location:
    London, United Kingdom
  • Alternate Location
    Remote in the UK
  • Area of Interest
    Engineer - Software
  • Job Type
  • Technology Interest
    Big Data, Analytics, Software Development, Testing
  • Job Id

About Cisco Meraki

The modern world runs on the Internet, and the Internet cannot exist without its underlying infrastructure. Meraki makes setting up, managing, and maintaining that infrastructure easier than it has ever been before. Meraki enables connectivity everywhere from neighbourhood cafes to renowned universities to airports to global hospitality groups operating thousands of sites.

Our devices are some of the most popular in the world: there are over 7 million devices online globally. This popularity comes with large scalability challenges: our backend handles more than 10 billion requests to our devices 24/7/365.

We maintain a collaborative relationship with Cisco that gives us the stability and resources of a larger company without sacrificing our startup vibe.

About the role

Every once in a while, a job comes along with a rare opportunity to be at the ground level of a brand new team. If you’ve been waiting for that kind of role this may be the job for you. 

Our main product is Meraki’s Dashboard. Via this dashboard, our customers can control their entire stack: access points, firewalls, switches, cameras, and other Meraki devices. 

We are looking for a Senior/Staff Software Engineer (typically with over 5 years of experience) to join the Config Team which belongs to our growing Cloud org. You will be designing new services and systems, working on scalability and resiliency challenges, and helping us build a new team. There's a lot of cross-org work as well as technical leadership and growth opportunities ahead. It’s a great change to join at the very beginning of this team, shape its culture and define the roadmap as well as the engineering culture on this team.

The Config Team is responsible for our config files generation, validation, and distribution systems. You can think of Meraki's configuration as the system for pushing and coordinating configuration files from our backend systems to each Meraki device at scale. Our main focus is to make these backend services more resilient and fault tolerant.

What you will do:

  • Play a key role in building the Config Team, encourage best practices, code quality metrics and standards as well as define SLAs/SLOs for the set of services you own.

  • Architect, develop, scale, and maintain the backend services and infrastructure that power config generation and distribution. We believe in ownership over the entire software engineering cycle.

  • Refactor monoliths into microservices, extract APIs and re-usable components and help us move towards containerisation.

  • Optimise and tune performance of the config rendering systems.

  • Collaborate with the neighbouring Network Access team as well as with other globally-distributed teams including UX specialists, firmware engineers, network support engineers, SREs, engineering and product managers.

  • You will have the opportunity to work on projects that span numerous domains — networking, databases, web app development, systems, and graph algorithms — to help our backend services scale to handle enormous amounts of requests.

  • You will make an immediate and significant difference to the hundreds of millions of users that rely on our access points, switches, security appliances, cameras every single day!

  • Contribute to our continual learning process. We rely on blameless post-mortems to learn from incidents in production to make our systems more robust.

About you

  • You care deeply about creating a fun and supportive team culture, where everyone is encouraged to grow and learn from a group with a diverse set of backgrounds.

  • You like thinking about systems and architectures — their edge cases, failure scenarios, and lifecycles. You’re interested and experienced in making systems more resilient and fault tolerant.

  • Experienced with Ruby/Rails. You’ll be making a lot of architectural/design choices specific to Ruby/Rails. You’re pragmatic when it comes to languages and technical decisions and embrace the idea of being language-agnostic.

  • You’d like to see the true full stack nature of our networking products (from hardware to firmware to backend to Web UI). You think about customer experience and can promote objectives that will significantly improve it.

  • Experienced with caching: how to design and structure multi-layer caches.

  • Data driven. Observability isn’t just a buzzword for you. Not only do you turn to metrics to triage issues, but also you create new dashboards/introspection tools to help other people answer questions.

  • Experience with improving complex systems, thoughtful about the urge to rewrite everything from scratch. You consider the tradeoffs between upgrading, incremental refactors and larger scale architectures.

  • Experienced with troubleshooting and debugging distributed systems triaging large lists of problems to concrete projects.

  • Excellent communicator. You’ll be collaborating with teams distributed across several time zones (including California). You use design documents and visualisations/data to prove your points and can get buy-in.

  • Experienced with migrations and software upgrades. You know how to roll things out safely.

Bonus points for:

  • Deep Postgres or other RDBMS experience. There’s a lot of room for PG optimisations.

  • Experience with NGINX is a nice-to-have. It would be useful while debugging NGINX and Unicorn queues.

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 either. We will help you pick them up because we believe that excellent engineers come from diverse backgrounds.

To give you a taste of what you could be learning in your time here, our tech stack:

  • Ruby (Rails, EventMachine, Unicorn), C++, Scala (Jetty, Akka, Netty), Go

  • Git, SVN, Gerrit, GitLab, Jenkins, TeamCity, Ansible

  • Postgres, LittleTable (our custom time-series database that stores 100 of TB’s of data and is written to millions of times a second), ElasticSearch, Redis, Vault by HashiCorp

  • Debian, Ubuntu, OpenStack, AWS, Docker, Kubernetes, Terraform 

  • gRPC, Protocol Buffers

  • ELK, Graphite, Grafana, Prometheus

  • Maven, sbt, Artifactory, NGINX

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 management 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.

  • 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.