Senior Software Engineer - Kubernetes/Golang/AWS
Location:San Jose, California, US
Area of InterestEngineer - Software
Technology InterestBig Data, Analytics, Cloud and Data Center
What You'll Do
You are deeply motivated engineer with background in cloud app development and handling of large distributed systems. Ideal candidate must have experience building, shipping and operating software-as-a-service (SaaS) product. Ideal candidate would have managed such products using Cloud Native Principles and exposed to cloud technologies. This position will enable handling of managed services, which includes installing, monitoring, troubleshooting, while providing timely response within designated SLA times to service effecting faults and performance issues. As an Senior Software Engineer you will work with our Managed Services Team that are responsible for managing services used by Cisco apps deployed on the platform. As a Senior Software Engineer you will be driven to build highly scalable, distributable, fault-tolerant, and easy to administer managed services. You must be pro-active and organized, diligent about documentation, and passionate about monitoring and automating everything.
This can only be accomplished by a candidate with substantial real-world experience actually building, deploying and operating distributed systems using cloud technologies.
Who You'll Work With
Cisco is transforming the networking industry. To make this happen, we are heavily investing in team responsible for The Network. Intuitive. We are disrupting the industry by building a new networking platform that can learn, adapt, and secure itself at the speed of today’s businesses. This Digital Network Architecture platform automates network management and provides our customers with state-of-the-art analytics and insights. This team's innovations span artificial intelligence, machine learning, analytics, IoT, security, automation, and more.
Who You Are
This role is primarily to apply your Software Engineer skills to create a self-healing ecosystem for managed services. The targeted platform will support vast number of cloud and hybrid customers. The candidate is expected to have strong hands-on skills and will guide and contribute technically to the infrastructure engineering.
- Develop full-fledged software tooling to deliver programmable infrastructure (infrastructure as code)
- Develop tooling to drive end-to-end micro-services monitoring and management
- Hands-on experience in deploying and managing applications on Kubernetes
- Manage the lifecycle, availability, scalability and performance of distributed managed services.
- Create the required tools and infrastructure to do the same.
- Diagnose and repair managed services issues
- Test and tune managed services configurations to maximize performance
- Deploy and manage monitoring and diagnostic tools
- Monitoring managed services for proper operation and performance.
- Create and maintain continuous integration (CI) environments to facilitate an agile development process.
- Expert programming skills using Golang and/or Python.
- Strong shell skills
- Expert skills in software architecture, system design, Object Oriented programming, RESTful API design and implementation
- Hands on experience with application development using SQL/NoSQL data stores
- Hands on experience with Kubernetes
- Very good understanding of HA and Clustering of distributed systems
- Practical experience in building highly performant, scalable applications
- Experience working with one or more of Kafka, ElasticSearch, Redis, MongoDB is highly preferred
- Experience working with Git, Jenkins, Gradle is highly preferred
- Proven experience capacity planning, performance tuning, and infrastructure architecture. Experience scaling web, application, and data systems horizontally and vertically
- Experience with monitoring, alerting, and pipeline analysis tools
The candidate expected to have strong hands-on skills and will guide and contribute technically to the product.
- BS/MS in Computer Science or related area
- Eight or more years of relevant work experience
- Hands on experience working with Kubernetes infrastructure
- Kubernetes Certification is highly preferred
- Expert understanding of Kubernetes internals (clustering, scheduling, controllers, API server, Service Brokers etc.)
- Very good understanding of container networking
- Very good software programming skills using Go/Python/YM
- Excellent understanding of microservices architecture
- Experience with Kubernetes monitoring tools (prometheus)
At Cisco, each person brings their unique talents to work as a team and make a difference. Yes, our technology changes the way the world works, lives, plays and learns, but our edge comes from our people.
We connect everything – people, process, data and things – and we use those connections to change our world for the better.
We innovate everywhere - From launching a new era of networking that adapts, learns and protects, to building Cisco Services that accelerate businesses and business results. Our technology powers entertainment, retail, healthcare, education and more – from Smart Cities to your everyday devices.
We benefit everyone - We do all of this while striving for a culture that empowers every person to be the difference, at work and in our communities.