Overview
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.
The responsibilities include:
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 practise 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:
- 1. Proven success as a technical team leader
- 2. Providing support and guidance to direct reports
- 3. Strong Golang skills and experience
- 4. Strong API development and integration experience
- 5. Strong Microservice experience
- 6. Strong GIT and CI/CD experience
- 7. TDD (Test Driven Development) experience
- 8. Experience with and a champion of Agile development methodologies
- 9. Proven ability to work independently & collaboratively in a fast-paced technical environment.
- 10. Excellent ability to communicate in English (Written & Verbal)