devs group has been building backends in Go (Golang) for Swiss companies and the federal administration since 2019. Go systems of ours run in production in the form service of the Federal Office of Information Technology, in Relai AG's Bitcoin broker (17 microservices, 11 of them in Go), and in onocoy's decentralised GNSS network (a real-time backend in Go and MQTT).

What we use Go for

API and backend engineering. REST and gRPC APIs, payment and broker systems, integrations with banks, exchanges and government systems. How we handle idempotency along the way is in the article Idempotency: the least conspicuous feature of a payments API.

Microservices and event systems. Dockerised services with RabbitMQ or MQTT, PostgreSQL and observability worth reading, running on Kubernetes or on a single VM, depending on what the system actually needs.

MCP servers and AI infrastructure. The tools through which AI agents reach enterprise systems we build in Go; the details are in Running MCP servers in Go in production.

Team extension. Our Go engineers also work inside existing teams, as they do at the FOITT, in Scrum and SAFe structures on systems for the federal tax administration.

Why Go for critical systems

Go forces a kind of simplicity a team can still read three years later: explicit error handling, a static binary in a FROM scratch container, concurrency you can explain. The full reasoning, including the cases where we do not reach for Go, is in Why we build critical backends in Go.

Frequently asked

Do you take on existing Go codebases?

Yes. We read our way into systems that have grown, document the architecture decisions, and build observability before we change anything. At the federal administration we have been doing exactly that inside existing teams for years.

Do you build the frontend as well?

Yes, usually in Vue.js or Angular. The whole stack is on the backend & frontend page.

Go or something else: how do you decide?

By the system, not by preference. For compute-heavy ML pipelines we use Python, for native apps Flutter. Go wins where a backend has to run for ten years and be understood by teams that change.

Articles on this topic

  1. Architecture

    Running MCP servers in Go in production

    What the July 2026 MCP specification changes: a stateless core, OAuth instead of a shared token, and the tool design mistakes we see most often.

    Ralph Segi18 min read

  2. Architecture

    Why we build critical backends in Go

    Not because of the benchmarks. Because of what a team can still understand after three years.

    Ralph Segi2 min read

  3. Architecture

    Decisions you can still understand in two years

    Architecture Decision Records are the cheapest tool against systems nobody can explain any more.

    Robert Pupel2 min read

  4. Backend

    Idempotency: the least conspicuous feature of a payments API

    Networks are unreliable and clients retry. Why an idempotency key is not a detail but the foundation.

    Ralph Segi2 min read

  • Hire senior engineers

    Scale your team with on-demand engineers

    Put our senior engineers straight into your workflow – quickly, flexibly, and matched to the team you already have.

    Hire engineers
  • End-to-end delivery

    Let's take your project all the way

    Strategy, design and engineering from one team – for a fast, safe launch of the software you actually need.

    Start a project