We are looking for a passionate Software Development Engineer to help design, develop and deploy software for our solutions. The successful candidate will be able to build high-quality, innovative and fully performant software in compliance with best practise coding standards and technical design. Help to drive better working practices and become a valued member of the engineering department.
What will I be doing:
Collaboratively solves problems; communicates technical decisions through tech-talks and white-boarding sessions
Learns quickly and makes steady progress without the need for significant feedback from more senior engineers
Shows engagement when architecting and developing new software
Shows engagement with the wider engineering community. Hosts Dojo’s lunch and learn sessions and is seen as someone who interacts with the wider engineering community.
Helps other engineers to produce clean, quality code through strong engagement in code reviews and pair programming
Takes full ownership of the tasks in his/her backlog and is also begging to show signs of taking accountability for the entire team’s backlog.
Actively engages with the product teams to make the product better, and to understand ambiguous requirements
To be seen as helpful, by both engineers and product
Strong software design. Expected to know a wide array of software design patterns in depth, display a strong understanding of algorithms and data structures, and able to show multiple real-life examples of applications of this knowledge.
Consults business stakeholders on the best approach for delivering complicated feature, both in how it can be split and sequenced, and in terms of potential improvement to the functional requirements
Beginning to show signs of continuously mentoring less experienced members of the team. Not just giving a hand here and there, but genuinely trying to upskill their peers.
Knows when to challenge the team to be pragmatic.
What will I need to be considered for this role:
Highly experienced with Java 8+
Experience of Spring / Spring Boot
Experience building, delivering and supporting RESTful APIs
Experience with build automation tools, such as Gradle, Maven
Strong experience with testing frameworks such as JUnit, Mockito
Experience working within a Continuous Delivery environment
Experience working within an Agile environment such as scrum or Kanban
Experienced working within a cloud environment, and is comfortable provisioning IaaS and PaaS services within such an environment
Understanding of containerisation (preferably Kubernetes)
Ability to mentor and provide constructive feedback to members of the team
Proficiency with TDD & BDD
Good understanding of the good software design principles (e.g. OO, DRY, SOLID)
Experience with distributed version controls systems like Git
Experience with pair programming