We prefer to fill this position without the help of recruitment agencies.

Careers

Senior Software Engineer

You build software for customers whose processes are too complex for off-the-shelf products. A team of AI agents does the groundwork — you lead, review and take responsibility.

Full-time, by arrangement.

Zürich, Switzerland

Jobs

About the role

We turn business processes into software — for ewz, MeteoSwiss, Zurich Water Supply, the Liechtenstein Post and the FAR foundation. What we build is used by 2.5 million people. Our engineers work with AI agents every day: the agents read code, propose changes, run tests. We try this on our own operation first — on our five tools, on this website, on the quote generator we quote with ourselves. You are not doing the groundwork for a machine — the machines do the groundwork for you. You decide what gets built, review what comes back, and stand behind the result. The bottleneck is no longer how fast you type, but how reliably you spot a suggestion that looks plausible and is wrong. The domain is uncomfortable: tariffs, billing, permit procedures. Where a wrong answer is expensive, a chatbot will not do.

What you will do

You own releases of an application — from domain discovery through to running operations.
  • Domain discovery: You work with the customer's domain experts to uncover what the problem really is — using event storming, domain modelling and a ubiquitous language that is the same in the team and in the code.
  • Design and delivery: You design domain concepts, implement them exemplarily and see the work through — from the domain model through the API to the interface.
  • Delivering with agents: You delegate routine to agents, review every result and take responsibility for it. You recognise when an agent hits a limit, and take over there yourself.
  • Securing reliability: You build the checks that prove something is correct — tests that can go red, and test data that is worth something in domain terms. With agent-generated code in particular, this is the work nobody can delegate.
  • Automation: You keep build, delivery and operations of the application running, and improve them where they slow the team down.
  • Coaching: You pass on development techniques in the team — TDD, refactoring, pair programming, code reviews and agentic development: how to commission an agent, review its result and stand behind it.
  • Tools: You contribute to our own tools — AppShell, Magellan, webbloqs and websmith — and feed back what you learned on the project.

What you will work with

TypeScript and Java are not negotiable. We work in both every day; you need to be confident in one and willing to learn the other. .NET, PHP, Python or frontend alone do not carry this role. Alongside them Spring and Node.js, REST and WebSockets, modern web standards. We build on our CDS platform with connectors to SAP, Salesforce, HubSpot and Dynamics. On agent tooling we are not committed to anything. We do not expect experience with a particular tool — the willingness to engage with it, yes. Check us before you apply: 28 repositories on GitHub, among them Magellan and websmith open source — code instead of a description.

What the work actually looks like

Four examples from applications we run. If these questions interest you rather than put you off, the role fits.
  • A pension is recalculated retroactively because a regulation changed three years later. The application has to know both: what applied then and what applies now — bi-temporal data, so every payment stays traceable.
  • A construction worker applies for a bridging pension at 60. The application runs through a review path with four-eyes approval, role-based assignment and exceptions that live in the regulations and are modelled in BPMN.
  • A customer portal shows invoices and consumption data that live in SAP and stay there. Identity comes from the City of Zürich identity provider. You decide what the portal may cache and what it has to ask for every time.
  • A master data record is maintained in two systems and they disagree. You work out with the domain department which system holds the truth — before you write a line of code.

What you bring

All five must apply. If one does not, you will get a rejection from us — this is not a wish list.
  • Release responsibility in the last two years. At least five years building software overall. Platform operations, test automation and consulting without delivery responsibility do not count.
  • Production code built with AI agents, shipped. In the interview we ask for a case where an agent delivered something plausible and wrong — and what you changed as a result. Copilot as autocomplete does not count.
  • You have taken a green test suite apart because it proved nothing. We ask for the specific case.
  • TypeScript or Java confidently, the second one willingly. A different stack does not carry this role.
  • Du moderierst einen Fachworkshop auf Deutsch, inklusive Dialekt. C1 auf dem Papier genügt oft nicht. (Stated in German on purpose: domain discovery happens in German, every working day.)

These help — they are not conditions

  • Domain-driven design, event storming or BPMN
  • Domain discovery led yourself, rather than waiting for a specification
  • Development techniques passed on — TDD, refactoring, pair programming, agentic development

This role is not for you if

Four reasons we have recently sent rejections.
  • You want to specialise in one technology. Here the domain changes with the project
  • You expect a finished specification. Domain discovery is part of the role
  • You would rather work alone on code than with domain experts on the problem. Half of this work happens in conversation
  • You want to stay away from AI agents. We build with them every day

Compensation

  • Salary range CHF 110,000 – 135,000 per year, depending on experience
  • Company-wide bonus, with a peer-reviewed share
  • Five weeks of holiday and at least one week for further education

Location and presence

Our office is near Zürich main station. We work hybrid: the team sets the rhythm, and working from home is a matter of course. For customer meetings you are on site — domain discovery does not work at a distance.

What we offer

You work on software that is genuinely used, in a team small enough that your decisions count. And you learn a way of building that many talk about and few have mastered — not as a training course, but as daily work. We hire rarely and deliberately. If this role is listed, we are genuinely looking — and in the interview you will talk directly to the people who run the area.

How we are different

What we build, we keep running. We have been developing the FAR pension application for over fifteen years. Take a shortcut and you will meet it again in three years. We try new things on our own operation first. What does not work for us, we do not sell. Agentic Development explains why it is not about starting an agent, but about building the scaffolding around it. Our Agent Skills are open source — sixteen working instructions for TDD, commits, reviews and pull requests. This job posting was written with them. And we are small. No layer between you and the decision, no specialisation that keeps you away from the customer.
Jan

Apply now!

JanIn a dedicated team with experienced engineers and excellent working conditions, we offer you diverse development opportunities in the heart of Zürich. Send us your application including your salary expectations and possible start date — Jan is happy to answer questions beforehand.