Responsibilities:
- Module Ownership & Team Management: Own modules and manage a team of engineers.
- Architectural Excellence: Architect, design, build, test, and deploy high-performance code.
- Issue Resolution: Troubleshoot, debug, and fix existing issues.
- Code Review: Review team members' code and suggest optimizations.
- Deployment: Verify and deploy changes to live environments.
- Flexible Design: Externalize control parameters for flexible design to meet requirements as tech use-cases.
- Production Analysis: Analyze production issues and provide long-term solutions.
- NFR Identification: Identify non-functional requirements to be met.
- Tech Debt Management: Add technical debt to the team’s backlog for periodic resolution.
- Timely Delivery: Deliver business functionalities within expected timelines, working with multiple stakeholders and constraints.
- Branch Management: Create necessary branches and checkpoints for quality code delivery.
- API Performance: Continuously check and improve the performance of various APIs.
- Tool Implementation: Introduce tools to avoid repetitive work and reduce human errors.
- Tech PoCs: Take technology Proof of Concepts (PoCs) to production.
- Java Ecosystem Updates: Stay updated with changes in the Java ecosystem, ensuring upgrades to the latest releases and patches.
- Security: Ensure application security by following secure coding practices.
- Mentorship: Coach and mentor team members.
- Collaboration: Work with architects, developers, QA, infrastructure, DBAs, product managers, scrum masters, and program managers in an Agile environment.
- Product Management: Collaborate with product managers to suggest alternatives or phased delivery of functionalities.
- Dependency Management: Help teams overcome dependencies with other stakeholders to meet committed timelines and quality.
- Stakeholder Liaison: Liaise with other teams and third parties to communicate requirements for successful feature implementation.
Qualifications:
- Education: Bachelor’s or Master’s degree in Engineering or Computer Applications.
- Experience: 9-13 years of relevant programming experience in Java in an internet product.
- Technical Skills:
- Strong computer science fundamentals and object-oriented programming skills.
- Proficiency in collections/data structures and multi-threading.
- Hands-on experience with Spring Boot, Microservices, Spring Security.
- Experience with message queues and sockets is a plus.
- Proficiency in unit testing frameworks like Junit, Jest, etc.
- Experience in CI/CD development.
- Familiarity with code quality control platforms like Sonar, secure coding practices, OWASP vulnerabilities, token management, and OAuth.
- Experience with Git, Maven, and Docker.
- Experience with SQL/No-SQL databases and caching technologies.
- Working experience in cloud environments (AWS or equivalent).
- Proficient in Kubernetes .
- Diverse experience with Python and Node.js.
- Analytical nature for solving data-related problems within the organisation.
- Nice to have experience in low latency and decision-making systems.
Management Skills:
1. Experience handling a module independently and improving non-functional requirements (NFRs).
2. Experience managing a team of high-energy engineers and fostering their growth.
3. Strong mentoring, communication, and interpersonal skills.