EngineeringJakarta, Indonesia, JakartaFull-time

Backend Engineer

About the role

You build the server side of the software our Dutch clients run their business on. Our backend stack is deliberately broad: Node.js, .NET, Laravel, Python, Java, PHP, Dart and Go, with PostgreSQL and MongoDB behind them. Nobody here knows all of that and we do not expect you to. We look for people who are genuinely deep in part of it and willing to pick up the rest when a project asks for it. This is product engineering rather than ticket work: APIs other teams depend on, data models that still have to make sense in three years, and integrations with systems a client has run since long before we arrived.

This seat matters because it is where delivery either holds or slips. The engineering team in Jakarta is substantial, so a backend decision reaches a lot of projects at once, and when one is wrong every project touching that service feels it within a week. That is also why you get to make the call yourself instead of waiting for someone to hand you a fully specified ticket.

What you'll do

  • Design and build APIs and services in whichever part of our stack the project runs on, from data model through to a deployed endpoint.
  • Own the data layer: schema design, query performance, and migrations that run safely on live data.
  • Integrate with client systems and third-party APIs, including the badly documented ones.
  • Write the tests that let us change a service next year without holding our breath.
  • Review your colleagues' code and explain the reasoning, not just the verdict.

How we build

We care more about the foundation of a solution than about the speed of the first demo. That means data models and architecture that still hold up in three years. It also means governance, compliance and traceability are designed in from the start instead of bolted on afterwards. When we put agents to work, we record what they did and why, so a decision can always be reconstructed and a client can always be shown the trail. Anyone can get a prototype running. Building something a business can still rely on in two years is the actual job.

Concretely, and starting from the client rather than from us: what we build on depends on the stack they already run and on what will integrate cleanly with it. Where we are free to choose, the default is a TypeScript and Node.js application layer, with the Vercel AI SDK and direct provider APIs on top of Claude, OpenAI, Gemini and Mistral. Azure AI Foundry is what we build business and enterprise applications on, because that is where governance and stability have to be guaranteed rather than argued for afterwards. Python turns up wherever a data or evaluation job is better served by it, PostgreSQL with vector search sits behind retrieval, and React with TypeScript and Tailwind covers the front end. Automation that does not deserve a codebase runs on n8n. You will not have touched all of it, nobody here has, and part of the job is judging when our default is the wrong answer for a particular client.

How we work

You work in one team with our consultants in Eindhoven, not as a separate supplier taking orders. We keep fixed overlap hours so standups, planning and feedback happen live instead of in a comment thread you read the next morning. There are at most two links between you and the client, which means you hear why something is being built and you can push back when the reasoning does not convince you. Our founders travel to Jakarta regularly, and the team travels to the Netherlands. We hold ourselves to the same standard we sell: our own daily operations get improved alongside client work, and when something we built ourselves stops holding up we rebuild it rather than patch around it.

Bonus points

  • Experience with Go or .NET alongside your main stack.
  • You have run something in production and carried the pager for it.
  • Experience with event-driven architectures or message queues.
  • Open-source contributions, or a side project you can walk us through.
  • Experience working with European clients.

Growth, and what we offer

Where we are right now, so you can judge what you are joining: the Jakarta hub is expanding, and our clients are in the Benelux and the wider EU. That is where the focus sits. Our Dutch engineers sit with the client and build the work together with the team in Jakarta, on the same day rather than across a handover, because what we are working towards is being the technology partner a client trusts with the things that matter rather than a supplier you send a specification to. Growing into the Indonesian market comes after that, and the first commercial seat in Jakarta is where it starts. You arrive while all of this is still taking shape.

  • A competitive salary benchmarked against the Jakarta market for senior engineering work, reviewed every year.
  • Year one you go deep on our stack and our delivery standards. Year two you lead a workstream or mentor the engineers who join after you. When a lead role opens we look inside the team first.
  • We listen to our OneMinders. If you see a better way of working, you get the room to develop it and the backing to actually roll it out. Your opinion counts here, and this company is shaped by the people in it.
  • An annual learning budget tied to that path, not a perk that nobody claims.
  • Hardware of your choice.
  • Direct access to the founders. There is no layer of account managers between you and a decision.
  • Work that funds something: every project contributes to educational initiatives in Indonesia.
  • The chance to work with, and travel to, the team in the Netherlands.

How we hire

You speak with the people you would actually work with, not a screening layer that passes you on. The process is the same in Eindhoven and in Jakarta, and from your application to an offer takes three to four weeks.

  1. 1

    The founders

    Why us, why you, and whether we mean the same thing.

  2. 2

    The Tech Lead

    The work itself: the substance of the role, and what you would actually be doing in it.

  3. 3

    A teammate

    Someone you would work with daily, not the person who would manage you.

Bring something you built to that second conversation and walk us through it. It is not an extra round and not a puzzle we invented: it is that conversation. A side project, something from work you are allowed to show, a repository you are proud of. If everything you have built sits behind an NDA, tell us and we will find another way.

Requirements

  • 5+ years building backend services. You are genuinely strong in at least one of Node.js, .NET, Java, Python, Laravel, PHP or Go, and willing to work in another when a project calls for it.
  • Solid database skills. You design schemas and read query plans rather than only writing queries. PostgreSQL and MongoDB are what we use most.
  • You treat tests as part of building, not as a separate chore afterwards.
  • Professional English, spoken and written. You work with Dutch colleagues and clients every day, so this is a hard requirement.
  • You propose an approach and defend it, rather than waiting for a fully specified ticket.
  • You raise a problem when you spot it, including when it sits outside your part of the code.
  • You are amplified by AI and still accountable for what ships. Claude, Opencode and the rest of our AI tooling are part of the daily job here, and so is the other half of it: you read and review every line that goes out under your name, and you can defend it. Code nobody can explain does not pass review, whatever produced it.
  • You are curious beyond your own ticket. You think along on our client solutions and on how we run our own shop, and you say plainly where AI genuinely adds value and where a simpler integration or automation would do the job better.
  • Do not tick every box? Apply anyway if you bring real depth, projects you are proud of and knowledge you can demonstrate. That weighs more heavily with us than an exact number of years.
Posted 9 August 2026
Apply now

Questions about this role?

Talk to us