Job Title: Software Engineer
Hiring Organization: ENGIE
Energy
Location – Locality: Nairobi
Location – Region: Kenya
Industry: Energy
Job Type: Full
Time
Salary: KES
Competitive
Date Posted: 03/12/2024
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.
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)
- Experience and
skills
Required:
- At least 3 years
of relevant experience
- Programming
language proficiency in Ruby and mastery of Rails framework
- Good knowledge
of object relational mappers (and their implementation design patterns),
No SQL, Mysql 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
- Strong software
engineering and architectural patterns background (MVC, MVP, CQRS, DDD,
SOLID, hexagonal, Microservices)
- Experience
creating and maintaining scalable web applications in cloud context:
elastic cache, distributed task processing, load balancing,
containerization, clustering
- Good experience
on high availability, observability and structured logging
- API design
(REST, GraphQL,Apollo…)
- Knowledge of
container and container orchestration
- Web and
application Server backend management is a strong advantage and basic
Linux server system administration.
- Good knowledge
of web application security with standards such as OWASP
- 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)