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)