JD - Lead Software Engineer
About the Job
We are looking for a highly skilled Lead Software Engineer to drive the design, development, and delivery of scalable microservices solutions for customer-facing digital platforms. In this role, you will provide technical leadership, mentor a team of engineers, and work closely with Solution Architects, Project Managers, Business Analysts, vendors, and other stakeholders to deliver high-quality software solutions that align with business objectives and enterprise architecture standards.
This is a hands-on leadership role where you'll combine technical expertise with team leadership to build reliable, secure, and high-performing applications.
Key Responsibilities:
- Design, develop, and implement scalable solutions using microservices architecture.
- Lead a team of engineers by providing technical guidance, mentoring junior developers, and promoting engineering best practices.
- Establish and uphold development standards, governance, and coding best practices across the team.
- Collaborate with Agile Scrum teams to understand business requirements and translate them into scalable technical solutions.
- Work closely with Project Managers, Business Analysts, Infrastructure teams, Solution Architects, vendors, and other stakeholders throughout the project lifecycle.
- Participate in project planning, solution design, technical estimation, and release planning.
- Ensure solutions comply with enterprise architecture, security standards, and development guidelines.
- Manage dependencies across multiple releases while proactively identifying and communicating project risks and issues.
- Review and monitor vendor deliverables to ensure quality and adherence to development standards.
- Support System Integration Testing (SIT) and User Acceptance Testing (UAT) by coordinating defect resolution and technical fixes.
- Analyse technical issues, recommend improvements, and implement enhancements to existing applications.
- Troubleshoot production issues, resolve application defects, and optimise system performance.
- Support BAU activities including deployments, security patching, and production releases while ensuring SLA/SLO commitments are achieved.
- Conduct system performance tuning and ensure applications remain secure, stable, and highly available.
- Provide regular project updates and communicate technical progress, risks, and deliverables to stakeholders.
Requirements:
- Bachelor's Degree in Computer Science, Information Technology, Software Engineering, or a related discipline.
- Minimum 8 years of hands-on software development experience using Java/J2EE, with strong experience in the Spring Boot framework.
- At least 3 years of experience leading or mentoring software engineers, with the ability to guide junior developers and drive technical excellence.
- Strong experience designing and implementing SOA, APIs, and microservices architectures.
- Proven track record in developing business-critical, high-volume, and highly available enterprise applications.
- Strong hands-on experience with application integration, software development tools, and relational database technologies.
- Experience with cloud-native and container technologies such as AWS, Kubernetes, Docker, Tanzu, or TKGI.
- Familiarity with DevOps and CI/CD tools including Git, Bamboo, Jenkins, Jira, Confluence, Nexus, Harbour, Selenium, and SonarQube.
- Good understanding of Agile software delivery, SDLC, Continuous Integration, Continuous Delivery (CI/CD), version control, and branching strategies.
- Exposure to enterprise architecture frameworks such as TOGAF is an added advantage.
- Strong analytical and problem-solving skills with the ability to recommend practical technical solutions.
- Excellent communication and stakeholder management skills, with the ability to explain technical concepts to both technical and non-technical audiences.
- Experience within the Financial Services or Insurance industry will be an advantage.
- Able to work independently in a fast-paced environment while managing competing priorities and ambiguous situations.