This position is now closed. Thank you for your interest in KoboToolbox!

Core Developer Team Openings

KoboToolbox is a state-of-the-art, open-source suite of tools for data collection and analysis in humanitarian emergencies and other challenging environments. Kobo’s mission is to relieve human suffering in war and disaster by advancing the science and practice of humanitarian response worldwide.

KoboToolbox is used and trusted by over 14,000 organizations around the world, and we are expanding our core team of developers to meet this strong demand from the humanitarian community. By joining us, you will be working in partnership with the UN High Commissioner for Refugees, the United Nations Office for the Coordination of Humanitarian Affairs, in cooperation with many nonprofit organizations, and through Kobo’s affiliation with the Harvard Humanitarian Initiative to improve humanitarian data collection methods worldwide.

At this time, we are looking for two remote contractors whose typical availability to contribute to our project is around 35 hours per week. We welcome your application regardless of whether you consider yourself a full-stack developer or prefer to focus more specifically on back-end or front-end technologies.

  • Back-end development: We are happy to consider developers with diverse professional experience, provided they are committed to mastering our back-end technologies and already familiar with Python as applied to web applications. Experience with Django or a similar back-end framework is a big plus.

  • Front-end development: As above, we welcome your application even if you have not used all the specific technologies in our stack, so long as you have comparable experience and a strong resolve to get up to speed quickly and independently.

For reference, the Kobo environment includes the following, although experience with all of these is not required:

Back-end

  • Python
  • Django (and particularly REST Framework)
  • Celery
  • PostgreSQL
  • MongoDB
  • Redis
  • Node.js
  • NGINX and uWSGI
  • Ubuntu Linux
  • AWS: EC2, S3, EKS, RDS, DocumentDB, ElastiCache
  • Azure: AKS and managed databases (PostgreSQL, MongoDB, Redis)
  • Kubernetes and Helm

Front-end

  • HTML5
  • CSS3 (via SCSS)
  • TypeScript and ECMAScript 2015 (ES6)
  • React, JSX, and MobX
  • (Some) CoffeeScript and Backbone.js
  • npm, webpack, and Grunt
  • Cypress

Overall

  • XLSForm and XForm
  • Git
  • GitHub for most aspects of developer workflow and collaboration
  • GitLab (primarily for CI/CD)
  • Notion
  • Docker (for development as well as production)

We’re happy to use another open-source, Django-based tool for our internal communication: Zulip

Those who join our international team will immediately assume a hands-on role with integral responsibilities that include, among others:

  • Writing robust, concise, and reusable code with accompanying tests and documentation;
  • Searching and reading the code base—which spans multiple libraries, projects, and programming languages—to understand existing behavior and conventions;
  • Reviewing other developers’ code and providing constructive feedback;
  • Distilling requests from the humanitarian community into technically detailed feature requests (or, sometimes, bug reports!);
  • Communicating with the public in conjunction with our support staff or directly through forums, issue trackers, etc.;
  • Shaping the design and architecture of the overall tool suite collaboratively with the larger team.

Beyond technical acumen, we value curiosity, initiative, persistence, cooperative problem-solving, and egalitarian decision-making. Humanitarians around the world will depend on your work every day.

How to apply

We seek contractors who desire a long-term relationship (ideally one year or more) and who can commit significant time to our project (preferably around 35 hours per week). If your skills and schedule dovetail with our needs, and you are up for the challenging-yet-rewarding work of supporting humanitarians worldwide, please fill out this questionnaire to apply.