ENGIE Energy Access is one of the leading Pay-As-You-Go (PAYGo) and mini-grids solutions provider in Africa, with a mission to deliver affordable, reliable and sustainable energy solutions and life-changing services with exceptional customer experience. The company is a result of the integration of Fenix International, ENGIEMobisol and ENGIEPowerCorner; and develops innovative, off-grid solar solutions for homes, public services and businesses, enabling customers and distribution partners access to clean, affordable energy.
ThePAYGosolar home systems are financed through affordable installments from $0.19per day and the mini-grids foster economic development by enabling electrical productive use and triggering business opportunities for entrepreneurs in rural communities. With over 1,700 employees, operations in 9 countries across Africa (Benin, Coted’Ivoire, Kenya, Mozambique, Nigeria, Rwanda, Tanzania, Uganda and Zambia), over 1.2 million customers and more than 6 million lives impacted so far, ENGIE Energy Access aims to remain the leading clean energy company, serving millions of customers across Africa by 2025.
We are recruiting to fill the position below:
Job Title: Software Engineer
Location: Nigeria
Employment Type: Full-time
Job Purpose / Mission
We are looking for a talented, self-starting software engineer to join the digital team to help deliver affordable solar power to emerging markets.
This position offers a great opportunity to work alongside an elite team of engineers and business professionals and directly contribute to the success of a mission driven company with social and environmental impact. Candidates will get the opportunity to work in a diverse technology stack at scale.
Responsibilities
Contribute to the bi-weekly software planning sessions, together with product managers and engineers to discuss delivery time estimates, risks, and key practical considerations (such as technical debt, feasibility at scale ….)
Take requirements and deliver a complete solution subject to all engineering best practices, timeline considerations and potential dependencies in the software with minimal to no supervision.
Develop complex software that optimally uses resources to best meet customer needs.
Participate and contribute to architectural discussion on important areas of software that impact performance and reliability of our software. Identify and communicate risk in approaches or implementation details, assumptions, etc...
Mentor junior engineers and provide technical guidance.
provide support where engineering intervention is required (e.g. due to bugs or performance problems, on-call).
Qualifications
Bachelor's or Master's Degree in a relevant Engineering discipline (Computer Engineering, Software Engineering, Computer Science).
Experience and Skills
Required:
At least 3 years of relevant experience
Programming language proficiency in Python and mastery of at least one web frameworks (Django, Flask, fast API)
Good knowledge of object relational mappers (and their implementation design patterns), No SQL, PostgreSQL, and storage options.
Strong knowledge of design patterns and OOP practices, TDD
Strong API development and documentation experience
Experience using observability and monitoring tools.
Working knowledge of good practices for computer and data security
Experience with git: GitHub/Gitlab based source code management and deployment pipelines and best practice (CI/CD)
Excellent written and verbal communication skills in English.
Desired:
JavaScript and typescript proficiency with strong knowledge of one JS framework
HTML4/5, CSS3, AJAX, Bootstrap along with strong knowledge of DOM.