Senior DevSecOps / Full-stack Engineer
EUR 60,000 to 80,000 per year, gross, full-time
Place of work: Remote, worldwide.
Contracting arrangement. The form of engagement, the contracting entity and the governing law are settled at offer stage and are not stated here, because they depend on where the successful candidate is based and have not been decided in advance. The candidate is responsible for their own right to work where they live, and the specifics are discussed at the same point.
Variable component. An annual variable component contingent on company performance is paid in addition. It is stated separately rather than added into the range, because the range is what the company commits to and the variable component is not: in a year the company does not perform, it is not paid.
Discipline. Engineering
The mission
The platform runs today as managed hosting. Institutional and government buyers in the anchor markets increasingly cannot use it that way: they want it delivered onto their own infrastructure, under their own controls, with no dependency they did not agree to. An engineering blueprint for that delivery exists and is honest about what does not package. This role turns it into a deployment that runs, and keeps shipping product code while doing it.
What the first 90 days actually look like
- Vendor the remote module imports the edge functions resolve at boot into a checksummed build artefact, so a deployment inside a private network never reaches for a public registry to start.
- Stand up the reference stack in containers: Postgres with its extensions and its full migration history, the auth service, the REST layer, object storage, a gateway and the function runtime, on core Kubernetes primitives that behave the same on any managed cluster.
- Decide the canonical fresh-install path in writing, bootstrap schema first and then forward migrations, and prove it on an empty cluster rather than asserting it.
- Come back with the honest list of what does not package. The largest known item is that day-to-day operations currently assume a hosting dashboard that a client deployment will not have, and the runbooks that replace it do not exist yet.
What the role owns after that
- Infrastructure as code and the deployment manifests, written against core primitives rather than one cloud vendor, so the same set runs on a client’s managed Kubernetes whoever operates it.
- The release path: artefacts built outside the client perimeter, signed, published with their digests and a software bill of materials, and verified at the door. The client’s security team approves every update, which only means something if the mechanism makes it literally true.
- Default-deny egress, and documenting the exact byte shape of every flow that is allowed through, so the client’s network team can inspect the channel instead of trusting a description of it.
- The seams. Mail, identity, model endpoint and timestamping are each a switch the client sets, each with a stated consequence for what may then be claimed, and each fail-closed when it is switched on but unbound. Absence of a silent fallback is the security property.
- Serving a small language model on the client’s own hardware inside the perimeter, for the AI surfaces that are switched on, so a prompt has no path outward at all.
- Product engineering, continuously. Roughly half the work is the React application and the server-side functions behind it. This is not a platform-only post.
What it takes
- Has containerised a stateful Postgres service, run it in production, and restored it from backup for real rather than in a runbook.
- Works in Kubernetes with core primitives and can explain why a stateful set with a volume claim template is not the same thing as an operator-managed database.
- Writes TypeScript across a front end and server-side functions, and is content to spend half a week in product code.
- Has kept a fail-closed control closed under delivery pressure, and can describe the conversation that took.
- Reads Postgres row-level security policies and can explain how a plausible-looking one leaks.
- Works remotely and unsupervised on a surface nobody else owns. The role is open to candidates anywhere in the world, and the first 90 days above are the honest description of what the first quarter costs.
What this role is not
- Not a Kubernetes-only platform post. About half of it is application code, and someone who wants to stay out of the product will be unhappy.
- Not greenfield. The platform exists, carries a long migration history, and every packaging decision is constrained by it and by what the company is allowed to claim.
- Not an audit or assurance function. The guards here are code that runs, not findings written up about somebody else’s code.
- Not a lead role with people under it. There is nobody to lead yet, and the advert will not pretend otherwise.