Early Career Software Engineer — Network Access Team, Distributed Systems

  • Location:
    London, England, United Kingdom
  • Area of Interest
    Engineer - Software
  • Job Type
    New Graduate
  • 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 neighborhood 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 positive relationship with Cisco that gives us the stability and resources of a larger company without sacrificing our startup vibe.

About the role

We are looking for an early-in-career Software Engineer to help build features and solve scalability and reliability challenges around Meraki’s Dashboard, the core web application and cloud infrastructure. From this dashboard, our customers can control their entire Meraki stack: access points, firewalls, switches, client devices, cameras, and more. 

You will be joining the Network Access team which is responsible for the core part of Meraki’s infrastructure — help people and organisations manage access to their networks. 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 experienced engineers, 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 power authorization, authentication and accounting of network connections.

  • Learn the difference between authorization and authentication!

  • Design systems and services that enforce access policies based on authenticated user/device identities.

  • Refactor monoliths into microservices and help us move towards containerisation. 

  • Collaborate with other globally-distributed teams including UX specialists, firmware engineers, SREs, engineering and product managers. 

  • Contribute to a kind, inclusive team that’s enthusiastic about simplifying networking products for our customers by scaling distributed systems.

  • 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 that rely on our access points, switches, security appliances, cameras every single day.

Here are some real examples of the work the Network Access Team is working on that might help you to get a better idea of what this job entails:

  • Refactor internal frameworks/libraries and APIs that provide a simple, unified interface for other developers when they work with access policies. 

  • We need to scale 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 (access policies) consistency across various Meraki devices, Cloud data services and Meraki Dashboard (web UI) to enable a global customer base.

  • Our policy management system is built on the top of the event sourcing pattern. Currently, we use LittleTable (our custom time-series database that stores 100 of TB’s of data and is written to millions of times a second) as an application state storage. We need to reevaluate LittleTable for this use-case and have a plan on how we evolve our architecture. 

  • Build great observability tools and create dashboards for our team, so we can have visibility into the internals of our system and figure out where the slow spots/memory leaks are. 

  • Introduce exhaustive code quality metrics and standards as well as define SLAs/SLOs for the set of services we own.

About you

  • You like thinking about systems — their edge cases, failure scenarios, and lifecycles.

  • Interested in backend/platform engineering or distributed systems or data processing.

  • Familiarity with at least one of the following languages: Scala, Ruby, Java, Python, C/C++, Go. You embrace the idea of being language-agnostic.

  • Basic familiarity with SQL.

  • You can design a domain model using your favourite OOP/FP language.

  • Excellent communication skills (our team is distributed).

  • Experience in debugging backend code.

  • You’d like to see the true full stack nature of our products (from hardware to firmware to UI).

  • Ability to travel (not frequently) to our HQ in San Francisco.

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.

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 diverse backgrounds

Please submit a motivation letter alongside your CV - we are really keen to know why you're interested in our role!

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

  • Ruby (Rails, EventMachine), Scala, C++

  • Jetty, Akka

  • Git, SVN, Gerrit, GitHub Enterprise, GitLab, Jenkins, Teamcity

  • Postgres, LittleTable, ElasticSearch, Redis

  • Debian, OpenStack, AWS, Docker, Kubernates

  • gRPC, Protobuf

  • ELK, Graphite, Grafana

  • Maven, sbt, Artifactory, NGINX, Vault by HashiCorp 

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. 

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

  • Trips to the HQ in San Francisco with stunning views of the Bay Bridge. You’ll spend your first couple of weeks in SF — we do onboarding there. 

  • Actionable and candid feedback on a regular basis following Radical Candor.

  • Delicious catered meals every day and fully-stocked kitchens and all you can eat snacks.

  • Paid time off to volunteer, and much more.

At Cisco Meraki, we don't just accept difference - it's one of our key values. Everybody In means we listen to each other's opinions. Everybody is accepted and valued here, and we are a team that works as one towards our goals. We recognize that diverse teams make the strongest teams, and we encourage people from all backgrounds to apply.

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.