Nafundi is seeking a full-time Senior Android Developer to play a lead role in the evolution of Open Data Kit, 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 the existing app or in a companion app?
Adding minor functionality (e.g., a new type of text input) requires updating multiple components. How do we reduce interdependencies?
How can the geo coordinate implementations in the Collect app evolved to better match the ODK XForms specification while continuing to serve the needs of users with existing forms?
How do we rework the user interface of Collect to take advantage of larger screen devices without disrupting the hundreds of thousands of users who have smaller format devices.
Responsibilities include:
Thinking strategically and systematically about how to evolve a legacy codebase
Designing and building on a number of Java-based tools
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)
Increasing our score on the Joel Test
Minimum qualifications:
Five or more years of professional software development experience on Android
Experience with 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 code bases
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
How to apply
In the ‘Introduce yourself’ section or cover letter of your application, 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.
