Lead / Staff Full Stack Ruby on Rails Software Engineer (Backend Focus)
Location: Remote - US only
Job Type: Full time
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 ever before. Look behind the cash register at your favorite cafe, or on the ceiling at the grocery store, and you’re likely to see our presence. Whether it’s one cafe or a thousand, a kindergarten or a college campus, a hotel or a hospital, Meraki connects them.
Every day Merakians have a big impact. As you’re reading this there are over 11 million Meraki devices serving hundreds of millions of clients, and this number grows every day. This popularity comes with large scalability challenges: our backend handles more than 10 billion requests daily..
We maintain a collaborative relationship with Cisco, giving us the stability and resources of a larger company without sacrificing our startup vibe.
About the role
This is a great opportunity to be a founding member of a brand new team. If you’ve been wishing for a role where you can steer the roadmap and shape how your team operates, this may be the job for you.
We are looking for a Tech Lead/Staff Software Engineer (typically with 8+ years of experience) to join the Config Team. You will be designing new services and systems, working on scalability and resiliency challenges, and helping us build this new team. There's a lot of cross-org work as well as technical leadership and growth opportunities ahead.
“What are Configs?” you may ask. In a nutshell, the “config” comprises all configurable aspects of a Meraki device. It’s very important that they be correct so devices behave the way their owners intend. They also need to be fast to generate, so changes in the cloud propagate to devices quickly. Finally they must be safe, so Meraki engineers can make changes without fear of compromising their correctness or performance. This team’s 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 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 containerization.
- Optimize and tune performance of the config rendering systems.
- Collaborate with the neighboring Cloud Services team as well as with other globally-distributed teams including UX specialists, firmware engineers, network support engineers, SREs, engineering managers, 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, and IoT sensors 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.
- 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 on Rails. You’ll be making a lot of architectural and design choices specific to 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 architectural changes.
- 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. You use design documents and visualizations/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.
- Experience with containerization, such as Kubernetes and Docker
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), Scala (Jetty, Akka, Netty), Go
- Git, 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
- 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.
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.
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.
Cisco Covid-19 Vaccination Policy
The health and safety of Cisco's employees, customers, and partners is a top priority. Our goal is to protect and mitigate the spread of COVID-19 infection for strong business resiliency during the pandemic. Therefore, Cisco may require new hires to be fully vaccinated against COVID-19 if the role requires business-related travel, meeting with customers/partners (including visiting third-party sites on behalf of Cisco), attending trade events, and Cisco office entry, unless otherwise prohibited by applicable law, and in countries where COVID-19 vaccination is legally required. The company will consider legally required accommodations/exceptions for medical, religious, and other reasons as per the requirements of the role and in accordance with applicable law. Additional information will be provided to candidates about the requirements and accommodation process at the offer time based on region.