
Technical Leader Backend Development- Microservices Architecture, Go- Lang, Distributed Systems- 12+ Years
- Bangalore, Karnataka
- Permanent
- Full-time
- Be responsible for hands-on coding and serve as a technical leader by mentoring junior engineers and applying technical expertise to challenging programming and design problems
- Drive the design and implementation of reliable and scalable backend software solutions that tackle critical customer problems and get along with numerous other services.
- Deliver high quality backend code and contribute to overall product stability by conducting code reviews and writing unit and integration tests.
- Own the design/architecture of product components and implement the software while upholding high standards and using best practices for architecture, design, coding and CI/CD
- BS or MS in Computer Science or relevant field with at least 10 years of experience including 5+ years of experience in cloud -native microservices-based architectures and distributed systems development.
- Experience writing production quality level code and test cases in Golang and Python
- Specifically in distributed systems:
- Experience in understanding challenges with lost, delayed, or duplicated messages and how code needs to be written to take care of that.
- Experience understanding memory, performance and reliability consequences of choosing a given API call (sync vs async) or a data structure over another.
- Experience in writing appropriate test to discover corner cases and performance bottlenecks.
- Degree of autonomy. Should be able to own a feature, work along other team members on the high-level design, and optimally drive the feature to completion, including data migration, testing and deploy to greenfield and brownfield deployments.
- Experience to understand the implication of coding in a particular style: Memory allocation, efficiency, etc.
- Understanding of how network devices operate. While a deep knowledge of networking is not required, the candidate should understand the basic operation of a network device. How images are loaded, difference between console and VTY access, difference between management ports and data ports, difference between Line Cards / RP, Chassis, etc.
- Intermediate knowledge of SQL / Cypher database queries.
- Knowledge of REST and gRPC APIs: OpenAPI and protocol buffers
- Have a 'can do' attitude. Should understand how different systems and technologies can operate together to produce the accurate outcome. Should write scripts/tools to improve the workflow as needed.
- Able to contribute to code reviews looking for potential/hidden problems in the code. Look for corner cases / "what if" scenarios on the code under review.
- Practical knowledge about Kubernetes, building container images (docker, kaniko, ko)
- Experience with brokers or other pubsub technologies: Knative, kafka, Redis streams, etc.
- While most of the Kubernetes related details are mostly abstracted from the developers, knowledge of Kubernetes helps understanding the product.
- Experience building network services in NSO (YANG models, callbacks)
- Experience building network monitoring services (SNMP, Netconf, Restconf)
- Experience building VPN network services using EVPN, QinQ or other VPN/tunneling technologies.
- Knowledge of OpenTelemetry
- Experience writing K6 performance validation tests.