- Writing robust, concise, and reusable code with accompanying tests and documentation. - Searching and reading the extensive, long-lived code base—which spans multiple libraries, projects, and programming languages—to understand, follow, and (where appropriate) challenge existing behavior and conventions. - Reviewing other developers’ code and providing constructive feedback. - Distilling requests from the humanitarian community into technically detailed feature requests (and, of course, writing bug reports!). - Scoping, prioritizing, estimating, and organizing work into manageable-sized tasks. - Attending regular videoconference check-ins with other members of the technical team. - 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. - Performing other related duties as directed by the lead developers.
Required Qualifications
- Experience writing, deploying, and maintaining server-side Python code for real-world, API-driven web applications. - Substantial understanding of relational databases, their performance characteristics, and methods of mapping relational data into an object-oriented programming environment. - Interest in data collection (surveying), particularly in humanitarian emergencies and other challenging contexts, and a desire to improve our platform for our users. - Proficiency with spoken and written English. - Fluency with Git. - Overlap with working hours in the Eastern time zone. - Average availability of at least 30 hours per week, preferably 35 hours or more.
Preferred Qualifications
- Experience with the following is preferred but not required to apply: - Django (and particularly Django REST Framework) - Celery - PostgreSQL - MongoDB - Redis - XLSForm, ODK XForm, and OpenRosa - NGINX and uWSGI - Ubuntu Linux - Docker, Kubernetes, and Helm
If you believe that your skills and expertise align with the requirements of this position, please send us your CV for review. Additionally, if you have a portfolio or examples of previous work, we would be interested in seeing them. We are eager to assess your qualifications and establish a cooperative relationship as soon as possible.