KE
3 days ago
Software Engineer (Python)

Job Title:  Software Engineer (Python) 

Department: Digital 

Reporting line:  Software Engineering Manager 

Location: Kampala or Nairobi 

 

About ENGIE Energy Access  

ENGIE Energy Access is the leading Pay-As-You-Go (PAYGo) and mini-grids solutions provider in Africa. The company develops innovative, off-grid solar solutions for homes, public services and businesses, enabling customers and distribution partners access to clean, affordable energy. The PAYGO solar home systems are financed through affordable instalments from $0.19 per 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,800 employees, operations in nine countries across Africa (Benin, Côte d’Ivoire, Kenya, Mozambique, Nigeria, Rwanda, Tanzania, Uganda and Zambia), over 1.9 million customers and more than 9 million lives impacted so far, ENGIE Energy Access aims to impact 20 million lives across Africa by 2025.  

www.engie-energyaccess.com    

www.linkedin.com/company/engie-africa  

Job Purpose/Mission   

We are looking for a full-stack software engineer to join our digital team and help us to deliver affordable solar power to emerging markets. If you are confident in the Rails world and if you want to create real, positive impact with your work, please reach out to us. 

This position offers a great opportunity to directly contribute to the success of a mission driven company with social and environmental impact. You will work closely with our stakeholders and users in Africa and beyond. 

Our small, self-organized, distributed team (Kampala / Berlin / Nairobi) develops the backbone of our operations, which we also provide to other businesses in the PAYGo sector as Software as a Service – see https://paygee.com. 

Responsibilities  

Participate in the 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 etc.  

Own initiative and complete it from start to finish, provide guidance to other engineers and deliver a complete solution subject to all engineering best practices, timeline considerations and potential dependencies in the software with no supervision.  

Represent technical team in business conversations in a range of scopes and work closely with stakeholders to deliver solutions which fit the needs of the business and provide fairly accurate effort estimates and risk assessment  

Participate in Peer-Review, identify and document technical debt and contribute to delivering high quality software solutions  

Participate and strongly 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, technical debt, assumptions, etc.  

Contribute to change of processes, adoption of best industry practices and mentor junior engineers and provide technical guidance  

Provide support where engineering intervention is required (e.g. due to bugs or performance problems) 

Knowledge and skills    

Experience:  

5 years of practical experience in software engineering of which at least 2 years in senior or lead role  

Programming language proficiency in Python and front-end/JavaScript frameworks  

Proven track record of building quality software with TDD  

Strong knowledge of software engineering design and architectural patterns   

Experience creating and maintaining scalable web applications with high availability, observability and structured logging  

API design to scale in Python 

Good knowledge of object relational mappers and their implementation design patterns  

Appreciation for detailed source code documentation and organized code structuring  

Software deployment pipelines and best practice (CI/CD)  

Excellent knowledge of computer algorithms and solid computer science fundamentals  

Excellent written and verbal communication skills in English 

Good to have experience   

Experience in developing large production grade web applications with python, java or Go 

Forward thinking with ability to recognize the impact of technology in business 

Strong foundation on distributed systems 

Knowledge of container orchestration using Kubernetes 

Server backend management experience (Linux, MySQL, Puma, Apache, Nginx, etc.) 

Good knowledge on application security 

Knowledge of Amazon Web Services (AWS) and its services, such as, but not limited to, EC2, RDS, EBS, S3, Lambda functions 

Qualifications:  

Bachelors or Masters in a relevant engineering discipline (Computer Engineering, Software Engineering, Computer Science are preferred) 

Language(s):   

English  

French is a plus  

 Our Technology Stack:  

Web framework: Django, Flask 

Background task: Celery, RabbitMQ 

Front-end: Angular 

API: FastAPI, DRF, flask 

TDD: Pytest, Locust 

Search: Sphinx 

Storage: MySQL, Mongo, Cassandra, Redis 

Source Control: Gitlab selfhosted for git and CI/CD 

Deployment: k8s, terraform, helm, Ansible 

Fresh Ideas Always welcome! 

 

We thank all applicants for their interest, however due to the large volume of applications we receive, only shortlisted candidates will be contacted.   

ENGIE is an equal opportunity employer, promoting diversity and committed to creating an inclusive environment for all. All applications are screened based on business needs, job requirements and individual qualifications, without any regard to origin, age, name, sexual identity, orientation or preference, religion, marital status, health, disability, political opinions, union involvement or citizenship. Our differences are our strengths!   

Confirm your E-mail: Send Email