Get a reply from this employer
Your resume and cover letter, tailored to exactly what they’re hiring for.
4C Strategies is building Exonaut, a distributed platform used for planning, running and evaluating military exercises. You will work across the stack with Java or TypeScript, shaping the data model and core architecture to support graph-based domain representations for multiple national customers.
You will collaborate with product managers, designers and defence specialists, contributing to design discussions and hands-on implementation.
4C Strategies builds organisational readiness and military training management software for clients in over 70 countries. Our flagship product, Exonaut®, is used by NATO and allied forces to plan, run and evaluate exercises in real time. Our consultants and engineers work alongside armed forces across the UK, Europe, North America and beyond to deliver training and exercise management solutions.
This role works on Exonaut itself: two applications on one platform.
The first makes exercise assessment traceable. Every judgement about whether a unit is ready traces back through evaluations and observations to the training objective it was meant to test, and that chain holds across exercises and over time. The second coordinates training programmes: dozens to hundreds of exercises, force-generation events and capability activities that compete for the same units, training areas and enablers. We model a programme as a graph of dependencies, so a conflict surfaces before anyone commits to it, not weeks later at a planning conference.
Both run on a meta-model platform that lets one product core serve structurally different national customers. Each customer arrives with its own doctrine, vocabulary and governance, and we absorb that variation as versioned, governed configuration, never as a fork of the code. The hard part is holding that line: keeping the domain model deep and coherent while every customer has a reasonable-sounding case for one more special case.
Modern Java — currently 25 — on the backend, an Angular and Nx frontend in TypeScript, PostgreSQL, and Liquibase-managed migrations. The platform has years of production use behind it, and we are modernising it in place rather than rewriting it: mainstream frameworks replacing hand-rolled infrastructure one area at a time, an explicit API contract, and business rules in the backend, where they belong.
The principles are conservative on purpose. Evolve, don't rewrite. Configuration over code forks. The domain model carries the load: given the choice between a richer model and shipping sooner with a thinner one, we invest in the model. Governed by default: every element has a visible state, an owner and rules for how it changes. Standardise over hand-roll. Structural decisions are argued in RFCs and recorded in ADRs.
Three constraints shape most of what we do. It runs inside the customer's own environment, on premises and often air-gapped, so nothing may assume a managed cloud service or a route to the internet. Many versions run in the field at once, each upgraded only in a scarce, accreditation-bound window, so every release ships as a self-contained package with a rollback that has actually been tested. And every decision is traceable — who assessed or approved what, when and on what basis — in an audit trail that cannot be rewritten. AI may assist; it never makes the assessment or the decision.
You will work across the stack. Substantial experience in either Java or TypeScript, and a genuine willingness to be useful in the other. Opinionated about design, and comfortable arguing a position in writing. Sound judgement about data modelling, because the central questions here are modelling questions: how to represent graph-shaped domains on a platform built for trees, and make them perform at the scale of a six‑week campaign. Patience with a codebase that has history, and the discipline to improve it step by step rather than wish it away.
A real advantage, though none of it is required: modernising a mature system in place; graph data modelling or query performance; workflow and state‑machine design; on‑premises, air‑gapped or accredited deployments; or knowing how defence organisations train, exercise and plan. The domain is learnable, the judgement less so.
You'll work alongside product managers, designers and defence specialists who know this domain well. Your designs will be challenged, and you'll be expected to challenge back — including on scope.
Research shows some people only apply when they meet every requirement. If you don't tick every box but recognise yourself in much of the above, please apply anyway. We'd genuinely like to hear from you.
This role supports defence work, so the successful candidate must hold Swedish citizenship and pass Swedish security vetting (säkerhetsprövning). We will explain what the check involves early in the process rather than late — a requirement like this should never be a surprise at offer stage.
This requirement comes only from the security rules that govern defence work, not from personal preference.
Deterrence works only when a capability is real, and a capability is only real once it has been trained and tested under conditions close to the ones it would face. When a commander reports that a formation is ready, that judgement has to rest on evidence, not opinion. Exonaut is where that evidence is planned, gathered and defended.
We then debrief as a panel and decide. We review applications on a rolling basis.
This is a senior role on a product used in earnest, at the point where its platform's next shape is being decided. The direction is set — evolve it, standardise it, model the domain properly — and the people who do that work well are the people who decide how it is done. You'll work alongside experienced engineers and military specialists, with the individual‑contributor track valued as highly as management, so you can grow without leaving the code behind.
The work matters: what you build helps armed forces, public safety and resilience organisations train, prepare, and respond.