Komplizierte Systeme zähmen: Lektionen von Uber bis Google

2025-05-15
Komplizierte Systeme zähmen: Lektionen von Uber bis Google

Dieser Artikel beschreibt die Erfahrungen des Autors in der Softwareentwicklung bei einem Uber-Konkurrenten und bei Google und unterscheidet zwischen komplizierten Problemen und komplexen Systemen. Komplizierte Probleme folgen strukturierten, wiederholbaren Lösungen, während komplexe Systeme Anpassungsfähigkeit und innovative Ansätze erfordern. Der Artikel geht auf fünf Merkmale komplexer Systeme ein: emergentes Verhalten, verzögerte Folgen, die Falle der lokalen Optimierung, Hysterese und Nichtlinearität. Es werden Strategien für einen effektiven Betrieb in komplexen Umgebungen vorgestellt, darunter die Priorisierung umkehrbarer Entscheidungen, die Definition der richtigen Metriken, die Akzeptanz von Innovationen, die Nutzung bewährter Verfahren (Feature-Flags, Canary-Releases, progressive Rollouts, Shadow-Tests) und die Betonung von Observability, Simulationstests und maschinellem Lernen. Abschließend hebt der Autor die Bedeutung der Teamarbeit in komplexen Systemen hervor.

Mehr lesen
Entwicklung

Vom Blogbeitrag zum Bestseller: Die Reise eines Programmierers mit einem Go-Buch

2025-04-10
Vom Blogbeitrag zum Bestseller: Die Reise eines Programmierers mit einem Go-Buch

Dieser Beitrag beschreibt die Reise des Autors beim Schreiben seines Buches "100 Go-Fehler und wie man sie vermeidet". Beginnend mit einem einfachen Go-Proof-of-Concept (PoC) in der Schweiz, erzählt der Autor von den Herausforderungen, darunter Jobwechsel, Interaktionen mit dem Verlag, das Verarbeiten von Feedback von Redakteuren und Gutachtern und die letztendliche Veröffentlichung und Markteinführung. Die Geschichte hebt das persönliche Wachstum des Autors, den Wert des Leser-Feedbacks und die Verbesserung seiner Schreibfähigkeiten hervor. Der Erfolg des Buches, einschließlich der Übersetzungen, wird ebenso besprochen wie Reflexionen über Sinn und Belohnung des Schreibens und eine distanzierte Sicht auf Geld und Ruhm.

Mehr lesen
Entwicklung

Funktoren, Applikative und Monaden in Haskell verstehen

2025-03-30
Funktoren, Applikative und Monaden in Haskell verstehen

Dieser Artikel bietet eine klare und verständliche Erklärung von Funktoren, Applikativen und Monaden in der funktionalen Programmierung mit Haskell. Der Autor verwendet Analogien, um komplexe Konzepte leichter verständlich zu machen. Er benutzt die Metapher von Boxen, um zu veranschaulichen, wie diese Typen die Anwendung von Funktionen in verschiedenen Szenarien handhaben, und liefert Codebeispiele, um deren Verwendung und Unterschiede zu demonstrieren. Der Artikel schließt mit einer Reflexion über die Bedeutung von Lernen und Wissensaustausch, die aus einer Interaktion mit der Haskell-Community resultiert.

Mehr lesen
Entwicklung Monaden