Do you naturally take the lead within your team? Are you passionate about ensuring your team are really effective at delivering software that surpasses expectations?
We are looking for a Software Engineering Lead that excels at bringing together different disciplines to form a highly productive Agile team.
You will be leading a project team charged with the successful delivery of a multi-year programme using the latest enterprise technologies to deconstruct existing monoliths and deliver new business capabilities within a containerised micro-
services architecture. You will be responsible for transitioning the team from externally sourced to internal staff with responsibility for the long-
term success of the UI and services. You will ensure the best Agile techniques are blended with sound engineering practices to enable frequent and reliable production deliveries through the latest CI / CD pipeline.
This is a hands-on roll where you will be writing code as much as leading and shaping the team.
Experience and Education
7+ years of Software Engineering experience
BS Engineering / Computer Science or equivalent experience required
Take a leadership role within a Scrum team, acting either as, or alongside, the Scrum Master to ensure the team is both fully supported and following appropriate Agile methodologies
Liaise and collaborate effectively with stakeholders outside the team, reporting team progress / forecasts and escalating blockers to Development Manager and / or Project Manager
Ensure the team have clear understanding and agreement on team engineering processes (coding best practice, reviews etc.
and Agile processes and ceremonies, and that these are being followed
Ensure requirements are fit for purpose and detailed design is aligned with solution design, ensuring long term maintenance and support are key design considerations
Take responsibility for ensuring team sprint commitments are met and delivery is planned effectively, reporting status to project team
Act as initial escalation point for the team, co-ordinating additional expertise and support as required
Resolve complex technical issues, collaborating with team members and domain experts to identify effective solutions
Take ownership of live support issues ensuring they receive the appropriate level of scrutiny and attention, and that the integrity of the live service is a primary team concern
Mentor and / or train entry-level software engineers, ensuring they are knowledgeable in critical aspects of their roles
Keep abreast of new technology developments
Design and work with complex data models
Carry out management responsibilities including : interviewing, hiring, and training employees; planning, assigning, and directing work;
appraising performance; rewarding and disciplining employees; and addressing complaints and resolving problems
Ensure all staff are provided with the training and resources needed to perform their jobs to the most outstanding degree possible.
Ensure all staff are provided with frequent feedback and coaching in order to meet and exceed individual and team performance goals consistently
Manage and encourage new ideas from staff to foster improvements through innovation
Empower the staff to be accountable and responsible for their own actions and decisions
All other duties as assigned
Advanced knowledge and practical experience of Agile software development methodologies (Scrum and / or Kanban)
Experience of acting as a Scrum Master for a cross functional team, effectively managing a backlog, providing estimations (time and / or story points), reporting burn down and removing impediments
Strong knowledge of software engineering best practices especially in relation to developing code to be managed through CI / CD pipelines
React or other relevant experience e.g. Angular 1, 2MongoDB or experience of other NoSQL databasesAWS (EC2, S3, RDS, IAM)CI / CD (Jenkins, Spinnaker)TDD / BDD Testing frameworks (JUnit, Selenium, Gherkin / Cucumber and a mocking framework)Familiar with HTML, JS and CSSJira, Confluence, Git
Any familiarity with the following would be advantageous : Containers (e.g. Docker) and any container platform technology (e.
g. Kubernetes, ECS etc.)Load balancing and service discovery across micro-servicesDeconstructing monoliths into micro-servicesEffective monitoring, alerting and visualisation (Kibana, Elasticsearch)
Ability to partner and lead internal and external technology resources in solving complex business needs
Experience with different resource models such as Managed Services and / or Staff Augmentation
Ability to design and work with complex data models
Strong skills in setting, communicating, implementing, and achieving business objectives and goals through the direct management of others
Strong organization / project planning, time management, and change management skills, and strong delegation skills involving prioritizing and reprioritizing deliverables and managing deliveries of various size and complexity
Strong problem-solving experience involving leading teams in identifying, researching, and coordinating the resources necessary to effectively troubleshoot / diagnose complex project issues;
prior success extracting / translating findings into alternatives / solutions; and identifying risks / impacts and schedule adjustments to facilitate management decision-making
Strong communication (verbal and written) skills. Strong interpersonal, communication, and presentation skills applicable to a wide audience including senior and executive management, end users, etc.
including presenting information in a concise and effective manner to clients, management, and various departments using assorted communication mediums