[{"data":1,"prerenderedAt":239},["ShallowReactive",2],{"biography-milestones":3},[4,52,81,116,170,211],{"id":5,"title":6,"accent":7,"body":8,"description":34,"extension":38,"location":39,"meta":40,"navigation":41,"offset":42,"order":43,"path":44,"seo":45,"setPiece":46,"setPieceVariant":42,"side":48,"stem":49,"subtitle":50,"__hash__":51},"biography/biography/10-berlin.md","TU Berlin — B.Sc. Computer Science","#9ad1ff",{"type":9,"value":10,"toc":33},"minimark",[11,16],[12,13,15],"h2",{"id":14},"tu-berlin-bsc","TU Berlin — B.Sc.",[17,18,19,20,24,25,28,29,32],"p",{},"A computer-science degree at TU Berlin (final grade 1.8) — but the formative work\nhappened alongside it. At ",[21,22,23],"strong",{},"GT-ARC"," I worked on multi-agent systems; as a student\ndeveloper at ",[21,26,27],{},"RWTH Aachen"," I helped build the identity-management apps used by\n~",[21,30,31],{},"47,000 students and 9,000 staff",". One habit formed early: build software real\ninstitutions actually run on.",{"title":34,"searchDepth":35,"depth":35,"links":36},"",2,[37],{"id":14,"depth":35,"text":15},"md","Berlin",{},true,null,10,"/biography/10-berlin",{"title":6,"description":34},[47],"berlinSkyline","auto","biography/10-berlin","2016–2020 · where it compiled first","8EtM0IApIJNSIIdrF4z5yLivYQYOvwWLLR9rvTdUk1I",{"id":53,"title":54,"accent":55,"body":56,"description":34,"extension":38,"location":71,"meta":72,"navigation":41,"offset":42,"order":73,"path":74,"seo":75,"setPiece":76,"setPieceVariant":42,"side":48,"stem":78,"subtitle":79,"__hash__":80},"biography/biography/20-the-move.md","The move","#ffd479",{"type":9,"value":57,"toc":68},[58,61],[12,59,54],{"id":60},"the-move",[17,62,63,64,67],{},"In 2020 I left Berlin for ",[21,65,66],{},"Maastricht"," and an M.Sc. in Artificial Intelligence —\na deliberate bet to stop skimming machine learning and go all the way under. The\nfirst leg of the loop.",{"title":34,"searchDepth":35,"depth":35,"links":69},[70],{"id":60,"depth":35,"text":54},"En route",{},20,"/biography/20-the-move",{"title":54,"description":34},[77],"routeArc","biography/20-the-move","2020 · Berlin → Maastricht","BdVJoObzp5kT5vFMiaEEHK2ZjM8yUf6m2W5RlhjXOO4",{"id":82,"title":83,"accent":84,"body":85,"description":34,"extension":38,"location":66,"meta":106,"navigation":41,"offset":42,"order":107,"path":108,"seo":109,"setPiece":110,"setPieceVariant":112,"side":48,"stem":113,"subtitle":114,"__hash__":115},"biography/biography/30-maastricht.md","Maastricht — M.Sc. Artificial Intelligence","#c4a0ff",{"type":9,"value":86,"toc":103},[87,91],[12,88,90],{"id":89},"maastricht-msc-ai","Maastricht — M.Sc. AI",[17,92,93,94,97,98,102],{},"A master's in Artificial Intelligence (GPA 8.25), all-in on generative models. My\n",[21,95,96],{},"thesis trained GANs to generate procedural game content"," — teaching a network\nto invent playable levels. This is where the through-line starts: a lattice of\nweights learning to ",[99,100,101],"em",{},"generate",".",{"title":34,"searchDepth":35,"depth":35,"links":104},[105],{"id":89,"depth":35,"text":90},{},30,"/biography/30-maastricht",{"title":83,"description":34},[111],"lattice","gan","biography/30-maastricht","2020–2022 · the bet on generative AI","qtcC4Eh57B78poy_K2Y8gbH2xIikpdYW8NYybOHsib0",{"id":117,"title":118,"accent":119,"body":120,"description":34,"extension":38,"location":39,"meta":160,"navigation":41,"offset":42,"order":161,"path":162,"seo":163,"setPiece":164,"setPieceVariant":166,"side":48,"stem":167,"subtitle":168,"__hash__":169},"biography/biography/40-tatort.md","Respeak — the Tatort game, at scale","#ff6b6b",{"type":9,"value":121,"toc":157},[122,126],[12,123,125],{"id":124},"tatort-at-scale","Tatort, at scale",[17,127,128,129,132,133,136,137,140,141,144,145,148,149,152,153,156],{},"Back in Berlin at ",[21,130,131],{},"Respeak",": a chat-based game tied to the TV series ",[99,134,135],{},"Tatort",",\nbuilt ",[21,138,139],{},"before ChatGPT"," and contracted to survive ",[21,142,143],{},"100k concurrent",". I owned\nscale — an ",[21,146,147],{},"Azure migration",", ",[21,150,151],{},"sentence-embedding models on Azure ML",", a Flask\nrefactor that cut redundant SQL and added caching, and load balancing. It launched\nat ",[21,154,155],{},"18,000 concurrent"," with a team of five. The GAN lattice became an embedding\nspace.",{"title":34,"searchDepth":35,"depth":35,"links":158},[159],{"id":124,"depth":35,"text":125},{},40,"/biography/40-tatort",{"title":118,"description":34},[111,165],"threadBoard","embeddings","biography/40-tatort","2023 · 18,000 concurrent players, team of 5","iUx_P52v1S5hXGAxtCucRLIVSSUUwRdGej814f_5ufs",{"id":171,"title":172,"accent":173,"body":174,"description":34,"extension":38,"location":39,"meta":201,"navigation":41,"offset":42,"order":202,"path":203,"seo":204,"setPiece":205,"setPieceVariant":207,"side":48,"stem":208,"subtitle":209,"__hash__":210},"biography/biography/50-experte.md","Experte — retrieval-augmented generation","#7fe7ff",{"type":9,"value":175,"toc":198},[176,180],[12,177,179],{"id":178},"experte-rag","Experte — RAG",[17,181,182,183,186,187,190,191,194,195,102],{},"I'm the ",[21,184,185],{},"tech lead"," on Experte (respeak.io) and built its core: a ",[21,188,189],{},"RAG","\nplatform for public administration that returns ",[21,192,193],{},"cited answers"," grounded in an\norganisation's own documents (PDFs, SharePoint, Confluence). The through-line\ncloses — GANs → embeddings → ",[99,196,197],{},"retrieval over embeddings",{"title":34,"searchDepth":35,"depth":35,"links":199},[200],{"id":178,"depth":35,"text":179},{},50,"/biography/50-experte",{"title":172,"description":34},[111,206],"documentGrid","rag","biography/50-experte","Respeak · tech lead, building the core","EhiT8KUPImSUdJhit083HCIziba02BdbLUKRfluqpSE",{"id":212,"title":213,"accent":55,"body":214,"description":34,"extension":38,"location":39,"meta":230,"navigation":41,"offset":42,"order":231,"path":232,"seo":233,"setPiece":234,"setPieceVariant":42,"side":48,"stem":236,"subtitle":237,"__hash__":238},"biography/biography/60-community.md","Community — code for the congregation",{"type":9,"value":215,"toc":227},[216,220],[12,217,219],{"id":218},"community","Community",[17,221,222,223,226],{},"Away from paid work, I build for my church — a ",[21,224,225],{},"Gesangbuch PWA"," (a German\nhymnal as a progressive web app) the congregation actually uses, in German and\nEnglish, open source on GitHub. Same engineering care as a client project; the\ngift is the difference.",{"title":34,"searchDepth":35,"depth":35,"links":228},[229],{"id":218,"depth":35,"text":219},{},60,"/biography/60-community",{"title":213,"description":34},[235],"staffLines","biography/60-community","Volunteer dev · the Gesangbuch PWA","Q0pfSyh44EEmTuvMKaOSx-x4aEWr2wESMnEWwVpZoLM",1780923811866]