Reporting to the Head of Integrations, the Software Engineering Lead will be responsible for leading the development of the User interfaces, APIs, associated micro-services and any / all related application code through a full, methodical and robust software development life‑cycle.
Software Development
- Web-based user interfaces, REST and GQL APIs, associated micro services and any / all related application code across the full-stack from human and machine interfaces (UIs and APIs), middleware, back‑end services and persistence technology.
- Building robust, reliable, scalable and maintainable software that aligns with achieving the goals, missions and objectives of the business organization.
- Providing daily verbal and / or written updates of progress on work‑items – reporting and escalating blocking factors or issues in a timely manner when applicable
- Working efficiently and methodically to rapidly resolve defects and issues with the software as identified by line‑managers, application users, product‑owners and / or other developers
- Architecting and designing complex software systems and processes
- Securing software systems and processes according to industry standards and modern principles
- Providing guidance, mentoring and support to team members
- Automating tasks through scripting and other methodologies.
Team Working
- Liaising with, contributing‑to and supporting other teams on work items when applicable and necessary.
- Conducting code reviews to provide valuable, constructive feedback that enhances the quality of the solution.
- Building and maintaining successful relationships between peers, colleagues and management within the team – and some parts of the wider organization.
- Recognition and appreciation of the skills of others within the team to utilize knowledge
Team Leadership & Management
- Build and lead a high performing team of software engineers.
- Provide guidance, mentorship and professional development opportunities to team members.
- Provide Technical Leadership.
- Perform 1 : 1 with direct reports.
- Conduct professional performance evaluations at the cadence of company policy.
Research and evaluate emerging developments and best practice within the development space, including
- Continuously improving your skill‑set in technology, software or technical methods that will enhance your contributions to the goals and objectives of the business.
- Evaluating and suggesting ways to improve team and business productivity using new tooling, process improvements and / or new methods of working.
Undertake ad-hoc activities and projects as required.
The Software Engineering Lead will work as leader of a team of software engineers to produce functional, secure and professional software to support and achieve business objectives, along with on‑going support and maintenance & continuous iterative development.
Key Accountabilities and Activities
1 Software Engineering
- Propose and facilitate discussions for solutions to software engineering problems and lead the team through to successful conclusions.
- Adhere to high‑quality and industry‑standard development principles while delivering solutions defect‑free, on‑time and on‑budget.
- Design, develop, and unit test software following established security and architectural standards.
- Develop, refine, and tune integrations between application elements.
- Optimize system performance and scalability.
- Package and support deployment of releases following the SRE (Site Reliability Engineer) deployment process .
- When necessary, prepare reports, manuals and other documentation on the status, operation, and maintenance of the software.
- When necessary, create HLDs (High Level Design) and LLDs (Low Level Design) in compliance with security and design authority mandates.
- Takes autonomous ownership of system areas / functions / topics and ideas to progress development under their own initiative.
2 Technical Leadership
- Host technical debates regarding architecture to successfully obtain ‘buy‑in' on ideas from peers, colleagues and upper management.
- Maintain, share, drive, champion and publish a technical vision with peers.
- Maintain knowledge in a variety of different architectural patterns and identify solutions applicable to the organizational need.
- Conduct highly complex technical sessions to educate and inform peers, colleagues and management.
3 Team & Managerial Leadership
- Build and lead a high performing team of software engineers.
- Provide guidance, mentorship and professional development opportunities to team members.
- Provide Technical Leadership.
- Work delegation and allocation.
- Lead on recruitment of new team members and onboarding.
- Foster a collaborative and innovative work environment that encourages knowledge sharing and cross‑functional collaboration.
- Planning & driving daily development activities.
- Providing coaching & mentoring to direct reports & teammates.
- Ensuring high standards of software quality are maintained through good practices & habits.
- Assessing, preparing & distributing documentation of process & application changes within the team & affected stakeholders.
- Conduct performance evaluations.
- Motivate teams to rapidly produce valuable, successful and long lasting results.
- Listen to differing ideas on technical vision and helps the team reach successful consensus.
4 Liaise and support other teams on work items including
- Collaborating with developers, business analysts & software architects to plan, design, test & maintain the application.
- Assisting with collection & documentation of user requirements; Stories, estimates & work plans.
- Developing, refining & tuning integrations between application elements.
5 Build, lead & guide successful development efforts including
- Participating in peer‑reviews of solution design & code.
- Analysing & resolving technical & application issues.
- Researching & evaluating software products.
- Packing & supporting deployment of releases.
6 Research and evaluate emerging developments and best practice within the development space including
- Researching & evaluating best practices.
- Evaluate processes in line with best practices.
- Assess opportunities for application and process improvement and prepare documentation of rationale to share with team members and other affected parties.
- Planning & driving development activities.
- Actively keeping knowledge current in STEM subjects or related subjects to the role.
7 Undertake ad‑hoc projects and other activities as required.
Essential Qualifications / Certifications
Desirable :
1. Computer Science degree or similar.
2. Computer Science master's degree. .
Experience and Skills
Essential
- Proven success as a technical team leader
- Providing support and guidance to direct reports
- Strong Golang skills and experience
- Strong API development and integration experience
- Strong Microservice experience
- Strong GIT and CI / CD experience
- TDD (Test Driven Development) experience
- Experience with and a champion of Agile development methodologies
- Proven ability to work independently & collaboratively in a fast‑paced technical environment.
- Excellent ability to communicate in English (Written & Verbal)
Desirable
- Computer Science degree or similar.
- Computer Science master's degree. .
- Proven success as a technical team leader
- Providing support and guidance to direct reports
- Strong Golang skills and experience
- Strong API development and integration experience
- Strong Microservice experience
- Strong GIT and CI / CD experience
- TDD (Test Driven Development) experience
- Experience with and a champion of Agile development methodologies
- Proven ability to work independently & collaboratively in a fast‑paced technical environment.
- Excellent ability to communicate in English (Written & Verbal)