Nafundi is seeking a Senior Software Engineer to play a lead role in the evolution of ODK. 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?
- 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)
- Experience leading large refactors and/or migrating from one technology to another
- Demonstrated ability to design and build software systems
- Demonstrated ability to think carefully and methodically about technical tradeoffs
- Demonstrated ability to clearly document and communicate assumptions and to collaborate asynchronously through forums, code repositories, etc
- Demonstrated ability to self-motivate (side projects, open source contributions)
- 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 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 (@yanokwa) and Hélène Martin (@ln), are lead maintainers on Open Data Kit 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.
If this job sounds like a good fit, please send a brief email describing your interest, links to or descriptions of relevant projects you have worked on, and your resume to firstname.lastname@example.org with the subject "Senior Software Engineer for Open Data Kit".