Job Overview
Tech leads are responsible for helping drive the high-level architectural discussions regarding the work that the team is doing. They lead design meetings and tech breakdowns. They ask questions and try to poke holes in ideas to ensure that edge cases are covered.
Tech Leads are expected to continue to write code, develop software, whether it be for tooling, for automation, code refactoring or for application development.
Key Responsibilities
Leadership & Capability Development
Direct manager for a team of 6-10 engineers across different technology skills Setting team objectives and conducting Performance Evaluation. Provide regular performance feedback and conduct career planning with staff. Takes appropriate corrective action as needed to promote optimal employee performance.
Identifying training needs of the team and individuals. Collaborate with Principal Engineers and Tech Leads to develop skills of staff and help advance their careers
Mentoring and coaching engineers.
Recruitment (on/off boarding), hiring, and training of new talent t
Ensures individuals and team align with company policies, training, compliance modules etc.
Delivery
Support interactions with customers and development team to gather and define requirements
Focus on technology requirements / standards on 1 or more squads. Drive the technical design and evolution of the services owned by the teams. Lead architectural and design discussions
Assist the Squad Leads & Teams to ideate, review design, mentor during build, code-review, test, load-test, launch and monitor performance in production
Help engineers / squads to design the right system by giving them clear objectives but letting them take care of the system-level architecture
Provide regular reports to the Area Lead and other departments on your Squad's technical achievements, challenges, and recommended solutions.
Help remove blockers
Lead and consult on developing maintainable/scalable, effective, defect free source code that meets business requirements and team standards, conduct unit test case development, develop highly complex test scripts, conduct impact analysis.
Assist in analyzing and troubleshooting application issues
Support and facilitate maintenance and upgrades of existing software applications
Lead troubleshooting and major incident support, perform blameless postmortems, and drive action that improves reliability for the long term
Practice & Craftsmanship
Work with Chapter Leads, Principal Engineers and other Tech Leads to ensure best practices are implemented and followed.
Identify and implement appropriate continuous improvement opportunities
Key Capabilities/Experience
Mentor team members technically and professionally by offering constructive feedback.
Teach less experienced engineers through pair programming and code reviews.
Work with Principal Engineers, Squad Leads to assess the skill level of engineers and identify areas of improvement, further learning
Other
Collaborate with other teams to ensure end-to-end integration, manage risks and address cross-org dependencies and impediments
Work with teams [ Squad / Area ] to plan, prioritize, and complete project assignments
Participate in risk assessments and mitigating activities as needed
Regularly attend meetings to discuss projects, issues, and ideas
Participate in technical audits and ensure the implementation recommendations
Support the whole software development life cycle (SDLC)
Determine department goals and creating implementation plans Minimum
Qualifications
Proven experience in the ability to mentor and develop teams.
Software architecture and design skills to guide the development of solutions that are secure, scalable, and reliable.
In depth knowledge of industry standard best practices, development lifecycle processes and methodologies. Experience using agile methodology is a plus.
Experienced in the use of metrics and data to drive decision making on architectural / technology drive.
Can lead through influence without direct authority.
Excellent written, verbal and presentation skills.
Ability to think independently and contribute to the overall effort without much direction.
Ability to work well within a team environment.
Ability to work well under pressure.
Ability to be a self-starter and work in a fast-paced environment performing work of high difficulty in designing, writing, editing, modifying and debugging code.
Able to communicate technical information and details effectively at all levels and understand customer systems
Able to diagnose / troubleshoot the most complex issues independently
Technical Skillsets should adapt based on the requirement of the project / area
Must Have
Proficiency in Java 8 or higher, Java 11 or higher is preferred
Competency in Spring and Spring boot
Experience in code versioning tools, preferably Git
Experience in Test Automation (JUnit, Mockito, etc.)
Working knowledge in RESTful API Development Good to Have
Experience with database technologies such as SQL, JPA, Hibernate, etc.
Working knowledge in Microservices Architecture, Containerization, and Orchestration
Experience with CI/CD platforms, preferably Azure DevOps, and build tools such as Maven
An Agile mindset