Lead Software Engineer

Job Purpose

The Lead Software Engineer will provide technical leadership to teams developing and support cloud based (AWS) enterprise solutions, through Agile development methodologies and mature DevOps processes.

The Lead Software Engineer will provide technical leadership to teams designing, documenting and implementing technical solutions to meet user requirements, including  taking a lead role in  all  technical aspects of the software development  life cycle  to implement and maintain enterprise applications.

Reporting to the  ICT Practice Lead, the  Lead Software Engineer will work  as part of  support or project teams to develop new  software solutions, as well as enhancing and maintaining existing capabilities. All software will be developed following internal quality processes and industry best practices for ensuring web application security. As a leader of the team, this position is responsible for taking an active role in providing guidance, support and mentoring to other team members to ensure they are able to achieve their tasks and goals. This position will also be responsible for driving continuous improvement and adoption of industry best practice, to ensure that the broader development team are working as effectively as possible.

Key Responsibilities

  • Working within an agile engineering environment, as part of a cross-functional delivery team, lead the design, delivery and maintenance of enterprise applications in a React or Angular/Java/Postgres/AWS tech stack.
  • Coordinate team technical activities to ensure smooth and sustainable delivery.
  • Take ownership of software quality by preparing, and providing guidance in, unit tests, functional tests, etc.
  • Assist in the creation and maintenance of technical specifications, design documentation, and other relevant documentation related to maintenance and enhancement of key business systems
  • Assist in project estimation activities, utilising our project estimation model
  • Own our software development processes, ensuring all work is of the highest quality, setting and maintaining standards for development, and driving continuous improvement
  • Provide guidance and mentoring to junior engineers and teams, to deliver best outcomes
  • Ensuring the production of robust, scalable, secure solutions, in adherence to the ISO 9001 and ISO 27001 Quality and Information Security Management System requirements.

Key Capabilities

  • Tertiary qualifications in a relevant discipline or an equivalent level of knowledge gained through any other combination of education , training and/or experience.
  • Experience  taking a lead role in developing enterprise applications in Java or a similar language(s), with significant knowledge and hands-on experience in the use of industry standard toolsets such as Spring and Hibernate
  • Strong ability to relate well to others and coordinate technical work in a team environment
  • Experience in developing API based applications and experience of  OpenAPI  3.0
  • Proficiency in developing with JavaScript frameworks, with a preference for React or Angular
  • Knowledge of engineering and architecture design patterns
  • Demonstrated experience in planning, developing and running unit, integration and performance testing
  • Ability to read and write complex SQL queries and procedures against a relational database
  • Strong data modelling skills
  • Experience in using system scripting languages to automate and streamline system operations e.g  Python, Bash etc.
  • Experience in developing applications for cloud platforms, with a preference for experience on AWS
  • Experience in using build tools, with preference for Maven
  • Experience in investigation and diagnosing Java application issues using a variety of techniques, including profiling, JVM dump analysis, log outputs and debugging.
  • Experience in configuring and using DevOps tooling, eg. Jenkins, Bamboo, CodePipeline.
  • Familiarity with all stages of the SDLC, including secure development practices.
  • Excellent documentation skills
  • Excellent communication and interpersonal skills
  • High degree of motivation, innovation and personal responsibility
  • Experience working in an Agile methodology (E.g Scrum)
  • Experience in guiding and mentoring engineers and teams to deliver outcomes