Software Engineering Lead (Golang)

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 applicableWorking efficiently and methodically to rapidly resolve defects and issues with the software as identified by line-managers, application users, product-owners and/or other developersArchitecting and designing complex software systems and processesSecuring software systems and processes according to industry standards and modern principlesProviding guidance, mentoring and support to team membersAutomating 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 knowledgeTeam Leadership and 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 thedevelopment 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 toproduce functional, secure and professional software to support and achieve businessobjectives, along with on-going support and maintenance and continuous iterativedevelopment.Key Accountabilities and Activities1 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 and 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 and driving daily development activities.Providing coaching and mentoring to direct reports and teammates.Ensuring high standards of software quality are maintained through good practices and habits.Assessing, preparing and distributing documentation of process and application changes within the team and 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 and software architects to plan, design, test and maintain the application.Assisting with collection and documentation of user requirements; Stories, estimates and work plans.Developing, refining and tuning integrations between application elements.5 Build, lead and guide successful development efforts including:Participating in peer-reviews of solution design and code.Analysing and resolving technical and application issues.Researching and evaluating software products.Packing and supporting deployment of releases.6 Research and evaluate emerging developments and best practice within the development space including:Researching and 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 and 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/ CertificationsDesirable:1. Computer Science degree or similar.2. Computer Science master''s degree. .Experience and SkillsEssential:
1. Proven success as a technical team leader2. Providing support and guidance to direct reports3. Strong Golang skills and experience4. Strong API development and integration experience5. Strong Microservice experience6. Strong GIT and CI/CD experience7. TDD (Test Driven Development) experience8. Experience with and a champion of Agile development methodologies9. Proven ability to work independently and collaboratively in a fast-paced technical environment.10. Excellent ability to communicate in English (Written and Verbal)
#J-18808-Ljbffr
Other jobs of interest...



Perform a fresh search...
-
Create your ideal job search criteria by
completing our quick and simple form and
receive daily job alerts tailored to you!