We are looking for a Software Engineering Team Lead who will responsible for leading and mentoring a small development team within a specific task or project, side by side with hands-on development.
You will provide technical leadership to software engineers by coaching and mentoring throughout end-to-end software development, maintenance, and lifecycle to achieve project goals to the required level of quality; promote team engagement and motivation
You will provide input to the software engineering manager for estimates, resource needs, milestones and risks; ensure effective delegation, monitoring tasks, identifying risks and handling mitigation and escalations
You will provide hands-on technical and functional input to design, maintenance, build, integration and testing of complex software components according to functional and technical design specifications; Follow software development methodologies and release processes
You will analyze and provide input for the requirements and provide impact assessment for new features or bug fixes. Make high-level design and establishes technical standards
You will represent and lead discussions related to product/application/modules/team and build relationships with internal customers/stakeholders
You will enforces quality processes (such as performing technical root cause analysis and outlining corrective action for given problems), measure them and takes corrective actions in case of variances and ensure all the project agreed deliverables are completed to the required level of quality.
At least 6 years of Java hands-on development experience
At least one year experience in leading tasks and/or mentoring engineers
Experience of API definition and implementation: Swagger, Restful, Queues, etc.
Excellent understanding of RESTful services
Spring Framework – annotations, Spring Boot, Spring Cloud
Deep understanding of databases – RDBM and NoSQL (Couchbase, MongoDB)
Excellent knowledge with object oriented design & coding standards and methodologies
Profound insight of Java internals (Classloading, Memory Management, Multi-threading, Transaction management etc)
Experience with agile engineering practices such as SCRUM development, DevOps, CI, Maven, Junit frameworks, Jenkins
Self-driven and independent who is able to take responsibility and proactively carry on tasks as a self-contributor
Ability to work collaboratively within a team and with external stakeholders
Planning and organization skills
Ability to assimilate knowledge quickly and efficiently
BS/MS degree in Computer Science, Engineering or a related subject
Excellent communication skills with excellent verbal and written English