Senior Software Engineer

  • Full-time

Company Description

Our mission at Umba is to use machine learning to allow us to create affordable financial products for emerging markets.

Umba launched into the Kenyan market in November 2018, and offers a number of digital banking products to its users. We combine advanced tools and techniques to optimize risk exposures and have built a platform that allows users to apply, receive and repay microloans and through their smartphone.

Once a user creates an account we validate their information and make lending decisions based on the information they give us and hundreds of data points we take from their smartphone with their permission. Our machine learning models are in a state of constant improvement and we use AI and automation to deliver the lowest cost banking solutions for our growing customer base. We have built out a large data collection platform, with our data warehouse storing over 100m rows of data for accurate credit scoring.

Job Description

We are looking for a Back-End Web Developer responsible for managing the interchange of data between the server and the users. Your primary focus will be development of all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the Mobile Apps. We work in a fast moving environment, and we build our team to be autonomous, able to deploy their own code, and solve their own problems. 

We have split our infrastructure into microservices to divide responsibilities and allow autonomy in language choices. While not a requirement for this job, a healthy curiosity of devops concepts such as infrastructure as code, containerization and continuous delivery is welcomed, and we always encourage cross functional engineers to get out of their comfort zones and into new technologies & disciplines. 

You will be working with a small, but highly technical team. We have 250k users and work to ensure continuous uptime, and constant improvement. We train and deploy new machine learning models regularly and subscribe to data driven decision making, you will not be just an implementer, but a valued opinion at the table. 

Responsibilities

  • Build robust and scalable software in Python

  • Design and create services and system architecture for your projects, and contribute to existing infrastructure

  • Help improve our code quality through writing unit tests, automation and performing code reviews

  • Participate in brainstorming sessions and contribute ideas to our technology, algorithms and products

  • Dive into difficult problems and successfully deliver results on schedule

Qualifications

  • At least 4 years of recent hands-on coding and software design

  • Degree in engineering preferred, but significant work that can be shared will be accepted

  • Experience with Python, and the willingness to learn new technologies (experience with other object-oriented languages is okay too, but our backend code is mainly written in Python, so you should be able to get up-to-speed on at least one of them quickly)

  • Experience with Linux/Unix and scripting languages 
  • Java/Android development experience a bonus
  • A track record of projects completed on time – you are a flawless executor, not a procrastinator

  • Solid OOP and software design knowledge – you should know how to create software that’s extensible, reusable and meets desired architectural objectives

  • You’re so much fun to work with, that if you were working on the weekend, we’d want to join you.