Software Engineer

Job Purpose/Mission  

We are looking for a talented, self-starting full-stack 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   

  1. Strongly contribute to the regular 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 ….) 
  2. 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. 
  3. Develop complex software that optimally uses resources to best meet customer needs. 
  4. 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. 
  5. 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... 
  6. Mentor junior engineers and provide technical guidance 
  7.  provide support where engineering intervention is required(e.g due to bugs or performance problems) 

Knowledge and skills  

Experience: 

  • At least 2 years of relevant experience 
  • Good knowledge of object relational mappers(and their implementation design patterns), No SQL, MySQL/PostgreSQL and storage options 
  • Appreciation for detailed source code documentation and organized code structuring 
  • Software deployment pipelines and best practice (CI/CD) 
  • Excellent written and verbal communication skills in English 
  • Working knowledge of good practices for computer and data security 
  • Experience with git and GitHub/GitLab based source code management   

Qualifications: 

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

 Language(s):  

  • English 
  • French is a plus 

 Technology: 

  • Programming language proficiency in Python and python web frameworks (Django, Flask…) or Ruby and RubyOnRails 
  • Javascript and typescript proficiency with strong knowledge of  Angular JS or VueJS framework(including angular 1.*) and hands on SPA implementation 
  • 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)  
  • TDD in javascript and python/Ruby 
  • Experience creating and maintaining scalable web applications in cloud context: elasticache, distributed task processing, load balancing, containerization, clustering 
  • Good experience on high availability, observability and structured logging 
  • API design to scale in Python/Ruby (REST, GraphQL,Apollo...) 
  • Knowledge of container orchestration using Docker/Kubernetes(and associated tools such as Kops, ksync, telepresence, terraform...),  is a strong advantage 
  • Server backend management experience (Linux, MySQL, Nginx, etc) 
  • 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  
Fenix International produces ultra-affordable mobile enabled solar solutions to empower more than 1.3 billion people living off-grid.