Marc Römmelt

Senior software engineer. Usually the first or lead engineer on a product: I set up the architecture, keep it boring, and stay long enough to defend it.

TypeScript · Node.js · Fürth (Nürnberg) · remote-first · freelance via 0815 Software UG · availability on request

Book a callhallo@marcroemmelt.de

Marc Römmelt, smiling, outdoors

ask

Questions? Ask the genie.

It knows my work, my terms and my limits, and it passes real enquiries straight to me.

An AI assistant answers from what Marc wrote about himself and passes enquiries on to Marc. Datenschutz

what I do

Hard backend problems, solved simply.

First or lead engineer

Take a product from idea to production, and set up the architecture, tooling and team habits it will live with for years.

Untangling systems

Multi-tenancy, service boundaries, independent deploys, migrations off frameworks that stopped fitting. Backwards-compatible, while production keeps running.

Event-driven backends

Queues, idempotent consumers, event sourcing and CQRS where correctness matters, like payroll that must reproduce any past month exactly.

AI that does real work

Real-time voice agents, LLM tool calling and WhatsApp integrations, with DSGVO and EU data residency designed in.

selected work

Six projects since 2019.

Self-taught, with a degree in entrepreneurship and a founder's habit of owning the whole product. Each project opens into the context, the decisions and the stack.

  1. 2026 — nowSparkassen-FinanzgruppeSenior engineer, freelance · via Web Computing GmbHDecoupling about 20 services behind a chatbot with 300+ tenants, so each service ships on its own while the platform stays in production.
  2. 2026CalluraFounder and sole engineer · own productPhone and WhatsApp AI for funeral homes. Built end to end on infrastructure that cost about as much as dinner per month. Now paused.
  3. 2023 — 2026PenzillaLead engineer · B2B SaaS for corporate pensionsSecond engineer, then tech lead; grew the team from two to six. Rebuilt multi-tenancy (query timeouts to zero, database connections from 200 to 20) and built event-sourced payroll integrated with DATEV, SAP and Personio.
  4. 2022 — 2023TheMakers.aiTechnical lead · B2B marketplaceTurned a proof of concept into a maintainable product. Hired and led four engineers and a product manager.
  5. 2021 — 2022FanzoneLead engineer, freelance · sports collectiblesOne codebase for web, iOS and Android. Introduced test-driven development through mob programming.
  6. 2019 — 2020ELIGOEngineer · candidate assessmentBroke up a monolithic Vue.js front end and built multi-tenant theming and authentication.

how I build

Complexity very, very bad.

My LinkedIn headline, borrowed from The Grug Brained Developer by Carson Gross. It is a joke. It is also the method.

Boring first

Postgres, a monolith, one server, until the problem proves it needs more. Distribution is a cost; pay it where it earns its keep.

Measure, then fix

Traces and a baseline before anyone says "fixed".

Plain over clever

Pure functions, honest types, code a new teammate can follow on day one.

Tests first

Test-driven by default. It is how I move fast without breaking what pays the bills.

Privacy from the first diagram

DSGVO, EU hosting and the AI Act shape the design before the first line of code.

Agents as power tools

Claude Code drafts, I review until I own every line. Faster, same standard. Where the client agrees, of course.

stack

Tools I reach for.

working together

Freelance, remote-first, in for the long run.

Contract
Through 0815 Software UG, billed hourly. Direct or through an agency.
Location
Remote-first. On-site around Nürnberg whenever it helps, elsewhere for kick-offs.
Duration
Three months or longer. Short architecture reviews too.
Availability
On request. I finish engagements properly before starting the next.

contact

Got a hard problem? Tell me about it.

I read and answer every message myself.

call
Book a call
mail
hallo@marcroemmelt.de
linkedin
in/marcroemmelt
cv
Marc_Roemmelt_CV.pdf
back

2026 · Founder and sole engineer · own product

Callura

Funeral homes are small businesses that cannot miss a call and often cannot take one. Callura answered their phone calls and WhatsApp messages, documented every conversation, and gave the business an AI assistant over its own data. I built all of it, from telephony to deployment. Now paused.

Real-time voice

Inbound calls arrive over Telnyx Media Streams and run through Gemini Live with synchronous and asynchronous tool calls. Each call ends in structured outcomes (cases, callbacks, contact updates) that reach the business through whichever channel fits: dashboard, WhatsApp (integrated as a Meta Tech Provider) or phone.

Event-driven by construction

Every call runs on its own event bus. Media frames, model events and tool calls are decoupled, so lookups and slower work like summaries and notifications never block the audio. After the call, pipelines regenerate a memory digest per contact from the transcript.

Multi-tenant throughout

Phone-number routing, per-business context, and hybrid keyword and semantic search on PostgreSQL and Typesense.

Compliance as architecture

EU data residency was a hard constraint, so the model endpoint is configuration: Gemini Developer API or Vertex AI, whichever residency requires. AI Act Article 50 disclosure is built in, and Telnyx is contracted as a DSGVO Article 28 sub-processor.

Deliberately boring infrastructure

Bun and ElysiaJS, HTMX for the web, Docker Compose with blue/green deploys on one Hetzner VPS, Caddy in front, OpenTelemetry to Dash0. The whole thing ran on roughly the cost of dinner per month. That is the point.

Built with agents

Claude Code was the primary authoring tool: spec first, agent implementation, then review passes until I understood every module.

Stack

  • TypeScript
  • Bun
  • ElysiaJS
  • HTMX
  • PostgreSQL
  • Typesense
  • Telnyx
  • Gemini Live
  • WhatsApp Business Platform
  • Docker Compose
  • Caddy
  • OpenTelemetry
  • Dash0
  • Hetzner

Want more depth? Book a call or write to hallo@marcroemmelt.de.