[{"data":1,"prerenderedAt":636},["ShallowReactive",2],{"projects-de":3},[4,315,488,612],{"id":5,"title":6,"body":7,"category":262,"cover":263,"coverAlt":264,"description":265,"draft":266,"extension":267,"externalUrl":268,"featured":269,"highlights":270,"links":280,"meta":299,"navigation":269,"order":300,"org":301,"path":302,"period":303,"role":304,"seo":305,"stack":306,"stem":313,"__hash__":314},"projects\u002Fde\u002Fprojects\u002Fci-translation-components.md","CI Translation Components",{"type":8,"value":9,"toc":255},"minimark",[10,15,19,22,30,33,37,43,49,65,71,93,99,169,176,201,207,213,217,220,252],[11,12,14],"h2",{"id":13},"was","Was",[16,17,18],"p",{},"Übersetzung findet in den meisten Unternehmen außerhalb der Werkzeuge statt, mit denen Entwicklerinnen und Entwickler tatsächlich arbeiten. Inhalte werden exportiert, an einen Dienstleister geschickt, irgendwo anders übersetzt und Wochen später wieder eingefügt — und bis dahin hat sich die Quelle längst weiterbewegt. Das Ergebnis sind lokalisierte Inhalte, die strukturell und dauerhaft veraltet sind.",[16,20,21],{},"CI Translation Components begann als mein Beitrag zu GitLabs AI Enterprise Hackathon 2026: eine Sammlung wiederverwendbarer GitLab-CI\u002FCD-Komponenten, die Übersetzung als Pipeline-Stufe behandeln und nicht als Nebenschauplatz. Eine Quelldatei ändert sich, CI bemerkt es, der Inhalt wird übersetzt, und die Übersetzung erscheint als gewöhnlicher Merge Request im selben Repository — prüfbar, zurücknehmbar und nachvollziehbar wie jede andere Änderung.",[16,23,24,25,29],{},"Der Trial war bewusst eng gefasst. Ziel von v1 war nicht, jeden Lokalisierungsfall zu lösen, sondern zu belegen, dass eine CI-Komponente eine kleine, klar abgegrenzte Menge ",[26,27,28],"strong",{},"echter Produktionsinhalte"," zuverlässig verarbeiten und die richtigen Merge Requests erzeugen kann, ohne dass jemand daneben steht. Etwas zu bauen, das Kundinnen und Kunden übernehmen können, hieß, es zuerst selbst zu benutzen.",[16,31,32],{},"Ich habe die Roadmap geschrieben und das Epic als Gesamt-DRI verantwortet, gemeinsam mit der DRI für Linguistic Quality Assurance, die für die Übersetzungsqualität zuständig war.",[11,34,36],{"id":35},"wie","Wie",[16,38,39,42],{},[26,40,41],{},"Aufbau der Pipeline."," Quelländerung → Erkennung → Übersetzung → Commit → Merge Request → Auto-Merge. Jeder Modellaufruf läuft über das GitLab AI Gateway; der Runner spricht nie direkt mit einer Anbieter-API. Genau das machte das Ganze im Security-Review vertretbar.",[16,44,45,48],{},[26,46,47],{},"Qualität beginnt, bevor das Modell ein Wort sieht."," Nichts wird ohne Kontext übersetzt. Jeder Job stützt sich auf drei Grundlagen: eine Reihe von Spezifikationen dazu, was und wie übersetzt wird, eine in GitLab gepflegte Termbase und Übersetzungsanweisungen, die Ton, Stil und lokale Konventionen festlegen. Weil alle drei unter Versionskontrolle stehen, sind Terminologie und Tonalität prüfbar, vergleichbar und klar verantwortet — genau wie die Inhalte, die sie prägen.",[16,50,51,54,55,59,60,64],{},[26,52,53],{},"Review bleibt daneben, nicht davor."," An dieser Entscheidung hing der ganze Trial. Wenn eine Linguistin freigeben muss, bevor ein Übersetzungs-MR gemergt werden darf, sinkt der Durchsatz auf das Tempo menschlicher Prüfung — und man hat den Dienstleister-Engpass innerhalb von CI neu gebaut. Stattdessen findet die erste Prüfung dort statt, wo die Übersetzung ankommt: GitLab Duo prüft den Merge Request, sobald er eintrifft, und macht das schon allein erstaunlich gut. Die linguistische Prüfung setzt anschließend ",[56,57,58],"em",{},"nach"," dem Merge ein — ein Translation-Review-Flagger-Flow öffnet asynchrone Tracking-Issues in einem separaten Projekt ",[61,62,63],"code",{},"linguistic-review-tracker"," —, sodass Qualitätsprobleme gefunden und behoben werden, ohne die Pipeline aufzuhalten.",[16,66,67,70],{},[26,68,69],{},"Die Qualitätslatte ist konfigurierbar, nicht fest."," Wer eine höhere Latte braucht, hat reichlich Stellschrauben, alle nativ in GitLab: eigene MR-Review-Anweisungen für Duo, zusätzliche CI-Jobs mit eigenen Prüfungen, Vale-Regeln für Stil und Terminologie und die üblichen Approval-Regeln. Die Komponente setzt einen sinnvollen Standard; jedes Projekt entscheidet selbst, wie streng es die Linie hält.",[16,72,73,76,77,80,81,84,85,88,89,92],{},[26,74,75],{},"Blinde Flecken vor der Produktion."," Bevor irgendetwas Kundenseitiges angefasst wurde, liefen zwei parallele Arbeitsstränge gegen Forks — spanische Solutions-Seiten auf einem ",[61,78,79],{},"about.gitlab.com","-Fork und ",[61,82,83],{},"\u002Fdocs"," auf einem GitLab-Operator-Testfork. Forks zuerst bedeutete, dass die gefundenen Fehlerbilder nichts kosteten. Die eine harte Voraussetzung war unspektakulär: die Bereitstellung von ",[61,86,87],{},"AI_API_KEY"," und ",[61,90,91],{},"GITLAB_API_TOKEN"," auf Gruppenebene, die bis dahin jede Produktions-Pipeline blockierte.",[16,94,95,98],{},[26,96,97],{},"Erste Produktionswelle."," Vier Projekte, ausgewählt, weil sie echt, aber begrenzt waren:",[100,101,102,118],"table",{},[103,104,105],"thead",{},[106,107,108,112,115],"tr",{},[109,110,111],"th",{},"Projekt",[109,113,114],{},"Inhalt",[109,116,117],{},"Sprachen",[119,120,121,134,148,159],"tbody",{},[106,122,123,128,131],{},[124,125,126],"td",{},[61,127,79],{},[124,129,130],{},"44 Solutions-Seiten in 7 Kategorien",[124,132,133],{},"Spanisch",[106,135,136,139,145],{},[124,137,138],{},"GitLab Operator",[124,140,141,142],{},"11 Dokumentationsseiten, ohne ",[61,143,144],{},"\u002Fdeveloper",[124,146,147],{},"Koreanisch, Französisch, Japanisch",[106,149,150,153,156],{},[124,151,152],{},"Orbit",[124,154,155],{},"29 Dokumentationsseiten, die gesamte Doku",[124,157,158],{},"Japanisch",[106,160,161,164,167],{},[124,162,163],{},"GitLab Releases",[124,165,166],{},"3 Release-Posts, 19.2–19.4, im Simship mit Englisch",[124,168,158],{},[16,170,171,172,175],{},"Orbit war der Beweis für ",[56,173,174],{},"kontinuierlich",": Ich habe die gesamte Dokumentation ins Japanische übersetzt und sie aktuell gehalten, während sich die Quelle änderte — Übersetzungs-MRs landeten typischerweise etwa 20 Minuten nach dem Quell-Commit.",[16,177,178,181,182,189,190,88,195,200],{},[26,179,180],{},"Linguistinnen und Linguisten liefern Releases — von Anfang bis Ende."," Der stärkste Beleg war keine Seitenzahl, sondern wer am Steuer saß. Ich habe unser Linguistik-Team in die Lage versetzt, diese Pipelines selbst zu konfigurieren und Übersetzungen eigenständig von der Quelländerung bis zum gemergten MR umzusetzen — ohne Engineering dazwischen. Damit haben sie die Releases ",[183,184,188],"a",{"href":185,"rel":186},"https:\u002F\u002Fdocs.gitlab.com\u002Fja-jp\u002Freleases\u002F19\u002Fgitlab-19-2-released\u002F",[187],"nofollow","19.2",", ",[183,191,194],{"href":192,"rel":193},"https:\u002F\u002Fdocs.gitlab.com\u002Fja-jp\u002Freleases\u002F19\u002Fgitlab-19-3-released\u002F",[187],"19.3",[183,196,199],{"href":197,"rel":198},"https:\u002F\u002Fdocs.gitlab.com\u002Fja-jp\u002Freleases\u002F19\u002Fgitlab-19-4-released\u002F",[187],"19.4"," im Simship auf Japanisch veröffentlicht, am selben Tag wie das englische Original statt Wochen später. Genau dafür wurde das Projekt gebaut: Lokalisierung in den Händen derer, die die Sprache verantworten — auf derselben Plattform wie alles andere.",[16,202,203,206],{},[26,204,205],{},"Rollout in drei Phasen."," Zuerst blinde Flecken identifizieren, dann Produktion aktivieren, dann volle operative Abdeckung — jeweils mit Datum und benannter Verantwortung statt eines vagen „wenn es fertig ist\".",[16,208,209,212],{},[26,210,211],{},"Sicherheit von Anfang an."," Least-Privilege-Zugriff für die Komponente und ihre Service-Accounts, maskierte und verborgene Secrets, jeder Lauf nachvollziehbar von der Anfrage über die Pipeline bis zum MR, und ein Rollback-Pfad, den jede DRI sofort ausführen konnte. Dass das vor dem Rollout festgehalten wurde, war der Grund, warum der Trial danach schnell vorankam.",[11,214,216],{"id":215},"ergebnisse","Ergebnisse",[16,218,219],{},"Der Trial lief seinen Zeitraum, das Epic wurde im August 2026 geschlossen. Was dabei herauskam:",[221,222,223,230,236,242],"ul",{},[224,225,226,229],"li",{},[26,227,228],{},"CI Translation Components laufen in Produktion"," auf echten Projekten; Übersetzungen landen als Merge Requests in den Repositories, die den Inhalt besitzen.",[224,231,232,235],{},[26,233,234],{},"Ein dokumentierter, wiederholbarer Workflow"," von Anfrage → CI-Ausführung → Übersetzungs-MR → Review → Merge, mit benannten Verantwortlichen, Monitoring und Support-Pfaden — genau das, was fehlte, solange es nur eine Hackathon-Demo war.",[224,237,238,241],{},[26,239,240],{},"Runbooks für Kundschaft, nicht nur für uns",": wie man die Komponente übernimmt, wie man einen fehlgeschlagenen Job debuggt und wie man Änderungen anfragt oder beiträgt. Der Sinn des Dogfooding war immer die Weitergabe.",[224,243,244,247,248,251],{},[26,245,246],{},"Ein klarer Weg nach vorn."," Der Trial endete mit einem ausgearbeiteten Epic zum ",[56,249,250],{},"Stabilisieren und Ausweiten"," statt mit einer Siegesrunde — das ist das ehrliche Ergebnis. Die Produktion lehrte uns etwas über Token-Rotationen, die Forks pausieren, über Nachverarbeitung, die gehärtet werden musste, und über Konfigurationsrichtlinien, die bewusst entschieden und nicht geerbt werden sollten. Jede dieser Lektionen ist als abgegrenzte, dokumentierte Arbeit festgehalten, sodass alle, die die Komponenten als Nächstes übernehmen, mit einem Plan und einer funktionierenden Produktionsbasis starten — nicht bei null.",[16,253,254],{},"Die Zielwerte, an denen der Trial gemessen wurde und die vorab festgelegt waren: eine Pipeline-Erfolgsquote von mindestens 50 % der Produktionsläufe ohne manuellen Engineering-Eingriff, erfolgreiche MR-Erstellung bei mindestens 80 % der erfolgreichen Läufe und ein Median von der Quelländerung bis zum offenen MR innerhalb eines Werktags, mit Minuten als Stretch-Ziel. Die japanische Orbit-Doku erreichte das Stretch-Ziel regelmäßig, mit etwa 20 Minuten Durchlaufzeit.",{"title":256,"searchDepth":257,"depth":257,"links":258},"",2,[259,260,261],{"id":13,"depth":257,"text":14},{"id":35,"depth":257,"text":36},{"id":215,"depth":257,"text":216},"platform","\u002Fimages\u002Fprojects\u002Fplatform-ci-translation-components.svg","Eine CI-Komponente, gestützt auf Spezifikationen, eine Termbase und Übersetzungsanweisungen, macht aus Änderungen in Orbit, about.gitlab.com und GitLab Operator japanische, koreanische und französische Merge Requests, die jeweils von GitLab Duo geprüft werden","Vom Hackathon-Prototyp zur produktiven Übersetzungs-Pipeline, die lokalisierte Inhalte als gewöhnliche Merge Requests ausliefert.",false,"md",null,true,[271,274,277],{"value":272,"label":273},"87","Seiten in kontinuierlicher Übersetzung in der ersten Welle",{"value":275,"label":276},"4","Zielsprachen: es, ja, ko, fr",{"value":278,"label":279},"~20 Min.","typische Durchlaufzeit von Quelländerung bis Übersetzungs-MR",[281,284,287,290,292,294,296],{"label":282,"url":283},"ci-translation-components","https:\u002F\u002Fgitlab.com\u002Fgitlab-com\u002Flocalization\u002Fci-translation-components",{"label":285,"url":286},"Epic — Production Rollout Trial","https:\u002F\u002Fgitlab.com\u002Fgroups\u002Fgitlab-com\u002Flocalization\u002F-\u002Fwork_items\u002F174",{"label":288,"url":289},"Roadmap-Issue","https:\u002F\u002Fgitlab.com\u002Fgitlab-com\u002Flocalization\u002Flocalization-team\u002F-\u002Fwork_items\u002F730",{"label":291,"url":185},"Release-Post GitLab 19.2 (ja-jp)",{"label":293,"url":192},"Release-Post GitLab 19.3 (ja-jp)",{"label":295,"url":197},"Release-Post GitLab 19.4 (ja-jp)",{"label":297,"url":298},"Folgearbeit — stabilisieren und ausweiten","https:\u002F\u002Fgitlab.com\u002Fgroups\u002Fgitlab-com\u002Flocalization\u002F-\u002Fwork_items\u002F176",{},1,"GitLab","\u002Fde\u002Fprojects\u002Fci-translation-components","2026","Autorin und Gesamt-DRI",{"title":6,"description":265},[307,308,309,310,311,312],"GitLab CI\u002FCD Components","GitLab AI Gateway","GitLab Runner","Hugo","Markdown","YAML","de\u002Fprojects\u002Fci-translation-components","yit0z0n13vNd6T3SqcHq5LUFL6YSP2HBeda-Eil3rEA",{"id":316,"title":317,"body":318,"category":262,"cover":449,"coverAlt":450,"description":451,"draft":266,"extension":267,"externalUrl":268,"featured":269,"highlights":452,"links":461,"meta":476,"navigation":269,"order":257,"org":301,"path":477,"period":478,"role":479,"seo":480,"stack":481,"stem":486,"__hash__":487},"projects\u002Fde\u002Fprojects\u002Fjapanese-documentation.md","Japanische Produktdokumentation",{"type":8,"value":319,"toc":444},[320,322,325,331,338,340,358,376,400,410,412],[11,321,14],{"id":13},[16,323,324],{},"GitLabs Produkt ist lokalisiert. Seine Dokumentation war es nicht — in GitLabs größten nicht-englischen Märkten konnten Kundinnen und Kunden das Produkt also in ihrer Sprache benutzen und stießen genau dann auf eine Wand aus Englisch, wenn sie etwas nachschlagen mussten. Die Forschungslage ist eindeutig: Interessenten kaufen eher, wenn sie es in ihrer Muttersprache tun können. Und der Wettbewerbsmaßstab hatte sich längst verschoben — GitHub begann 2022 mit der Lokalisierung seiner Dokumentation und liefert inzwischen acht Sprachen.",[16,326,327,328,330],{},"Localization und Technical Writing haben gemeinsam ein Programm aufgesetzt, um die Dokumentationsseite für GitLabs Tier-1-Märkte zu lokalisieren — Japanisch, Deutsch und Französisch — beginnend mit ",[26,329,158],{},", nachdem die Migration der Doku-Site auf Hugo einen mehrsprachigen Build überhaupt erst möglich machte.",[16,332,333,334,337],{},"Ich habe die Engineering-Seite übernommen: die Site-Infrastruktur, die dafür sorgt, dass sich eine zweite Sprache korrekt verhält, die domänenübergreifende Übergabe von ",[61,335,336],{},"gitlab.com\u002Fhelp"," und den Launch selbst.",[11,339,36],{"id":35},[16,341,342,345,346,349,350,353,354,357],{},[26,343,344],{},"Die Sprache einzuschalten war eine Zeile. Das Recht dazu zu erarbeiten dauerte vierzehn Monate."," Der Merge Request, der Japanisch live schaltete, setzte ",[61,347,348],{},"disabled: false"," für die Sprache ",[61,351,352],{},"ja-jp"," in ",[61,355,356],{},"config\u002F_default\u002Fhugo.yaml",". Alles Interessante lag darin, was vorher wahr sein musste.",[16,359,360,363,364,367,368,371,372,375],{},[26,361,362],{},"Die Sprachauswahl reparieren, bevor sie jemand benutzt."," Die Auswahl setzte Leserinnen und Leser ursprünglich an den Anfang der Seite in der Zielsprache. In einer Dokumentation — wo man üblicherweise tief in einem bestimmten Abschnitt einer sehr langen Seite steckt — ist das ein leise zur Weißglut treibender Fehler. Ich habe ",[61,365,366],{},"onLanguageSelect"," so geändert, dass der aktuelle Seiten-Hash mitgenommen wird: ",[61,369,370],{},"#global-keywords"," auf der englischen Seite landet nun auf ",[61,373,374],{},"\u002Fja-jp\u002Fci\u002Fyaml\u002F#global-keywords",". Übersetzte Seiten behalten die englischen Anker-IDs, deshalb funktioniert das heute; wo eine Seite keinen passenden Anker hat, lädt sie einfach von oben statt zu brechen. Ausgeliefert im September, drei Monate vor dem Launch — damit war es nie Teil des Launch-Risikos.",[16,377,378,389,390,393,394,396,397,399],{},[26,379,380,381,384,385,388],{},"Die Übergabe ",[61,382,383],{},"\u002Fhelp"," → ",[61,386,387],{},"docs.gitlab.com"," verfolgen."," Das feine Risiko lag nicht bei der Doku-Site — die speichert keine Sprachpräferenz — sondern bei ",[61,391,392],{},"gitlab.com",", das es tut. Wer auf ",[61,395,392],{}," eine japanische Präferenz hinterlegt hat und zur Doku durchklickt, überschreitet eine Domaingrenze, an der Browser Überraschendes tun können. Die Untersuchung brachte eine echte Einschränkung zutage: die Doku-Site hat außer Review-Apps keine Staging-Umgebung, und ",[61,398,383],{}," wird normalerweise nur in der GDK getestet. Die Verifikation musste also aus Review-Apps und lokalen GDK-Läufen zusammengesetzt werden statt aus einem Staging, das es nicht gab.",[16,401,402,405,406,409],{},[26,403,404],{},"Launch nach Uhr — und in der richtigen Zeitzone."," Das Deployment war auf ",[26,407,408],{},"12:00 PST am Mittwoch, 10. Dezember 2025 — 05:00 JST am 11."," angesetzt, damit japanische Leserinnen und Leser damit aufwachen und es nicht mitten am Nachmittag erscheinen sehen. Der Launch war in drei nachverfolgte Teile mit getrennter Verantwortung aufgeteilt: Site-Deployment, Monitoring und QA während und nach dem Launch sowie der Ankündigungs-Blogpost. Das GTM-Launch-Epic bündelte die QA-Runden, Bugfixes und die interne wie externe Kommunikation an einem Ort, damit Feedback nach dem Launch einen Platz hatte.",[11,411,216],{"id":215},[221,413,414,423,429,438],{},[224,415,416,422],{},[26,417,418,421],{},[61,419,420],{},"docs.gitlab.com\u002Fja-jp"," ist live",", und Japanisch ist die erste lokalisierte Sprachversion der GitLab-Dokumentation. Der Merge Request wurde planmäßig am 10. Dezember 2025 gemergt.",[224,424,425,428],{},[26,426,427],{},"Die Sprachauswahl behält die Position auf der Seite",", wodurch ein Sprachwechsel zur Navigation wird und nicht zum Neuanfang — eine kleine Korrektur mit überproportionaler Wirkung darauf, ob sich lokalisierte Dokumentation benutzbar anfühlt oder nur vorhanden.",[224,430,431,434,435,437],{},[26,432,433],{},"Ein wiederholbarer Weg für Deutsch und Französisch."," Die mehrsprachige Hugo-Konfiguration, das Verhalten der Sprachauswahl, die ",[61,436,383],{},"-Übergabe und die QA-Routine sind jetzt sprachunabhängig. Die nächste Sprachversion ist ein Inhalts-, kein Infrastrukturproblem — und genau darum ging es, die erste sorgfältig zu machen.",[224,439,440,443],{},[26,441,442],{},"Ein dokumentiertes Launch-Muster",": Deployment, Monitoring und Ankündigung als drei separat verantwortete Stränge mit fester Umschaltzeit in der Zeitzone der Lesenden.",{"title":256,"searchDepth":257,"depth":257,"links":445},[446,447,448],{"id":13,"depth":257,"text":14},{"id":35,"depth":257,"text":36},{"id":215,"depth":257,"text":216},"\u002Fimages\u002Fprojects\u002Fplatform-japanese-documentation.svg","Die GitLab-Dokumentationsseite mit auf Japanisch gestellter Sprachauswahl","Die erste lokalisierte Sprachversion von docs.gitlab.com — die Site-Infrastruktur, die Sprachauswahl und der Launch selbst.",[453,455,458],{"value":352,"label":454},"erste lokalisierte Sprachversion auf docs.gitlab.com",{"value":456,"label":457},"10. Dez. 2025","Launch-Tag — 05:00 JST am 11. Dezember",{"value":459,"label":460},"3","Tier-1-Sprachen auf der Programm-Roadmap: ja, de, fr",[462,464,467,470,473],{"label":420,"url":463},"https:\u002F\u002Fdocs.gitlab.com\u002Fja-jp\u002F",{"label":465,"url":466},"MR — Japanische Dokumentation","https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Ftechnical-writing\u002Fdocs-gitlab-com\u002F-\u002Fmerge_requests\u002F1371",{"label":468,"url":469},"MR — Ankerlinks in der Sprachauswahl","https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Ftechnical-writing\u002Fdocs-gitlab-com\u002F-\u002Fmerge_requests\u002F1349",{"label":471,"url":472},"Programm-Epic","https:\u002F\u002Fgitlab.com\u002Fgroups\u002Fgitlab-com\u002Flocalization\u002F-\u002Fwork_items\u002F14",{"label":474,"url":475},"Handbook — Lokalisierung technischer Dokumentation","https:\u002F\u002Fhandbook.gitlab.com\u002Fhandbook\u002Fmarketing\u002Flocalization\u002Ftech_docs_localization\u002F",{},"\u002Fde\u002Fprojects\u002Fjapanese-documentation","2025 — 2026","Fullstack Engineer, Lokalisierung der Doku-Site",{"title":317,"description":451},[310,482,483,312,484,485],"Go-Templates","JavaScript","GitLab CI\u002FCD","GDK","de\u002Fprojects\u002Fjapanese-documentation","shDBZFInv76dY758lf1uTvVqcXks29kyPFC0U5yFuZQ",{"id":489,"title":490,"body":491,"category":576,"cover":577,"coverAlt":578,"description":579,"draft":266,"extension":267,"externalUrl":268,"featured":266,"highlights":580,"links":593,"meta":597,"navigation":269,"order":598,"org":599,"path":600,"period":601,"role":602,"seo":603,"stack":604,"stem":610,"__hash__":611},"projects\u002Fde\u002Fprojects\u002Fxyz-textbooks.md","XYZ Online-Lehrbuchplattform",{"type":8,"value":492,"toc":571},[493,495,501,508,515,517,523,529,539,541],[11,494,14],{"id":13},[16,496,497,498,500],{},"Wer schon einmal um Mitternacht an einer Matheaufgabe festhing, weiß: Der Lösungsteil hilft nicht. Das Ergebnis zu sehen ist etwas anderes, als zu sehen, ",[56,499,35],{}," man dahin kommt. Was man eigentlich will, ist jemand, der neben einem sitzt und die Aufgabe durchrechnet — im eigenen Tempo, so oft wie nötig.",[16,502,503,504,507],{},"Genau das hat XYZ Textbooks gebaut: ein interaktives Lehrbuch, in dem ",[26,505,506],{},"es zu jeder Matheaufgabe drei oder vier Video-Tutorials gibt, in denen eine echte Lehrkraft den Lösungsweg erklärt",". Man wählt die Lehrkraft, deren Erklärung am besten funktioniert, und schaut so viel, wie man braucht: einen Schritt, die ganze Lösung oder dieselbe Aufgabe noch einmal von jemand anderem erklärt.",[16,509,510,511,514],{},"Für Studierende klingt das einfach. Im Betrieb ist es das nicht. Hunderte Aufgaben pro Buch, mal drei oder vier Videos, über einen Katalog von mehr als 25 Titeln — das ergibt ",[26,512,513],{},"Terabytes an Video",", die gespeichert, gepflegt und auf Abruf gestreamt werden müssen, in dem Moment, in dem jemand auf eine Aufgabe tippt.",[11,516,36],{"id":35},[16,518,519,522],{},[26,520,521],{},"Die Architektur für das Video, gemeinsam."," Zusammen mit unserem Lead Engineer habe ich das System entworfen, das das möglich macht: wie Zehntausende Videos organisiert, exakt der Aufgabe zugeordnet werden, die sie erklären, bei Überarbeitungen eines Titels aktuell bleiben und schnell genug ausgeliefert werden, dass niemand warten muss, um weiterzukommen.",[16,524,525,528],{},[26,526,527],{},"Die UI habe ich verantwortet."," Beim Bau der Oberfläche, mit der Studierende tatsächlich arbeiten, lag die Führung bei mir. Der Reader sollte sich wie ein Buch anfühlen, nicht wie ein Videoportal: echte Kapitel und Seitennavigation, Mathematik, die sauber rendert und in jeder Zoomstufe lesbar bleibt, und Videos direkt an der Aufgabe, bei der sie helfen, statt versteckt in einem separaten „Material\"-Tab. Die eigentliche Herausforderung war Auswahl ohne Unordnung: drei oder vier Lehrkräfte pro Aufgabe, über Hunderte Aufgaben hinweg, sind viel Video, das nur einen Tipp entfernt sein soll, ohne die Mathematik selbst zu verdecken.",[16,530,531,534,535,538],{},[26,532,533],{},"Das Bezahlportal entworfen."," Zusätzlich zum Reader habe ich das gesamte Bezahlportal gestaltet: den Kaufprozess, den Warenkorb und das Konto, das einen Kauf mit dem Bücherregal verbindet. Den Checkout selbst zu besitzen hieß, dass XYZ die eigenen Preise festlegte, statt die Bedingungen eines Courseware-Anbieters zu akzeptieren — und das zeigt sich bis heute: Das E-Book Applied Calculus kostet ",[26,536,537],{},"45 $",", in einem Markt, in dem ein Lehrbuch plus Pflicht-Zugangscode regelmäßig über 200 $ liegt.",[11,540,216],{"id":215},[221,542,543,553,559,565],{},[224,544,545,548,549,552],{},[26,546,547],{},"13 Jahre später: unverändert."," Die UI, die ich verantwortet habe, ist noch heute die, mit der Studierende auf ",[61,550,551],{},"xyztextbooks.com"," arbeiten. Für eine Webanwendung von 2013 ist das das Ergebnis, das zählt — sie hat jeden Framework-Trend danach überdauert.",[224,554,555,558],{},[26,556,557],{},"Eine Lehrkraft für jede Aufgabe."," Studierende haben bei jeder Aufgabe im Buch die Wahl zwischen echten Lehrkräften statt eines einzigen Lösungsteils — und schauen so viel, wie sie brauchen.",[224,560,561,564],{},[26,562,563],{},"Gebaut, um das Gewicht zu tragen."," Ein Katalog von über 25 Titeln mit Terabytes an Video dahinter, bis heute auf Abruf ausgeliefert über die Architektur, die wir entworfen haben.",[224,566,567,570],{},[26,568,569],{},"Ein Produkt, von Anfang bis Ende."," Reader, Video-Tutorials und Bezahlportal erscheinen als ein Erlebnis, mit einem Konto und einem Login.",{"title":256,"searchDepth":257,"depth":257,"links":572},[573,574,575],{"id":13,"depth":257,"text":14},{"id":35,"depth":257,"text":36},{"id":215,"depth":257,"text":216},"application","\u002Fimages\u002Fprojects\u002Fapplication-xyztextbooks.png","Der Online-Reader von XYZ Textbooks mit einem Analysis-Kapitel","Ein interaktives Mathematik-Lehrbuch, in dem zu jeder Aufgabe eine echte Lehrkraft den Lösungsweg erklärt — Terabytes an Video, auf Abruf ausgeliefert, über eine UI, die seit 13 Jahren trägt.",[581,584,587,590],{"value":582,"label":583},"3–4","Video-Tutorials zu jeder Aufgabe im Buch",{"value":585,"label":586},"25+","Titel im Katalog",{"value":588,"label":589},"Terabytes","an Lehrvideos, auf Abruf ausgeliefert",{"value":591,"label":592},"13 Jahre","und die UI ist noch immer die, die wir ausgeliefert haben",[594],{"label":595,"url":596},"Applied Calculus auf der Plattform","https:\u002F\u002Fwww.xyztextbooks.com\u002Febook\u002Ftitle\u002Fapplied_calculus",{},3,"XYZ Textbooks","\u002Fde\u002Fprojects\u002Fxyz-textbooks","2013 — 2015","Frontend-Engineering-Lead",{"title":490,"description":579},[483,605,606,607,608,609],"PHP","MySQL","Sass","MathJax","Payment Gateway","de\u002Fprojects\u002Fxyz-textbooks","AecaYz0tEcnOihSHFvlwYVVaNrlhZza1Tg31LF2NLw0",{"id":613,"title":614,"body":615,"category":619,"cover":620,"coverAlt":621,"description":622,"draft":266,"extension":267,"externalUrl":623,"featured":266,"highlights":624,"links":625,"meta":626,"navigation":269,"order":627,"org":628,"path":629,"period":630,"role":631,"seo":632,"stack":633,"stem":634,"__hash__":635},"projects\u002Fde\u002Fprojects\u002Fceo-shadow-takeaways.md","CEO Shadow — meine Erkenntnisse",{"type":8,"value":616,"toc":617},[],{"title":256,"searchDepth":257,"depth":257,"links":618},[],"writing","\u002Fimages\u002Fprojects\u002Fwriting-ceo-shadow.jpg","Lauren Barker an ihrem Schreibtisch, mit einem Shaka neben einem Monitor voller Code","Zwei Wochen raus aus dem Code, um GitLabs CEO zu begleiten — wie es war und was ich für mein Team mitgenommen habe. (Beitrag auf Englisch)","https:\u002F\u002Fabout.gitlab.com\u002Fblog\u002Fceo-shadow-takeaways-from-barker\u002F",[],[],{},6,"GitLab Blog","\u002Fde\u002Fprojects\u002Fceo-shadow-takeaways","2021","Autorin",{"title":614,"description":622},[],"de\u002Fprojects\u002Fceo-shadow-takeaways","4m2ZPYtacRbmjuO0Z18U2CmhA8_7GihnYPsthIeasyA",1791503629819]