About The Role
You are expected to design and code independently in multiple tech components related to your functional area. You must also develop a deep understanding of non-functional requirements, such as reliability and availability, scale, horizontal scalability etc. and make tech stack decisions accordingly. You are expected to actively mentor junior engineers and guide them in good development / best practices and maintain a high quality codebase. We are looking for quality obsessed seasoned engineers.
What You’ll Do
- Given a high-level product requirement, work with product and other stakeholders to understand and refine the requirements and change them to tech requirements
- Prepare high-level designs and document them
- Prepare low-level design and code independently in multiple tech components related to functional area
- Choose the right tech stack for a given situation under guidance from senior team members
- Optimize existing services and components
- Take non-functional requirement (reliability, availability, scalability, CAP theorem etc.) into considerations while taking any design decision
- Build, develop, mentor and coach junior team members
- Owning the quality of code, UT coverage, documentation etc.
What You’ll Need
- Tech. or M.Tech. equivalent with 7-15 years of working experience
- Deep expertise in Java programming language and related ecosystem of frameworks, tools and systems
- Strong with design and analysis of data structures & algorithms
- Strong object-oriented design skills, ability to apply design patterns, and ability to design intuitive module and class-level interfaces
- Experience of building robust and scalable applications with distributed architecture. Knowledge of cloud solutions is preferred.
- Good understanding of multiple tech solutions and ability to pick the correct one for the given situation
- Prior work experience in an agile environment or continuous integration and continuous delivery (CI/CD)
- Ability and experience in designing high-level software designs of scale, taking NFR (non-functional requirements) in consideration