We are seeking a Software Engineer with a focus on database systems and data processing to join the ActivityInfo development team. This position is open to both senior engineers and those with 2+ years experience but a strong motivation to learn.
ActivityInfo is a comprehensive platform for data collection, storage, and analysis, primarily in humanitarian aid contexts. The platform is used by the UN, governments, and NGOs of all sizes in 50+ countries.
We are looking for an experienced, full-stack Java developer to join our development team and help us to continue to build out a product that our users love and that plays an important role in humanitarian relief worldwide.
Some of the work you would do includes:
Add new data visualizations to our analysis toolbox
- Work with our UX designer to build user interfaces that make complex tasks, like dashboard layout, simple for users
- Increase the performance of our system for large datasets
- Design and implement multi-level caching for complex analytical queries
- Improve conflict resolution during synchronization with our offline web client
- Extend and improve our formula language and its interpreter
- Develop a pipeline for automated analysis of user data sets
- Ensure that key tasks in the application are accessible to visually impaired users.
Our codebase is written in Java, both frontend and backend. We have high test coverage and use a highly functional flavor of Java to ensure that the compiler can verify as much as possible at build time.
Our team is small but highly productive. We strive to maintain a healthy work life balance and value releasing continuous improvements each week instead of stressful deadlines.
We would prefer to find someone who can join us physically in our office in the Hague, but will consider remote candidates with the right experience.
Some of the qualities you will have include:
- You are good at Getting Things Done. You know how to keep the scope of complex features under control so you can incrementally release improvements to our users.
- You have experience working with large, complex systems with well-defined boundaries between components. You know how to orient yourself in a large codebase and can recognize design patterns.
- You have a focus on producing value for our users. You have an interest in how they use the software and know that technology and software exist to meet their needs.