- Analyse and drive product requirements
- Architect and design product features for scale and maintainability
- Lead in the design, implementation, and deployment of successful systems and services
- Ensure the quality of architecture and design of systems
- Implement code with very high coverage of unit tests and component tests
- Perform design and code reviews
- Functionally decompose complex problems into simple, straight-forward solutions
- Fully and completely understand system interdependencies and limitations
- Possess expert knowledge in performance, security, scalability, architecture, and best practices
- Software development of high quality/availability core systems
- Cross-training peers and mentoring teammates
- Document HLD/LLD for easy knowledge sharing and future scaling
- 8-12 years of experience designing, integrating, and developing distributed applications in Ruby, Go, Java, or other high-performance languages
- Experience with cluster and container orchestration systems such as Docker, Mesos, Marathon, Salt or Kubernetes.
- Experience with Service design, systems engineering, API Design and versioning
- Understanding of Design Patterns, Server less computing, cloud first architecture, TDD, BDD, CI/CD, Integration Patterns
- Experience with at least one NoSQL and SQL database
- Hands on development experience in backend or frontend technologies. Willingness to code.
Good to have
- Experience building distributed systems using Kafka. Strong grasp of fundamental concepts of Kafka, ZooKeeper and building producer and consumer applications using Kafka
- Familiarity writing and optimizing advanced SQL queries
- Good Linux/UNIX systems knowledge
- AWS compute and storage PaaS services. AWS certified solutions architect is nice to have.
- Experience productionizing Machine Learning models
- Experience publishing technical papers in reputed conferences.