[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-sections":3,"hero":59,"availability":64,"steps":67,"services":77,"problems":118,"skills":134,"projects":196,"reasons":205,"vibe-points":218},[4,11,17,22,29,34,39,45,51],{"slug":5,"enabled":6,"sort":7,"label":8,"heading":9,"subheading":10,"nav_label":8,"cta_label":10,"cta_hint":10},"leistungen",true,1,"LEISTUNGEN","Was ich mache",null,{"slug":12,"enabled":6,"sort":13,"label":14,"heading":15,"subheading":16,"nav_label":10,"cta_label":10,"cta_hint":10},"probleme",2,"TYPISCHE FÄLLE","Kommt dir das bekannt vor?","Das hier höre ich am häufigsten – und so gehe ich es an.",{"slug":18,"enabled":6,"sort":19,"label":20,"heading":21,"subheading":10,"nav_label":20,"cta_label":10,"cta_hint":10},"projekte",3,"PROJEKTE","Woran ich gearbeitet habe",{"slug":23,"enabled":6,"sort":24,"label":25,"heading":26,"subheading":27,"nav_label":28,"cta_label":10,"cta_hint":10},"skills",4,"WERKZEUGE","Womit ich täglich arbeite","Die Punkte zeigen, wie viel ich womit zu tun habe – nicht, wie gut ich mich selbst finde.","SKILLS",{"slug":30,"enabled":6,"sort":31,"label":32,"heading":33,"subheading":10,"nav_label":10,"cta_label":10,"cta_hint":10},"warum",5,"WARUM ICH","Pragmatisch statt\nüberkonstruiert",{"slug":35,"enabled":6,"sort":36,"label":37,"heading":38,"subheading":10,"nav_label":10,"cta_label":10,"cta_hint":10},"ablauf",6,"ABLAUF","So läuft's ab",{"slug":40,"enabled":6,"sort":41,"label":42,"heading":43,"subheading":44,"nav_label":10,"cta_label":10,"cta_hint":10},"ueber-mich",7,"ÜBER MICH","Kurz zu mir","Rund sieben Jahre transfermarkt.de, seit über zwölf Jahren die Technik hinter fussballdaten.de – seit 2025 als Freelancer. Große Datenmengen, hohe Last und gewachsene Communities sind mein Alltag, nicht mein Neuland.",{"slug":46,"enabled":6,"sort":47,"label":48,"heading":49,"subheading":50,"nav_label":10,"cta_label":10,"cta_hint":10},"vibecoding",8,"VIBE CODING","Der Prototyp steht. Und jetzt?","Mit AI baust du in einem Nachmittag etwas, das läuft. Der Sprung von \"läuft bei mir\" zu \"läuft in Produktion\" ist trotzdem derselbe wie immer – da helfe ich.",{"slug":52,"enabled":6,"sort":53,"label":54,"heading":55,"subheading":56,"nav_label":10,"cta_label":57,"cta_hint":58},"kontakt",9,"KONTAKT","Was liegt an?","Erzähl mir in zwei, drei Sätzen, worum es geht. Ich melde mich schnell zurück – und sage auch ehrlich, wenn ich nicht der Richtige bin.","Projekt beschreiben →","Landet direkt bei mir, ohne Umwege.",{"label":60,"title":61,"subtitle":62,"cta_label":63},"SOFTWARE-ENTWICKLER","Alte Software. Neue Power.","Ich bringe Struktur in deine gewachsenen PHP-Systeme. Sicher, schrittweise und ohne deinen laufenden Betrieb zu gefährden.","Projekt-Check anfragen →",{"status":65,"label":66,"detail":10,"enabled":6},"busy","aktuell ausgelastet",[68,71,74],{"title":69,"text":70},"Erst mal reden","Wir schauen uns dein System an, dein Ziel und was realistisch drin ist. Ohne Beratersprech – und wenn ich nicht der Richtige bin, sage ich das gleich.",{"title":72,"text":73},"In Etappen umsetzen","Jeder Schritt dokumentiert, getestet und zurückrollbar. Nicht alles auf einmal umwerfen, sondern kontrolliert vorangehen.",{"title":75,"text":76},"Du behältst die Kontrolle","Sauberer Code, nachvollziehbare Infrastruktur, keine Abhängigkeit von mir. Dein Team kann weitermachen, auch wenn ich weg bin.",[78,86,94,103,110],{"title":79,"text":80,"skills":81},"Backend-Entwicklung","PHP, Yii2, REST-APIs. Ein Backend, das auch dann noch tut was es soll, wenn zehnmal so viele Daten durchlaufen wie am ersten Tag.",[82,83,84,85],"PHP","Yii2","REST APIs","MySQL",{"title":87,"text":88,"skills":89},"Datenmigration & Altsysteme","Große Datenbestände sicher umziehen, historisch gewachsene Datenbanken entwirren, Altes Stück für Stück ablösen – ohne dass der Betrieb dafür stillsteht.",[90,91,92,93],"Migration","Datenmodellierung","Elasticsearch","Datenexporte",{"title":95,"text":96,"skills":97},"Infrastruktur & Self-Hosting","Linux, NGINX, Docker. Deine Infrastruktur gehört dir – nicht einem Anbieter, der nächstes Jahr die Preise verdoppelt oder den Dienst einstellt.",[98,99,100,101,102],"Linux","NGINX","Docker","Self-Hosting","Caching",{"title":104,"text":105,"skills":106},"Technische Beratung","Zweite Meinung zu Architektur, Code-Reviews, Technologieauswahl. Ich sage dir auch, wenn du etwas gar nicht brauchst.",[107,108,109],"Code-Reviews","Technical SEO","Performance",{"title":111,"text":112,"skills":113},"Test-Service","This is just a test - updated!",[114,115,116,82,85,117],"ATEST","BTEST","HUI","GRAFANA",[119,122,125,128,131],{"problem":120,"solution":121},"Läuft noch auf einer PHP-Version, für die es keine Updates mehr gibt?","Wir ziehen um – schrittweise, getestet, mit einem Rückweg für jeden einzelnen Schritt.",{"problem":123,"solution":124},"Daten sollen umziehen, aber keiner weiß, wo man anfängt?","Erst das Datenmodell klären, dann migrieren. Mit Trockenlauf, bevor es echte Daten trifft.",{"problem":126,"solution":127},"Code, den seit Jahren niemand mehr anfassen will?","Erst testbar machen, dann ändern. Kein Rewrite auf Verdacht, sondern Schritt für Schritt.",{"problem":129,"solution":130},"Eine API-Anbindung, die einfach nicht will?","Saubere Schnittstellen, die auch dann wissen was zu tun ist, wenn die Gegenstelle mal nicht antwortet.",{"problem":132,"solution":133},"Alles hängt an einer Person – und die ist bald weg?","Ich dokumentiere im Vorbeigehen. Am Ende kann dein Team weitermachen, auch ohne mich.",[135,138,139,141,143,145,146,149,152,154,156,157,160,162,165,167,170,173,176,178,182,184,187,188,189,191,192,194,195],{"name":82,"pct":136,"category":137},90,"backend",{"name":82,"pct":136,"category":137},{"name":83,"pct":140,"category":137},80,{"name":85,"pct":142,"category":137},85,{"name":84,"pct":144,"category":137},88,{"name":91,"pct":136,"category":137},{"name":147,"pct":148,"category":137},"PHPUnit",78,{"name":150,"pct":151,"category":137},"Cronjobs & Queues",82,{"name":90,"pct":136,"category":153},"data",{"name":155,"pct":151,"category":153},"ETL-Prozesse",{"name":92,"pct":148,"category":153},{"name":158,"pct":159,"category":153},"Große Datenmengen",86,{"name":161,"pct":159,"category":153},"Query-Tuning & Indizes",{"name":163,"pct":144,"category":164},"Git","devops",{"name":166,"pct":140,"category":164},"GitLab CI",{"name":168,"pct":169,"category":164},"Monitoring",76,{"name":171,"pct":172,"category":164},"Grafana",70,{"name":174,"pct":175,"category":164},"Prometheus",65,{"name":177,"pct":148,"category":164},"Logging",{"name":179,"pct":180,"category":181},"Vue 3",72,"frontend",{"name":183,"pct":172,"category":181},"Nuxt",{"name":185,"pct":186,"category":181},"TypeScript",64,{"name":109,"pct":136,"category":181},{"name":108,"pct":148,"category":181},{"name":98,"pct":151,"category":190},"infra",{"name":99,"pct":148,"category":190},{"name":100,"pct":193,"category":190},74,{"name":101,"pct":136,"category":190},{"name":102,"pct":142,"category":190},[197,201],{"title":198,"text":199,"tech":200},"fussballdaten.de","Die komplette Technik – vom Server über Backend und Datenbank-Design bis Frontend und Technical SEO. Über ein Jahrzehnt im Projekt, seit 2025 als Freelancer. Millionen Datensätze, Lastspitzen an jedem Spieltag, eine Community, die es sofort merkt wenn etwas hakt.","Serveradministration · PHP · MySQL · Frontend · Technical SEO · Performance",{"title":202,"text":203,"tech":204},"transfermarkt.de","Rund sieben Jahre bei einer der reichweitenstärksten Sportdaten-Plattformen Europas – erst Backend, Datenbank und Frontend, später als Leiter der Programmierung. Große Datenbestände, komplexe Datenmodelle, wenig Spielraum für Ausfälle.","PHP · MySQL · Frontend · REST APIs · Datenmodellierung · Teamleitung",[206,209,212,215],{"title":207,"text":208},"Echte Systeme, keine Beispielprojekte","Über ein Jahrzehnt Sportdaten mit Millionen Datensätzen und Lastspitzen an Spieltagen. Die typischen Probleme kenne ich, bevor sie auftreten.",{"title":210,"text":211},"Stabil vor spannend","Keine Architektur, die nur auf Konferenzen gut aussieht. Sondern etwas, das im Alltag läuft und das man in zwei Jahren noch versteht.",{"title":213,"text":214},"So einfach wie möglich","Ich baue das, was das Problem löst. Nicht das, was sich auf einer Folie gut macht.",{"title":216,"text":217},"Direkter Draht","Kein Agentur-Apparat, keine Zwischeninstanz. Du redest mit der Person, die den Code auch schreibt.",[]]