// hello, world

I'm Marc Arndt.

VP of Engineering & Architecture @ Evana AG · Heidelberg, DE

Software engineer building production backends in Go and TypeScript, data pipelines, and developer tools. I like Kubernetes, clean APIs, and shipping things that hold up at 2am.

At Evana I lead engineering & architecture for the Evana360 document & dataroom platform. On the side I ship vibeship.eu — taking vibe-coded POCs to production.

About

I'm the VP of Engineering & Architecture at Evana AG, where I lead the engineering org and own the technical architecture for the Evana360 document & dataroom platform. Most days that means Go and TypeScript backends, Azure-hosted services, and the long tail of decisions that make a SaaS product feel reliable to its users.

Kubernetes is the default for everything I run — k3s on a Hetzner box for personal infra, AKS in production. I design OpenAPI-driven services, and have spent more time than I'd like on auth flows involving Azure AD B2C, Keycloak, and OIDC. I also build tooling around the Model Context Protocol — both hosting servers for product APIs and using them as a day-to-day engineering interface.

Outside of work I run a small homelab, deploy my own SaaS experiments (real domains, real certs, real observability), and occasionally write about the messy parts of getting software into production.

Location Heidelberg, DE
Stack Go · TypeScript · Python
Infra k3s · AKS · cert-manager
Auth Keycloak · Azure AD B2C · OIDC
Status open to interesting work

What I'm building now

updated continuously

Projects

all repos →

vibeship.eu

live

Service that takes vibe-coded prototypes — Cursor, Bolt, v0, Lovable, Replit — and ships them to production: real auth, real infra, real observability, real users. 7–14 day fixed-price hardening.

HTML/CSS/JS nginx k3s cert-manager

Labradoc MCP Server

Model Context Protocol server for the public Labradoc API — exposes document management, email ingestion, task extraction, and integration features as MCP tools. Install with npx @labradoc/mcp; any MCP host (Hermes, Claude Code, Codex) can drive Labradoc with just an API key.

TypeScript Node.js 20+ MCP npm

Evana360

Document & dataroom platform for the German real-estate sector — structures, datarooms, documents, elements, OCR, and a web UI for reviewing what the system extracted. B2C auth, Azure-hosted, live in production with paying customers. Where I spend most of my daylight hours as VP of Engineering & Architecture.

TypeScript Go .NET AKS Azure AD B2C

labradoc

Personal document management — Go backend + React/TypeScript frontend. OCR pipeline, classification, inbox-style review of what the system extracted, and task tracking for the things that came in. Self-hosted on k3s; the public marketing site doubles as the docs.

Go TypeScript React OCR k3s

complyEU

wip

EU compliance tooling focused on the boring, important part of the job: making the audit trail reproducible. TypeScript frontend with a Go service tier behind it. Designed around the question "what would a reviewer actually need to see?" rather than the usual checkbox theatre.

TypeScript Go Docker audit trail

Infrana

wip

Control-plane API for an EU SaaS product. TypeScript everywhere, containerised, with Stripe billing wired up end-to-end (live mode coming once the first paying tenant is signed). Multi-tenant from day one so we don't have to refactor it in later.

TypeScript Node.js PostgreSQL Stripe Docker

Writing

blog repo →

More long-form posts coming. Subscribe via watching the blog repo or just check back here.

Speaking

speaker bio →

Speaking enquiries: arndt.marc@gmail.com.

Get in touch

The fastest way to reach me is email. For longer messages or collaboration, please include a short description of what you're working on and how I can help. For bugs in something I shipped, open an issue on the relevant repo instead.