You will be part of our product engineer team and work in multidisciplinary agile teams including product owners, QA engineers, UX designers and business analysts.
We want you to help us accelerate the growth of our Java capability.
As part of our rigorous recruitment process, we’ll thoroughly test your ability to code with peerless precision, quality and clarity.
As a member of the team, you’ll be expected to keep up to date with the tech field. We gladly sponsor certifications and training courses.
You are expected have experience and develop your technical skills within the following areas :
Knowledge of Java / JVM based development practises including expertise in Java frameworks (Spring)
Understanding of Java build tools (Maven, Gradle)
Cloud development on AWS, Azure or GCP including deployment, scaling and writing for containers. Experience with serverless is also a bonus.
Familiarity consuming Cloud services, particularly messaging and storage options
Front end development : Deployment / Management of SPA, Server-Side rendering, Webpack / Babel, Gulp, Razor Pages
Software design and architecture following clean architecture, domain driven design, serverless or microservices
A solid grasp of software security concerns and options for mitigation
Software testing (TDD and JVM based test tooling), performance optimisation and maintenance
Relational and noSQL database design, including Elastic
You are not expected to be proficient in all of the above, however you should demonstrate a general understanding of the concepts and start to specialise in a couple of key areas.
As a Lead software engineer, you will be expected to :
Provide technical leadership for your teams, taking ownership of projects through discovery and in to delivery.
Guide our clients in shaping their ideas by applying your technical knowledge; defining project strategy and technology selection.
Take responsibility for identifying project risks and taking steps to mitigate these before they become real issues.
Promote best practices and help to develop your teams by providing constructive feedback to peers and junior team members.
Contribute to the wider team, particularly with the learnings from your projects. Looks for areas of improvement; technologies, frameworks and tools that we can adopt.
Show effective management of your immediate project team and demonstrate an ability to influence our business stakeholders.
Effectively communicate with both technical and non-technical stakeholders, helping to bridge the gap between the two.
Share your knowledge with the wider team and support learning opportunities.
Day to day job tasks
This is a hands-on role and you will be responsible for shaping project architecture and large technical decisions. On a day to day basis you will be delivering key features on projects that are mostly greenfield.
Define and manage your build pipelines, automating where possible. Take responsibility for enabling your teams and ensuring they work efficiently.
Understand that all members of the team are responsible for quality and promote this through testing, peer review and automated scanning of our codebases.
Review code and technical decisions to ensure best practices are being followed, particular when it comes to security.
Investigate and implement new technologies that enable our projects and improve our offerings to clients.
Provide input for new projects, analyse client requirements and create high-level estimates. Effectively estimate build and run costs for proposed solutions providing options that enable viable solutions.