Software Engineer (Cloud native)

Share this job:
  • Full Time
  • Kampala

ENGIE Energy Access

Job Purpose/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):   

  • English
  • French is a plus

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!
Share this job:

Powered By WordPress | Espy Jobs