Posted:Nov 8
By:Hiring Kenya
Company Details
Industry:
Civil Engineering
Description:
ENGIE is a leading world group that provides low-carbon energy. Our group is a global reference in low-carbon energy and services. Our purpose (raison d'tre) is to act to accelerate the transition towards a carbon-neutral world, through reduced energy consumption and more environmentally-friendly solutions, reconciling economic performance with a positive impact on people and the planet. We rely on our key businesses (gas, renewable energy, services) to offer competitive solutions to our customers. With our 170,000 employees, our customers, partners and stakeholders, we are a community of Imaginative Builders, committed every day to more harmonious progress.
Job Description
Mission
- EEA is looking for a talented, self-starting senior Software Engineer (cloud native) to join the team to help deliver affordable solar power and financial services across Africa. 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 and lead the evolution of at least one of our software products.
Responsibilities
- Define software engineering strategy and architecture with other leaders, fully responsible for the technical evolution of at least one software product, responsible for the entire software development lifecycle (SDLC) from ideation to deployment
- Implement and optimize microservices and RESTful APIs to ensure scalability and ease of integration for cloud-based applications.
- Architect and implement solutions that cater to multi-tenant environments, ensuring tenant isolation, efficient resource utilization, and data security.
- Develop scalable data partitioning and tenant onboarding solutions to manage multiple tenants seamlessly while maintaining high performance.
- Ensure proper configuration and management of tenant-level security, quotas, and SLAs.
- Develop and deploy applications using Docker containers to ensure consistency across multiple environments (development, staging, production).
- Use Kubernetes to orchestrate containerized workloads, enabling horizontal scaling, high availability, and automated deployments in multi-tenant architectures.
- Manage and optimize Kubernetes clusters for tenant-aware scaling, load balancing, and service discovery.
- Build and maintain fully automated CI/CD pipelines (using tools like Jenkins, GitLab CI, or CircleCI) to enable continuous integration and continuous deployment across multiple environments.
- Integrate automated testing, including unit, integration, and end-to-end tests into CI/CD pipelines to ensure early detection of issues and smooth rollouts.
- Implement blue-green deployments, canary releases, and other progressive delivery techniques to reduce downtime and minimize risks during deployments in multi-tenant setups.
- Design, implement, and manage cloud infrastructure using AWS, Google Cloud, or Azure, ensuring the infrastructure supports the demands of multi-tenant applications.
- Implement infrastructure as code (IaC) using tools like Terraform or AWS CloudFormation to automate provisioning and scaling of infrastructure.
- Ensure that the cloud environment is configured for cost-efficiency, elasticity, and fault tolerance while maintaining strict adherence to security and compliance standards.
- Implement and manage monitoring and alerting systems (using tools like Prometheus, Grafana, Datadog, or New Relic) to track application performance, usage, and tenant-specific metrics.
- Proactively monitor and troubleshoot production issues, ensuring high availability and uptime for multi-tenant applications.
- Conduct root cause analysis on system failures or performance degradation and implement necessary optimizations or patches.
- Continuously optimize application performance to support the scalability demands of multiple tenants, ensuring low latency and high throughput.
- Collaborate with cross-functional teams, including DevOps, product management, QA, and other software engineers, to align on requirements, technical specifications, and deliverables.
- Participate in code reviews and provide constructive feedback to peers to improve overall code quality and team productivity.
- Stay up-to-date with the latest trends and technologies in cloud-native development, containerization, Kubernetes, and multi-tenant architecture.
Knowledge And Skills
Experience:
- 5+ years of experience as a software engineer with a focus on cloud-native development.
- Proficiency in Python and Ruby web frameworks (e.g., Django, Flask, Ruby on Rails, Sinatra).
- Strong experience with Docker and Kubernetes for container orchestration in production environments.
- Experience building and maintaining CI/CD pipelines in a multi-tenant architecture.
- Strong knowledge of RESTful APIs, microservices architecture, and distributed systems.
- Cloud Platforms: Expertise in AWS, Google Cloud, or Azure, including services like EC2, Lambda, S3, RDS, etc.
- Version Control: Proficiency in Git and branching strategies for multi-tenant development.
- Infrastructure as Code (IaC): Experience with Terraform, AWS CloudFormation, or similar tools.
- Testing: Proficiency in automated testing frameworks (e.g., RSpec for Ruby, PyTest for Python) and integrating them into CI/CD pipelines.
- Monitoring: Experience with application performance monitoring (APM) tools (e.g., Prometheus, Datadog, New Relic).
- Strong problem-solving and analytical skills, with a passion for building scalable and reliable systems.
- Excellent written and verbal communication skills, with the ability to collaborate effectively across cross-functional teams.
- Ability to work in a fast-paced, agile development environment.
Nice to Have
- Experience with multi-tenant architecture in a SaaS environment.
- Familiarity with serverless architectures (e.g., AWS Lambda, Google Cloud Functions).
- Knowledge of GraphQL APIs and their integration with multi-tenant systems.
- Understanding of security best practices in cloud-native applications, including IAM roles, data encryption, and secrets management
Qualifications:
- Bachelors or Masters in a relevant engineering discipline (Computer Engineering, Software Engineering, Computer Science preferred) or comparable
Language(s):
Our Technology stack:
- Web framework: Rails 5 , Django, flask, fastapi
- Mobile: Android Kotlin/Java
- Background task: Sidekiq , Celery, RabbitMQ
- Front-end: ActiveAdmin, VueJS, Angular
- API: Grape, Devise, DRF, FastApi
- TDD: RSpec , PyTest
- Search: Thinking Sphinx
- Storage: MySQL, Mongo, Cassandra, Redis
- Source Control: Gitlab selfhosted for git and CI/CD
- Deployment: Capistrano, Ansible
- Fresh Ideas Always welcome!
Education: Degree, Diploma
Employment Type: Full Time