Freelance-Backend-Engineer · Málaga

Maxi
Kirschberg

APIs, Integrationen, Automatisierung, beobachtbare Systeme.
Keine simulierten Daten, keine Spielzeug-Projekte.

↓ scrollen
01 · über mich

Wie ich hierher kam

Ich habe früh damit begonnen, mich an Systeme zu wagen, die für mein damaliges Level zu groß waren. Während viele um mich herum Anfänger-CRUDs bauten, war ich besessen davon, was hinter einem echten Produkt wirklich passiert: Queues, Caches, Concurrency, Deployments, Sockets, Infrastruktur. Der Wendepunkt war der Tag, an dem ich aufhörte, Backend als „nur APIs“ zu sehen und anfing, es als das Design von Systemen zu verstehen, die nicht in dem Moment auseinanderfallen, in dem sie tatsächlich benutzt werden. Da war ich endgültig angefixt.

Das meiste von dem, was ich weiß, kam vom Kaputtmachen. Deployments, die ganze Dienste umgehauen haben, schlecht konfigurierte Proxies, Concurrency-Bugs, die unmöglich zu reproduzieren waren, PostgreSQL-Migrationen, die in Eile gemacht wurden, Middleware, die in Production absurde Redirects auswarf. Genau da habe ich am meisten gelernt. Mir wurde klar, dass ich es deutlich mehr genieße, komplexe Systeme zu debuggen und echte Bottlenecks zu jagen, als hübsche Interfaces zu bauen. Zu verstehen, warum etwas auf niedrigem Level fehlschlägt, und es elegant zu reparieren, ist das, was bei mir am ehesten Flow erzeugt.

Mit der Zeit verschoben sich meine Projekte hin zu echter Architekturarbeit: automatisierte Pipelines, Echtzeit-SSE, Docker-Multi-Service-Stacks, Reverse Proxies mit nginx, Scraping- und Trend-Systeme, Content-Automatisierung, internes Tooling. „Generische Apps“ haben mich nie sonderlich interessiert. Ich will Infrastruktur bauen, die nützlich, schnell und stabil ist, für Produkte, die echte Bewegung haben.

02 · stack

Womit ich baue

Diese Liste ist das, wozu ich zuerst greife, nicht das, was ich toleriere. Ausgewählt durch Jahre in der Produktion, nicht durch Ankündigungen.

03 · ausgeliefert

Aktuelle Arbeit

Eine kleine Zahl echter Systeme, jedes davon live für eine echte Nutzerbasis. Kein Portfolio halbfertiger Demos.

Kramaru

Redaktionsautomatisierung · 13 Sites · live

Multi-Tenant-Publishing-Plattform, die 11 Trendquellen verfolgt, Chancen bewertet, Artikel generiert und reviewt und auf 13 Nischen-Sites in 12 Sprachen ausliefert. Postgres, pg-boss-Worker, Claude-Integration, eigene QA-Pipelines und ein Dashboard mit Live-Tail jeder Queue.

kramaru.es

PolyMarket trader

Krypto · 24/7 live

Vier polyvps-Strategien, die 24/7 laufen, mit smartem Take-Profit, Hourly Gates und Circuit Breakern. Echtes Geld, kein Backtest. Tägliches Metriken-Dashboard, Kill-Switch, Audit-Log jedes Eintrags.

Triada AD

Sportanalyse · Docker

Fußball-Pick-Settlement-Engine auf OpenFootball plus Sofascore-Enrichment, eingebunden in einen Dockerisierten Stack mit Per-Container-Hardening. NGINX, Postfix, Server-Actions-Verschlüsselungsschlüssel fixiert, um Header-Replay-Angriffe nach einem Vorfall zu verhindern.

TopSec

SaaS · Wäschereien

Flutter-Desktop-POS, Node-Backend, MySQL, Thermodruck, WhatsApp-Integration. Echte Kunden, Offline-First.

Live Demo · .NET 8 Event Stream

SSE · Postgres · Echtzeit

Öffentliche Demo auf mkir.es: ein einziger .NET-8-Prozess fanned Datenbankänderungen an viele Browser via Server-Sent Events aus. Null Client-Abhängigkeiten, reines HTML, das Postgres-Trigger live rendert.

mkir.es
04 · fallstudie

TopSec, im Detail

Die lange Version eines Projekts, das ich sonst in einen Satz packe. Die harten Entscheidungen, was ich kaputt gemacht habe und was wirklich live ist.

Das Problem

TopSec existiert, um Daten in Echtzeit zu aggregieren, zu synchronisieren und zu visualisieren, ohne sich auf riesige Infrastruktur oder Stacks zu stützen, die für das Produkt überdimensioniert sind. Das Briefing war einfach zu sagen und schwer zu liefern: Daten live, schnell und konsistent halten, während mehrere Dienste gleichzeitig miteinander sprechen.

Die härteste Entscheidung

Eine klare Linie zu ziehen zwischen dem, was im .NET-8-Backend lebt, und dem, was von Next.js gelöst wird. Ein subtiler Fall machte die Linie offensichtlich: /api-Routen plus next-intl-Middleware erzeugten 307-Redirects nach /es/api/*. Technisch valide, praktisch kaputt. Echtzeit- und Stats-Endpoints fielen unter bestimmten Locales lautlos aus.

Der Patch, den niemand verlangt, ist der, der den Engineer-Tarif rechtfertigt: statt Redirect-Regeln einzeln zu fixen, baute ich den Middleware-Matcher neu, um /api komplett auszuschließen. Visuell winzig, architektonisch groß.

Zu früh zu optimieren ist schlecht. Performance vom ersten Tag an zu ignorieren ist schlimmer. Arbeitsprinzip

Die andere Entscheidung war, PostgreSQL als Single Source of Truth beizubehalten. Für dieses Produkt war Konsistenz und die Fähigkeit zu komplexen Queries mehr wert als jeder Speed-Gewinn, den man mit einem NoSQL-Store hätte herausquetschen können. Langweilig ist in Ordnung, wenn langweilig richtig ist.

Was ich kaputt gemacht habe

Production ist einmal abgestürzt, weil ich annahm, ein Docker-Image sei wirklich neu gebaut worden. Der „neue“ Code verhielt sich weiter wie der alte. Der eigentliche Schuldige: npm ci schlug stillschweigend fehl, weil package-lock fehlte, und ließ den Build inkonsistent zurück. Ich verbrachte Stunden mit dem Debuggen von Anwendungslogik für ein Pipeline-Problem.

Lektion Misstraue jedem Deployment, bis du mit deinen eigenen Augen verifiziert hast, welches Artefakt wirklich läuft. SHA das Image, prüfe den Container-Hash, logge den Build-Commit beim Boot. Die billigste Minute, die du je ausgeben wirst.

Ergebnis

  • Stabile Multi-Service-VPS-Architektur: Backend, Frontend, Redis, PostgreSQL, nginx, alles koordiniert.
  • Großer Rückgang von Routing- und Echtzeitfehlern nach dem Middleware-Rewrite.
  • Antwortzeiten verbessert durch gezielten Cache und saubere Trennung von Verantwortlichkeiten.
  • Architektur bereit, neue Module zu wachsen, ohne den Kern neu zu schreiben.
  • Öffentliche Fläche: mkir.es. Tiefere technische Walkthroughs auf Anfrage verfügbar.
05 · wie ich arbeite

Meinungen, die ich verteidige

Starke Haltungen, durch Production-Vorfälle verdient, nicht auf Twitter. Wenn dich eine davon anspannt, kommen wir wahrscheinlich gut miteinander aus.

Erste zwei Stunden in einem neuen Projekt

  1. Das echte Geschäfts- oder Nutzerproblem verstehen. Nicht den Stack, den der Kunde zu brauchen glaubt.
  2. Potenzielle Bottlenecks identifizieren, bevor eine Zeile Code geschrieben wird.
  3. Den Datenfluss auf Papier oder in einem Dokument skizzieren.
  4. Die minimal lebensfähige Architektur zeichnen, nicht mehr.
  5. Den Stack gegen echte Constraints wählen, nicht gegen Trends.
  6. Vom ersten Tag an eine reproduzierbare Umgebung aufsetzen.
  7. Entscheiden, welche Teile skalieren müssen und, wichtiger, welche nicht.

Referenzen, die mein Denken geformt haben

06 · was ich nicht annehme

Ehrlicher Filter

Nein zu sagen macht das Ja verlässlicher. Das sind die Projekte, bei denen ich nicht der richtige Einstellungsfall wäre.

07 · verfügbarkeit

Mit mir arbeiten

Freelance und Contracting seit 2022. Offen für Remote-First-Rollen oder Hybrid in Málaga und an der Costa del Sol, wenn das Projekt den Weg wert ist. Kein Interesse an tief korporativen Umgebungen, in denen Engineering unter Prozess verschwindet.

Status
Verfügbar für neue Projekte, flexibel nach Umfang.
Engagement
Freelance, Contracting, komplexe Backend-Builds, Audits von Systemarchitekturen.
Stundensatz
35 bis 60 € pro Stunde, je nach Umfang und Verantwortung. Projektpreise ebenfalls möglich.
Standort
Remote zuerst. Hybrid in Málaga oder an der Costa del Sol, wenn das Projekt es lohnt.
Sprachen
Spanisch (Muttersprache). Englisch (C1, technisch und professionell).
Ausbildung
DAM, Entwicklung plattformübergreifender Anwendungen.
08 · finde mich

Kontakt aufnehmen

E-Mail bekommt die schnellste Antwort. LinkedIn für warme Vorstellungen, GitHub für Code.

E-Mailmaxikirschberg1@icloud.com linkedinMaximilian Kirschberg github@MaxiKirCas Portfoliomkir.es