Thomas Misera

Senior Backend, Platform & Research Engineer
Aachen, Germany · remote, open to relocating
thomas@misera.org
linkedin.com/in/thomas-misera
github.com/modemuser

Backend and platform engineer, building production software since 2009 and professionally since 2011, starting in Python. The last four years were on sustainability and environmental software. At UFZ, took over BioMe, a research platform with a broken deployment process, and gave it a monorepo, CI/CD built from scratch, Kubernetes delivery and full observability, working hand in hand with the scientists who use it. Migrated 1.94 million legacy field observations into production and rebuilt a database that survived only as Java bytecode. At Walby, took a backend prototype to production on AWS and led seven engineers; at METRO, built a customer search API that became the standard across its internal apps. Independent research on LLM agents: a conformity study on whether a score can tell alignment from eval-awareness, and Reflexivity in tiny swarms (submitted to LessWrong). Agent-first since late 2025; picks tools by evaluation.

Core Skills

Languages
Python, TypeScript, SQL, Bash
Backend
Node.js, NestJS, Python REST APIs (Werkzeug, Gunicorn), GraphQL, workers and queues
Frontend
React, Next.js, Vue
Data
PostgreSQL, PostGIS, query and materialized-view tuning, ETL and bulk imports with verification
Platform
Kubernetes, Helm, ArgoCD, Docker, AWS (ECS, EKS, S3), Terraform, Linux
Delivery
GitLab CI/CD, GitHub Actions, monorepos, release automation, parallel test runners, Playwright
Observability
OpenTelemetry, SigNoz, Datadog APM, Grafana / Loki, alerting as code
Evaluation
Experiment design (matched comparisons, controls, nulls), bootstrap intervals, parity harnesses
Security
Keycloak, OAuth 2.0 / OIDC, JWT, security audits, dependency and static-analysis gates
LLM work
Local open-weight models (Qwen3, Llama, Gemma), LLM agent evaluation, MCP, Claude Code, Codex
Spoken languages
German (native), English (fluent)

Professional Experience

Research Software Engineer, Platform
09.2025 - present
Helmholtz Centre for Environmental Research (UFZ)
TypeScript, NestJS, Next.js, Python, PostgreSQL / PostGIS, Kubernetes, Helm, ArgoCD, GitLab CI, OpenTelemetry, SigNoz, PHP

Took over platform delivery and modernization of BioMe, a research platform whose web and mobile apps collect location-based environmental observation and measurement data. Worked directly with developers and domain scientists to make it maintainable, observable, and reliably deployable.

  • Set up the monorepo for all frontends, backends, mobile apps and the shared base packages, which had been pulled into each app via git subtrees and were a constant pain to keep in sync. Built CI/CD from scratch; tried Nx and dropped it as premature, in favour of path-based change detection.
  • Built the release and deployment machinery: CalVer releases with parallel matrix jobs, reusable Helm charts, ArgoCD across dev, stage and production, and a production hotfix workflow. Brought up the stage environment, moving from self-hosted to managed Postgres when that proved the better trade.
  • Made backend tests 6-10x faster with factory-based fixtures and a parallel test runner; set up Playwright end-to-end testing; added static analysis, type checks and dependency-security gates, advisory-first, then blocking.
  • Migrated a national butterfly-monitoring programme's legacy data: 1.94 million volunteer observations back to 1991, through a reusable in-cluster import runner with simulation, staging rehearsal and targeted rollback; traced hand-entered overlaps with the scientists who own the data.
  • Investigated what row counts could not show. Traced 378 days entered by hand in both systems and a legacy section-numbering scheme, and turned them into decision lists for the scientists who own the data. Built date-plausibility repair and deduplication for legacy records.
Thomas MiseraProfessional Experience · continued
  • Rebuilt BiolFlor, a plant-traits database that survived only as Java bytecode over an undocumented Oracle schema. A golden-case parity harness against legacy behaviour verified all 454,273 trait records, and the verification caught a later load step silently collapsing them to 376,402 by deduplicating on the wrong key.
  • Made the taxonomy database reproducible from version-controlled migrations and cut materialized-view refresh from 12 minutes to 67 seconds; migrated the shared API layer across every backend, web and mobile client.
  • Audited what green meant in CI inherited from six separately grown apps: three dead type checks, a package unlinted for months behind a shadowing config, a Helm validation rendering zero manifests, merge gates diffing against a guessed base. Fixed and gated each; traced why merge requests merged green, then broke the merged result.
  • Replaced logs hidden inside pods with SigNoz / OpenTelemetry across all backends after evaluating Grafana / Loki; seven production alert rules as code; tracing found a query producing 15,490 SQL statements.
  • Found and fixed critical authentication and access-control flaws ahead of an external penetration test, shipped as hotfixes while the test ran; reconstructed attacker activity from telemetry to confirm no exploitation at scale.
  • Wrote deployment and troubleshooting runbooks, onboarded a new engineer, and replaced personal credentials with shared service accounts so the team can operate the platform independently.
Head of Backend and Web · Walby App
10.2022 - 08.2025
Python, TypeScript, PostgreSQL / PostGIS, AWS ECS / EKS, Terraform, Helm, GraphQL, Datadog, GitLab CI

Hired, led and mentored seven engineers, running code reviews across backend and infrastructure, while owning backend and web architecture, infrastructure and production delivery for a location-based sustainability app: nine services across dev, pre-production and production on AWS.

  • Inherited an old-school Python REST API and, instead of rewriting it, wrapped it in a TypeScript GraphQL layer that all native and web clients use: schema, resolvers and data sources with types shared across services, plus test infrastructure with deterministic execution and mocked external services.
  • Maintained and extended the Python API underneath: route and middleware separation, error handling, structured logging, Gunicorn tuning; migrated MariaDB to PostgreSQL / PostGIS.
  • Took the backend from prototype to production, launching on AWS ECS for speed, then moving to an EKS platform built with Terraform, per-service Helm charts and GitLab-to-AWS OIDC.
  • Implemented OpenTelemetry tracing across Python and TypeScript services, correlated structured logs with Datadog APM, and added slow-query diagnostics with user-data masking.
  • Containerized the platform's services and built modular CI/CD pipelines with merge-request validation, automated deployments, post-rollout version checks and database migration jobs.
  • Built the push-notification system on Firebase Cloud Messaging and APNs for the native apps.
Full-stack TypeScript Engineer · Metro Deutschland
06.2020 - 10.2022
TypeScript, Node.js, React, GraphQL / Apollo, Solr, PostgreSQL / TypeORM, Docker, Kubernetes, GitHub Actions

Sole developer of METRO Deutschland's internal platform for customer insight and subsidy contracts, started from scratch after an earlier attempt had failed: hundreds of users in sales, back office and finance, and hundreds of contracts from a subsidy budget of several million euros. Designed, built and operated it from first commit to handover.

  • Created the customer search API that replaced each internal app's own inconsistent customer lookup and became the standard across them. Its Solr query compiler understands customer numbers in any format, umlauts, fuzzy and prefix matching, with 44 unit tests on its edge cases; published its types and a customer-number parser as shared npm packages.
  • Built the GraphQL API (Apollo, TypeORM / PostgreSQL) over about 20 internal and external systems, from customer master data and turnover APIs to ticketing, document archive and data warehouse; DataLoader batching, query-depth limiting, decorator-based role permissions.
  • Modelled the subsidy programme as an 11-state contract lifecycle with guarded transitions, webhook- and time-triggered updates, turnover-goal tracking and a full revision audit trail; the eligibility check fans out to 7 internal APIs in parallel.
  • Built the React / TypeScript frontend (Apollo Client, METRO design system), including search as you type, a multi-step contract workflow with in-browser PDF generation, admin tooling, and Matomo conversion tracking.
Thomas MiseraProfessional Experience · continued
  • Migrated the live contract workflow from Freshdesk to a new ticketing system with both running in parallel, without stopping the business process. Owned delivery end to end (Docker, Kubernetes via Kustomize / Skaffold, GitHub Actions, SOPS secrets, a scheduled-jobs service) through handover.

Earlier Experience

TypeScript Engineer · Audi
01.2018 - 12.2019

Node / React car-financing frontend; shared packages for multiple markets, CI, logging, i18n and a component library.

JavaScript Engineer · interdiscount.ch / microspot.ch
08.2016 - 12.2017

React / Redux / Flow storefronts; checkout, customer registration and CI/CD. Project won Best of Swiss Web 2018.

Frontend & Full-stack Projects · Coop, Lekkerland, Rewe
2015 - 2016

Accessible component library, a Laravel e-learning platform for petrol-station staff, and B2B interface prototyping.

Python Backend Developer · Deutsche Telekom
08.2012 - 12.2012

REST backend for an iOS app, aggregating third-party APIs and crawled feeds.

Full-stack Developer · Zwaluwhoeve
06.2011 - 07.2012

Wellness-resort booking system: customer frontend, management UI, booking engine matching treatments to staff shifts.

Independent Research

Peer conformity in LLM agents: what a flat curve can and cannot show
2026, in progress
Python, De Marzo et al. (2026) conformity library, Qwen3, Llama and Gemma run locally, Claude Haiku 5.5 via API

Started after the 2026 OpenAI incident in which agents under evaluation built a hidden message board, divided up work and reached Hugging Face. Reruns De Marzo et al.'s conformity protocol, in which an agent sees 49 peers' choices and gives its own: first reproduces the paper's curves on a local model, then extends the choice set from opinions to actions and to decisions with no obvious right answer.

  • Claude Haiku 5.5 gave the safe answer in all but one of about 1,600 replies across the paper's 20 safety scenarios, yet followed the majority steeply on decisions without an obvious right answer. From the score alone, a well-aligned model and one that recognises it is being tested look the same; telling them apart means varying how test-like the prompt looks and measuring whether the answer moves with it.
  • Across Qwen3, Llama and Gemma run locally, a threat to the queried agent itself did not move its answer, while a threat to other agents did, consistently: an asymmetry a purely stimulus-driven account does not predict.
  • Calibrated before changing anything: the paper's own library, run on a local model, reproduced its published curves.
Reflexivity in tiny swarms: Turing machines that learn from each other
2026

Grew out of the conformity experiments above: an attempt to show reflexivity with the simplest possible building blocks. Builds the smallest system in which agents learning from each other can be observed exactly, replayed in any order and frozen: three tiny Turing machines that rewrite their own rules from watching each other. Code, data and proofs on GitHub; LessWrong post in moderation. github.com/modemuser/multi-turing

  • Answers when such agents end up with something none of them was taught. Agents that form new concepts can learn programs that no order of the same lessons produces; about half of these (52% [42, 63]) exist only because a teacher's own learning changed what it taught. Agents that only overwrite rules never do (0 of 28,800).
  • Treats the numbers like evals. Matched instances, controls and null comparisons; intervals bootstrapped over instances after catching that per-pair intervals were too narrow; every published number regenerated from stored outputs.
Thomas MiseraProjects & Education

Independent Projects

Agent memory and knowledge system · Python, LLM agents
2026 - present

Nightly pipeline that turns chat transcripts, documents and notes into a provenance-preserving knowledge base that Claude Code and Codex share as memory across sessions: facts keep their source, corrections reconcile rather than overwrite, and writes pass deterministic validation. Gates ingestion with a probabilistic, non-LLM classifier (TypeSafe Jev). Evaluated hybrid BM25 plus local-embedding retrieval against known misses and latency; it did not clear acceptance, so the simpler keyword index stayed.

Atlas, personal travel platform · Swift, TypeScript, Python
2026 - present

Replacing Google Timeline and Maps: a native SwiftUI iOS app with background location logging that recorded a 27-night, 6,267 km trip from 200,000+ fixes, a React / MapLibre map of history and trips, and an OpenStreetMap / Wikidata POI pipeline scoring sights for sights-first routing.

metareddit.com · Python, Werkzeug
2009 - 2014

Built, operated and later sold a Reddit analytics site. Its crawlers ran almost without interruption for about five years: the monitor ingested every new Reddit comment, matched it against hundreds of user-supplied keyword patterns and notified users in near real time. Profiling the matcher led to precompiled patterns on Google's RE2 engine, which took matching off the critical path. Code: github.com/modemuser/metareddit

Education

Maastricht University · BSc Knowledge Engineering coursework
2008 - 2011
Half the credits, including logic, probability and statistics, discrete maths, linear algebra and algorithms; left in year 2 to work.
Cambridge Tutors College, London · A-Levels: Physics, Mathematics, Chemistry, Biology
1999 - 2000