Transloadits Meilensteine und Fortschritte 2021 feiern
Bei Transloadit konzentrieren wir uns gern auf die Dinge, die verbessert werden müssen. Nach dreizehn Jahren im Geschäft finden wir davon jeden Tag neue. Das führt zu viel Gutem, doch diese Haltung macht es auch leicht, die Dinge zu unterschätzen, die gut laufen. Wir wenden uns schnell dem nächsten Problem zu und vergessen, was wir gerade erst erreicht haben. Was wir oft mit harter Arbeit und Hingabe erschaffen haben, wird allzu schnell für den neuen Status quo gehalten.
Vor Kurzem bin ich über einige große, abgeschlossene Projekte gestolpert. Projekte, die uns unüberwindbar erschienen, als wir vor ihnen standen, die nun aber mit einem kleinen grünen Häkchen versehen waren – versteckt unter einem unscheinbaren Reiter mit der Bezeichnung „Abgeschlossen“. Diese Projekte sind heute im Einsatz, als wäre es nie anders gewesen. Hier also der Versuch, diesen Reiter „Abgeschlossen“ zu feiern, diese Kanban-Spalte „Archiviert“, das „Erledigt“ in Getting Things Done.
Einige meiner Teamkolleginnen und Teamkollegen hatten mit COVID und dessen direkten und indirekten Härten zu kämpfen, etwa mit Depressionen oder schlicht mit einem allgemeinen Gefühl von Frust und Verzweiflung. Obendrein musste mein Mitgründer Tim so vieles bewältigen, nachdem bei seiner Frau Cindy im vergangenen Jahr Krebs diagnostiziert wurde. So etwas kann einen ohnmächtig machen, und die Arbeit war oft eine willkommene Ablenkung. Gerade in diesen herausfordernden Zeiten finde ich es deshalb gut, auf die Fortschritte zurückzublicken, die wir gemacht haben, und sie zu feiern.
Hier sind die Highlights unseres Unternehmens aus dem vergangenen Jahr.

API
Neue Funktionen
- /azure/import – Dateien aus Azure importieren.
- /image/ocr – Text in Bildern erkennen.
- /script/run – Ihren eigenen Code auf unseren Systemen ausführen, um sehr wilde Dinge zu bauen; Dinge, die wir uns noch nicht vorgestellt haben, Sie aber tun werden! Powered by Deno.
- /speech/transcribe – Stimmen in Text verwandeln.
- /text/speak – Text in Stimmen verwandeln.
- /text/translate – Text aus vielen und in viele verschiedene menschliche Sprachen übersetzen.
- /vimeo/store – Videos zu Vimeo hochladen.
- Unser Smart CDN (Beta) wird in der Produktion eingesetzt, die ersten Kunden wurden abgerechnet.
Verbesserungen
- /audio/artwork – Sie können sich für verschiedene ExifTool-Stacks entscheiden.
- /document/convert – kann auch MS-Office-Dokumente und Markdown nach HTML konvertieren.
- /image/facedetect – bessere Genauigkeit dank der KI großer Cloud-Anbieter.
- /file/filter – Bedingungen funktionieren intuitiver.
- /http/import – Google-Docs- und Dropbox-URLs lassen sich leichter
importieren, und eine Option
fail_fastermöglicht es Ihnen, auf Wiederholungsversuche bei Fehlern zu verzichten. - /image/describe – jetzt können Sie Bilder mit dem Parameter
explicit_descriptionsauf unangemessene Inhalte (NSFW) prüfen. - /s3/store prüft nun die Integrität von Dateien nach dem Speichern in S3.
Performance
- Den Assembly-Overhead reduziert, wodurch kleine Assemblies 5x schneller sind.
- Wartezeiten in der Queue verkürzt, indem wir große Teile unseres Autoscalers neu geschrieben und die Zeit vom Start einer Maschine bis zum Encoding um den Faktor 5 reduziert haben.
- Transcoding-Zeiten durch den Einsatz von c6-Maschinen reduziert.
- ImageMagick wo möglich durch libvips ersetzt und damit die Zeiten für die Größenänderung von Bildern um den Faktor 10 reduziert.
Unternehmen
Team & Expertise
- Partnerschaften mit den Autoren von Software geschlossen, die für uns von zentraler Bedeutung ist, etwa Nix, FFmpeg, Prometheus, Jekyll – sowie mit Beratern von AWS, die in unserem Slack jederzeit erreichbar sind.
- Seniorität im gesamten Team etabliert. Als Gründer mussten wir uns stärker zurücknehmen, und wir haben bemerkt, dass andere in die Bresche gesprungen sind. Wir haben eine offizielle Leitung eingesetzt, die in unserer Abwesenheit die Entscheidungen trifft.
- Yukesh, Joseph, Merlijn, Antoine und Florian eingestellt. Das heißt: Ende 2021 zählten wir 21 Transloadians zu unseren Reihen. Willkommen, Leute!
- Unseren Chatbot verbessert, damit er uns hilft, neue Gewohnheiten zu etablieren, etwa effizientere wöchentliche Calls und Themenmonate, in denen wir uns auf ein bestimmtes Thema konzentrieren.
Buchhaltung & Finanzen
- Einen Großteil der manuellen Buchhaltungsarbeit automatisiert.
- Eine niederländische Niederlassung gegründet.
- Transloadit Ltd in die Transloadit-II GmbH überführt.
- Payrolling für deutsche Angestellte eingerichtet.
- Worldpay durch Stripe ersetzt, um Kunden abzurechnen und ihre Kreditkartendaten zu speichern.
- Zu einem neuen Steuerberater gewechselt, einer großen Kanzlei mit Büros rund um den Globus, die uns hilft, internationale Gewässer besser zu navigieren.
- Zu einer neuen Anwaltskanzlei gewechselt, die unsere Verträge für Freelancer und Unternehmen überarbeitet hat.
Entwicklererfahrung
Wie bei jedem Handwerk gilt: Eine schmutzige, unsichere Werkstatt mit stumpfen, halb kaputten Werkzeugen inspiriert nicht zu großartigen Ergebnissen. Möglich ist es, ja, aber man wird deutlich weniger davon sehen. Beim Programmieren ist das nicht anders. Weniger Reibung steigert nicht nur Kreativität und Produktivität, sie hilft auch dabei, Talente zu gewinnen und zu halten. Deshalb investieren wir viel in einen sauberen, sicheren Arbeitsplatz und in scharfe Werkzeuge.
CI
- Website-Vorschauen zum Durchklicken zu jedem Pull Request hinzugefügt.
- Git-Tags beim Deploy erstellt, damit wir Änderungen zwischen Releases der API leichter nachverfolgen können.
- Die Laufzeit der API-Testsuite halbiert.
- Die Zeit für den Build von Betriebssystem-Images (AMIs) um den Faktor drei reduziert.
- Jenkins durch GitHub Actions ersetzt, drei Hetzner-Runner hinzugefügt und ein Skript erstellt, mit dem sich weitere leicht ergänzen lassen. Außerdem sind wir von Build-Nummern auf Build-URLs umgestiegen, wodurch sich leicht aus verschiedenen Branches, CI-Umgebungen oder Quellen deployen lässt.
- Alle SDKs von Travis auf GitHub Actions umgestellt.
- Von eigenen Deploys auf vollständiges CI/CD umgestellt.
- Der Lighthouse-Score der Website wird jetzt in jedem Pull Request angezeigt.
Codequalität
- Den Support für Internet Explorer eingestellt.
- Sentry hinzugefügt, um jeden clientseitigen Fehler in den Griff zu bekommen, den unsere Website auslösen könnte.
- React + Hooks, TypeScript, Jest, Playwright und Async/await in viele Codebases eingeführt.
- Unser eigenes Linting ausgerollt und in allen großen JS-Projekten angewendet.
- Nicht mehr gepflegte Module wie knox und required-cache sowie nicht mehr gepflegte Versionen von async, aws-sdk, lodash usw. ausgemustert.
- Unsere API von Node 10 auf Node 14 aktualisiert, sodass wir Optional Chaining und mehr nutzen können.
Iterationszeiten
- Unsere Dev-Umgebung startet jetzt ohne manuelles Zutun, und die Dokumentation dazu wurde verbessert.
- Das Hoch- und Herunterfahren von Staging-Clustern so einfach gemacht, dass es Spaß macht. Außerdem haben wir das Log-Handling dafür getrennt, sodass wir Probleme sehen können, ohne das Ops-Team wecken zu müssen.
- Variablen aus allen require- oder import-Pfaden entfernt, um bessere Code-Autovervollständigung in Editoren zu erhalten.
- Den Build statischer Inhalte vierzehnmal beschleunigt.
- Webpack von 2 auf 5 aktualisiert und auf Dart Sass sowie CSS- und Code-Splitting umgestellt, für ein besseres Erlebnis beim Bauen und Herunterladen von Assets. Docker-basiertes Jekyll haben wir verworfen, da es unter macOS zu langsam ist.
Projektmanagement
- Asana durch GitHub Projects ersetzt und Automatisierungen hinzugefügt, die das Projektmanagement erleichtern.
- Auf kostenloses GitHub umgestiegen und Actions ergänzt, um einige Defizite auszugleichen.
Wachstum
- T-Shirts entworfen, in denen man sich auf einer Party sehen lassen kann.
- Nahezu unseren Umsatz verdoppelt.
- Slack Connect für unsere wichtigsten Kunden eingeführt.
- Unsere 50. Ausgabe der Dev Times (English) verschickt.
- Unseren ersten Vertrag für OSS-Support unterzeichnet.
- WeTransfer, Blackboard und viele weitere als neue Kunden gewonnen.
Infrastruktur & Stack
- Unterstützung für Reloads von HAProxy und Nginx ergänzt, sodass Deploys ohne Ausfall laufen.
- Auf Build-spezifische nix-Profile umgestellt, was viele – wenn nicht alle – unserer Stack-Probleme in der Produktion gelöst hat.
- Die Produktion so gehärtet, dass sie einen 20-minütigen Datenbankausfall übersteht.
- Den Umgang mit Spot Termination verbessert, um Jobs eleganter an andere Maschinen zu übergeben.
- Rate Limiting und Antworten verbessert, sodass Clients besser damit umgehen können.
- Die gesamte Legacy-AWS-Infrastruktur in eine VPC verschoben.
- raidmaker von Bash nach Python portiert, um Laufwerke, die wir beim Start einer Maschine auf AWS anhängen, robuster und korrekter zu initialisieren.
- Unser Basis-Betriebssystem auf Ubuntu Focal aktualisiert, Snaps entfernt und automatisierte apt-Sicherheitspatches eingeplant. Außerdem haben wir Tooling zur Analyse von Coredumps ergänzt.
- Terraform auf
1.0, FFmpeg auf4.3, Nix auf2.3und HAProxy auf2.0aktualisiert.
Open Source
Uppy
- Die Umsatzzuweisung für Uppy mehr als verdoppelt.
- Uppy um eine Funktion zur Bildschirmaufnahme erweitert.
- Uppy Companion das Streamen von Uploads ermöglicht, was deutlich schneller und ressourcenschonender ist.
- Uppy-DX-Probleme angegangen (corepack, Lerna zugunsten von Yarn 3 verworfen, GitHub Actions, Vite, ESBuild, Stale Bot, Auto-Releases).
- Die Zahl der offenen Uppy-Issues von 120 auf 40 gesenkt.
- Uppy arbeitet dank einer virtuellen Dateiliste flüssig mit Tausenden von Dateien.
- Die Bundle-Größe von Uppy reduziert, unter anderem durch das Entfernen von IE-Polyfills.
- Uppy 2.0 veröffentlicht.
- Preact in Uppy auf die neueste Version aktualisiert.
tus
tusdbeschleunigt, dafür gesorgt, dass es RST verarbeitet, und das Go-Plugin-System von HashiCorp implementiert.- Mit der Arbeit an tus-v2 begonnen. Ziel ist die Standardisierung in HTTP, mit Unterstützung von Apple, Cloudflare und Vimeo.
SDKs & Node.js
- Eine Terraform-Integration hinzugefügt.
- Alle offiziellen SDKs bestehen wieder die CI.
- Das Android SDK, das Java SDK, die Zapier-Integration und das Node.js SDK (v3) neu geschrieben und modernisiert.
- Einen Transloadian im Technical Steering Committee von Node.js gesponsert, damit er zu 20 % an den Interna von Node.js arbeitet.
Ops
- Observability mit Prometheus und Grafana ergänzt. In Pager-Meldungen sind Snapshots von Graphen enthalten, damit das Troubleshooting effizienter wird.
- SSH-Tooling ergänzt, mit dem wir schnell Sessions zu Maschinen in vielen verschiedenen Tabs oder Panes öffnen können.
- Team-Richtlinien für Sicherheit und Bereitschaftsrotation erstellt.
- Das On-Call-Team vergrößert und so die bestehende Mannschaft entlastet.
- Das Konzept der Pager mit niedriger Severity eingeführt, die wir bedenkenlos verschlafen und am Morgen prüfen können.
Sicherheit
- Mehr als zwanzig Sicherheitsberichte von ethischen Hackern behoben.
- nsjail eingeführt, um Encoding-Werkzeuge weiter in einer Sandbox zu isolieren.
- Die IAM-Berechtigungen verschiedener Maschinenrollen reduziert, indem wir genau analysiert haben, was sie benötigen, und alles Übrige entfernt haben.
- Die Rotation von Secrets vereinfacht und alle Secrets rotiert.
Web
- Auf unserer Startseite einen Lighthouse-Score von 100 Punkten für Barrierefreiheit erreicht und die CI angewiesen, fehlzuschlagen, wenn wir unter 100 fallen, damit es hier nie zu einem Rückschritt kommt.
- Mehr als zehn neue Demos (English) erstellt.
- Eine brandneue Content-Delivery-Seite mit einer interaktiven Demo erstellt, die zeigt, wie schnell unser Smart CDN nahezu in Echtzeit die Größe von Bildern ändert.
- Eine brandneue Sicherheitsseite erstellt und viele Fragen dazu beantwortet. Sie enthält außerdem eine Hall of Fame für ethische Hacker, die Schwachstellen finden und melden.
- Die UX im Template-Wizard verbessert.
- Feature-Seiten für alle unsere Robots, ihre Demos und die Preise eingeführt.
- Große Teile unserer Website nach S3 und CloudFront verschoben, wodurch Seiten deutlich schneller laden (US: 2x, EU: 6x, AP: 100x).
- Viele Teile der Konsole auf React umgestellt (ein schrittweiser Prozess, aber ~80 % sind bereits ausgeliefert), was unseren Kunden eine schnellere und angenehmere UI bringt und unseren Entwicklern eine angenehmere Arbeit daran.
- Unsere Startseite neu gestaltet.
- Die gesamte Dokumentation neu geschrieben und neu gestaltet.
- Die Statusseite neu geschrieben, neu gestaltet und vollständig von AWS gelöst. Bis hinauf zum Domain-Registrar ist sie jetzt komplett von der Produktion getrennt.
Fazit
Darüber hinaus haben wir mehr als sechshundert kleinere Fixes und Verbesserungen ergänzt, die vieles insgesamt runder laufen lassen.
Als Remote- und Digitalunternehmen hatten wir in dieser Pandemie Glück. Wir haben andere Unternehmen in existenzielle Krisen geraten sehen, während wir oft so weiterarbeiten konnten, wie wir es gewohnt waren. Das haben wir nicht als selbstverständlich hingenommen und uns zudem aktiv entschieden, dort weiter Wert zu schaffen, wo wir konnten.
Für all die Arbeit, die daraufhin geleistet wurde, kann ich persönlich nur sehr wenig Anerkennung beanspruchen. Umso stolzer bin ich auf mein Team und die unzähligen Berge, die es versetzt hat. Es hat unser Schiff nicht nur über Wasser gehalten, sondern es auch in unbekannte Gewässer vorangetrieben. Unser Team hat durchgehalten, wenn es nötig war, und die guten Zeiten genossen, wenn es möglich war.
Meine lieben Transloadians, ich bin dankbar für all eure Beiträge. Ich weiß nicht genau, wie es uns gelungen ist, eine so talentierte Truppe fürsorglicher Menschen zu finden, aber ich möchte dieses Abenteuer mit keiner anderen Crew erleben.
(auch wenn durchaus Platz ist, die Crew zu erweitern: Wenn Sie daran interessiert sind, für Transloadit zu arbeiten, schauen Sie unter /jobs/ (English) vorbei)
Haben Sie eine Liste Ihrer Erfolge aus dem vergangenen Jahr erstellt? Die Pandemie und andere
Härten haben uns zeitweise ohnmächtig fühlen lassen, deshalb ist es gut, kurz innezuhalten und
darüber nachzudenken, was Sie tatsächlich erreicht haben. Es könnte mehr sein, als Sie denken.
— transloadit (🤖 Transloadit) 3. Februar 2022