About the role:
You will own a functional area - from product conception to its delivery to customers. 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., over time 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 seasoned engineers who are quality conscious, product thinkers, business cognizant and smart not mere coders. The same scale also demands the engineers to produce super-efficient solutions.
What you'll do
- Own a functional area from product conception to delivery
- Given a fuzzy product requirement, work with other stakeholders, product to understand & refine the requirements and change them to tech requirements
- Prepare high-level designs under the guidance and document them
- 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
- Optimise any existing microservices
- Take non-functional requirement (Reliability & Availability, Scale, horizontal scalability) into considerations while taking any decision
- Build, develop, mentor and coach junior team members
- Owning the quality of code, UT coverage, documentation etc
- Collaborate with teams by contributing to the shared vision and working closely with cross-functional stakeholders.
What you'll need
- B.Tech or M.Tech equivalent with at least 6-year's experience
- Deep expertise in Java programming language & tech stack.
- Strong with data structures & algorithms with space & time complexities
- Strong object-oriented design skills, ability to apply design patterns, and an uncanny ability to design intuitive module and class-level interfaces
- Experience of building robust and scalable web-applications with microservices / distributed architecture
- Experience with any of the prevalent NoSQL solutions like HBase, Cassandra, MongoDB, Couchbase, ElasticSearch, etc.
- Experience with any prevalent messaging and queuing technologies like ActiveMQ, RabbitMQ, Kafka, etc.
- Experience with Test Driven Development using technologies like RSpec, Cucumber, Capybara
- Experience in building data-driven web application design and development is a plus
- 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 or CD)
- Ability and experience in designing high-level software designs of the scalable system, taking NFR (non-functional requirement) in consideration
- Should have worked on cloud platforms like GCP, AWS, etc