Share this Job
Kampala, Uganda
Full-time
About the Organisation
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.8 million customers and more than 9 million lives impacted so far, ENGIE Energy Access aims to impact 20 million lives across Africa by 2025.
Job Title
Software Engineer job at ENGIE Energy Access
ENGIE Energy Acces
Job Description
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.
Duties and 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 ….)
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.
Work close with stakeholders to deliver solutions which fit the needs of the business.
Participate in Peer-Review, ensuring high quality software solutions with a minimum of bugs and unforeseen side-effects.
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).
SERVICES
COMMERCIAL
SERVICES
INDUSTRIAL
SERVICES
RESIDENTIAL
SERVICES
COMMERCIAL
SERVICES
INDUSTRIAL
SERVICES
RESIDENTIAL
SERVICES
COMMERCIAL
SERVICES
COMMERCIAL
SERVICES
COMMERCIAL
SERVICES
COMMERCIAL
SERVICES
INDUSTRIAL
SERVICES
RESIDENTIAL
Qualifications and Competencies
Required Skills & Experience
Bachelors or Masters in a relevant engineering discipline (Computer Engineering, Software Engineering, Computer Science preferred).
2 - 3 years of practical experience in software engineering.
Programming language proficiency in Ruby and Rails and front-end/javascript frameworks(jQuery, Angular JS, Vue JS).
HTML4/5, CSS3, AJAX along with strong knowledge of DOM
TDD in Ruby/Rails.
Experience creating and maintaining scalable web applications: Background Jobs, Event Queues, Containerization, Linux.
Experience on high availability, observability and structured logging
API design to scale in Ruby (REST, Graphql, ...).
Good knowledge of Databases (Mysql) and object relational mappers (ActiveRecord) 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.
Desired Skills and Experience
4+ years of experience.
Forward thinking with ability to recognize the impact of technology in business.
Strong software engineering and architectural patterns background (MVC, MVP, CQRS, DDD, SOLID, hexagonal, Microservices).
Knowledge of key components and dependencies used in current system: ActiveAdmin, Grape, Sidekiq, Rspec, Searchd.
Knowledge of container orchestration using Kubernetes(and associated tools such as Kops, ksync, telepresence, terraform...), is a strong advantage.
Server backend management experience (Linux, MySQL, Systemd, Apache, Nginx, etc).
Good knowledge of web application security.
Knowledge of Amazon Web Services (AWS) and its services, such as, but not limited to, EC2 ,RDS, EBS, S3, Lambda functions.
Working knowledge of good practices for computer and data security.
Experience with git and GitLab based source code management.
How to Apply
APPLICATION FOR THIS POSITION MUST BE DONE ONLINE:
Are you interested? Click the "APPLY" button below to submit your application.