Job opening for Senior Software Engineer on ODK

Jul 24, 2017

This position has been filled. Thanks to everyone who applied!

Nafundi is seeking a Senior Software Engineer to play a lead role in the evolution of ODK, a series of open source tools for social good organizations to collect data quickly, accurately, offline, and at scale. The ideal candidate has experience with high-level software system design, modernizing legacy codebases, and writing maintainable code.

Some of the decisions you will participate in making and implementing solutions for:
  • Should this requested feature (e.g., messaging users) be implemented in an existing system component or a new system component?
  • Adding minor functionality (e.g., a new type of text input) requires updating multiple components. How do we reduce interdependencies?
  • How can the 'get geopoint' implementations in the Collect Android app be evolved to better match the ODK XForms specification while continuing to serve the needs of users with existing forms?
  • Is this core technology (e.g., XForms, native Android) worth continuing to build on?
Responsibilities include:
  • Thinking strategically and systematically about how to evolve legacy codebases
  • Designing and building on a number of Java-based tools (Android, J2EE, JSE)
  • Working with the community to specify and implement new features and tools
  • Reviewing other community members’ code
  • Implementing code quality best practices (testing, separation of concerns, etc)
Minimum qualifications:
  • Experience doing large refactors or rewrites of legacy code
  • Experience leading a team of developers with varying skill levels
  • Demonstrated ability to read carefully, write clearly, and think methodically
  • Demonstrated ability to self-motivate (side projects, open source contributions)
Preferred qualifications:
  • Experience working on large Java codebases (Android or J2EE or JSE)
  • Experience working remotely and leading globally distributed teams
  • Interest in user interfaces, user experience, visual design
  • Code contributions to open source projects
  • Experience living and working in underserved communities
What we offer:
  • Contribute to an open-source project with immense social impact
  • Work with a distributed, open, and fun community eager for improvements
  • Flexible multi-year contract-based arrangement
  • Flexible hours, remote work, and location independence

About the product

ODK is a free and open source set of tools for social good organizations to collect data quickly, accurately, offline, and at scale. ODK's design enables novice users to collect data in challenging environments and its robustness in these environments has driven the platform's adoption as the de-facto standard for mobile data collection in social good projects.

ODK has been used by thousands of organizations like Red Cross, United Nations, New York City, Carter Center, Jane Goodall Institute, Johns Hopkins University, Gates Foundation, Centers for Disease Control, USAID, and many others. Example projects include gathering real-time election data in emerging democracies, forest monitoring in Indonesia, and tracking polio vaccinations in the Middle East.

About the organization

Nafundi's mission is to create technologies that improve the lives of the underserved. Our current focus is designing, building, deploying, and supporting open-source mobile data collection systems that work well in challenging environments (e.g., offline villages in rural Kenya, humid rain forests in Brazil, and even the International Space Station).

Nafundi's leadership, Yaw Anokwa and Hélène Martin, are lead maintainers on ODK and both have deep experience in computer science and global development. They manage a fully distributed team of developers, implementers, and trainers who work across countries and sectors to design, build, deploy and support data collection tools for a wide variety of projects with large social impact.

To apply

If this job sounds like a good fit, send your resume to jobs@nafundi.com with the subject "Senior Software Engineer for ODK". In the email, please answer these two prompts:

  • Describe an experience where you personally refactored a large (>20K LOC) and untested code base and the strategy you took to ensure the refactor was safe.
  • Describe how you led a team of developers with varying skill levels and the strategy you used to delegate tasks.

Applications that do not include answers to these prompts in the 'Introduce yourself' section or in a cover letter will not be read. Contract rate and length are negotiable based on experience and interests.

Recent posts