The role of the Lead Software Engineer is to design and develop pragmatic, complete and maintainable software solution under the guidance of a Technical Lead Software Engineer and Architect to the agreed development plan and to approved specifications.
Key Responsibilities:
- To support the development team on new and existing systems as required.
- Champion agile best practices and Continuous Delivery to drive down backlog.
- To support and coach a small team of developers.
- Perform regular 1:1’s and Quarterly reviews.
- To support the technical direction of a professional and cohesive multi-disciplinary team that are technically astute and experienced.
- To design and develop pragmatic, complete and maintainable software solutions under the guidance of a Technical.
- Lead Software Engineer to the agreed development plan and to approved specifications.
- To sustain and improve the quality of the software and the documentation delivered by the team to Quality Assurance.
- To maintain a good technical awareness and familiarity with new and forthcoming relevant technologies and highlight any skills or training requirements within the team.
- To provide detailed planning input to the Technical Lead Software Engineer on estimated effort to develop certain modules/functions and to identify any specific technical or resource dependencies and/or risks the Software Engineer might be aware of.
- To contribute to and/or lead software analysis, design and specification tasks for specific modules/functions.
- To actively engage in and contribute to agile planning and design sessions.
- To provide competent, proactive and professional Technical Support if and when required to customers and clients.
- To support and initiate agile process improvements with the support of the Agile Delivery Manager that will improve productivity, effectiveness and professionalism of the team as a whole, without impacting budgets and delivery plans.
- Maintain code documentation to company standards that accurately reflects system functionality and its technical implementations.
- Work as part of Code Peer Review community to improve the quality of software development.
- Contribute to regular Project Team meetings to ensure the correct tasks are being worked on and share key decisions required, risks identified and highlight, and issues encountered.
Knowledge, skills and experience required:
- IT Degree Qualified Desired
- 8+ years of experience building high concurrency/high transaction volume applications using Java/J2EE technologies.
- Deep experience with the following:
- a. Using the Spring Framework family of technologies including Spring MVC, Integration, Web Services and Batch. b. Interacting with RDBMS through use of Hibernate ORM (experience with shared databases a plus). c. Queueing systems and Rabbit MQ in particular d. Distributed Systems (Processing, Caching, Persistence) e. Experience with Agile methodologies.
- Demonstrable experience using Source Control tools (GIT, SVN).
- Deep understanding of SOLID Principles, Design Patterns and working experience of putting them to practice.
- Solid experience of Test Driven Development, unit testing tools such as JUnit, and experience of integration testing and continuous integration / deployment.
- A history of taking responsibility for design and implementation of systems based on architectural outlines and requirements specified in use cases or stories.
- Senior testing and debugging skills across development, QA and production environments along with proven ability to handle minor releases and emergency fixes.
- Experience directing and mentoring junior developers.
- Some working experience of cloud technologies, preferably AWS.
- Experience of working with PCI compliant software products will be an added advantage.
- Experience of working across multiple delivery organizations practicing distributed development in a global environment.
- Experience of other programming technologies such as Coldfusion, .Net, CMS applications I,e Sitecore, or front end application development would be desirable.
- The ability to demonstrate through examples, the effective management of stakeholder relationships at all levels internally and externally.
- Excellent written & spoken English & interpersonal communication.
- Experience of projects in Loyalty sector highly desirable.
Person Specification:
- Commercially focused and Innovative.
- Self-motivator with a willingness to learn new skills.
- Ability to thrive in a fast moving and changing environment.
- Ability to show initiative and to work independently.
- Ability to work at pace, work through project challenges in a collegiate way.
- Goal and outcome orientated.
- Thoroughness and attention to detail.
- Good communication skills (ability to present, inform and guide others).
- Ability to generate ideas and draw them out of others.
- Ability to bridge communications between technical and business focused groups.
- Comfortable working with people at all levels in an organization.
- Willingness to take on a variety of roles and responsibilities.