Full-stack Software Engineer
Role details
Job location
Tech stack
Job description
You will work on front- and back-end projects that solve complex and important problems for our users. You'll spend your time improving existing features and developing new ones, such as:
- Core Platform Engineering: Improving conflict resolution and data synchronization for our offline-first web client.
- Advanced User Interfaces: Collaborating with our UX designer to build intuitive interfaces for complex tasks, like interactive dashboard layout, workflow design, and data mapping.
- Large language models (LLMS): integrating LLMs, where appropriate, in the platform to speed up configuration, formula authoring, and data analysis (definition)., Our platform is built on a stack chosen for its power, performance, and reliability in meeting our users' needs. It's not typical, but neither are our customers' requirements. You will work with:
- Core Logic: Java (running on both the server and compiled to JavaScript for the client via GWT)
- Frontend: We stay as close as we can to HTML, CSS, and Browser APIs, with a thin, internally-developed Virtual DOM layer inspired by Preact, Elm, and functional reactive programming.
- Databases: Our own custom query engine that targets IndexedDB on the client and Google Cloud Datastore for our multi-tenant SaaS server, and Sqlite for our on-premise offering.
Requirements
This is not a typical CRUD application or API integration role. We're looking for an engineer who thrives on complexity and can orient themselves within a large, mature codebase. You are a systems-thinker who can recognize and apply design patterns, and you understand the trade-offs involved in building durable, long-lasting software.
Most importantly, you are driven by user value. You take pride in building robust, performant features that solve real-world problems for people working in some of the world's most challenging environments.
We're looking for:
- Deep Problem Solvers: You are comfortable working independently to diagnose issues and design solutions across multiple layers of abstraction, from browser-based databases to backend data processing.
- Strong CS Fundamentals: Your experience is rooted in a deep understanding of the tools you're using. You can write clean, maintainable, and efficient code that takes advantage of Java's latest functional programming features.
- Curiosity and a Drive to Learn: Our domain is vast. You should be genuinely interested in learning about everything from IndexedDB and Web Workers to GIS, data visualization, and the specific challenges of humanitarian data management.
- Collaborative Spirit: You will work independently but as part of a close-knit, international team where helping colleagues and asking for help are second nature., * A degree in Computer Science, Engineering, or equivalent professional experience. We welcome candidates from non-traditional backgrounds who can demonstrate deep technical expertise.
- A minimum of 3 years of professional experience building software with object-oriented languages like Java, C#, C++, or a functional language such as Haskell, Elm, or F#.
- Proven experience delivering and maintaining complex, critical software systems. You can point to projects where you've navigated a large codebase and contributed to its long-term health.
Benefits & conditions
- Competitive Salary: A salary of €4500 - €6500 per month (before taxes, and including 8% vakantiegeld paid monthly for NL-based employees), depending on experience.
- Work-Life Balance: We value continuous weekly improvements over stressful deadlines and strive for a healthy, sustainable pace.
- A Welcoming Team: A diverse, international team that is supportive of all backgrounds and identities.
- Benefits: A contribution to a pension plan and 25 days of vacation per year.
- Flexibility: Hybrid working with flexible hours. We prefer candidates who can join us in our office in The Hague but are open to remote for the right person.
- Commuting Support: A public transport card for employees in the Netherlands.
- Professional Growth: Dedicated time and budget for your professional development.
We plan to hire multiple individuals for this role.