Software Engineering ist der Prozess der Analyse, Design, Entwicklung, Tests und Wartung von Software-Systemen. In diesen Episoden erkunden wir die verschiedenen Aspekte des Software Engineerings, einschließlich Architektur, Modellierung, Qualitätssicherung und Projektmanagement. Wir besprechen auch, wie Organisationen die Software Engineering-Prozesse verbessern und wie sie die Qualität ihrer Software sicherstellen können.
Doom - Das Spiel und warum es ein Engineering Meisterwerk ist Das Spiel Doom beschäftigt viele Software-Entwickler*innen auch noch 31 Jahren nach seiner Veröffentlichung im Jahre 1993. Die Frage “Can it run Doom?” ist allgegenwärtig. Es ist eine Art Sport geworden, das Spiel auf jede Art von Device zu portieren. Doom läuft inzwischen auf einem John Deere Trecker, einem Satelliten und einem digitalen Schwangerschaftstest. Doch was macht dieses Spiel so interessant? Warum wird genau dieses Spiel für die Portierung genutzt? Welche bahnbrechenden Implementierungsdetails haben John Carmack, John Romero und das Team verbaut? Das war meine Ausgangsfrage. Das Resultat? Ein tiefes Loch voller Wow und WTF-Momente. Und diese Podcast-Episode. Es geht um Zufallszahlengeneratoren, Grafik-Engines, Doom-Fun-Facts, Doom Forks und wie du deinen eigenen Doom-Port erstellen kannst. Bonus: Ist es eine...
Zeitsynchronisation: Ein Element, wovon wir ausgehen, dass es einfach funktioniert So gut wie jede Applikation benötigt die aktuelle Zeit als ein Element zur Berechnung, zum Logging oder auch zur Synchronisation. Besonders bei mehreren Systemen, die miteinander kommunizieren, ist die Synchronisation der Zeit essenziell. Dazu zählen z.B. verteilte Systeme wie Datenbanken oder auch IP-basierte Funk- und Videoübertragungssysteme. Doch wie funktioniert das eigentlich und was steckt dahinter? In dieser Episode geht es also um Zeit und Zeitsynchronisation. Wir sprechen über die beiden Protokolle NTP, das Network Time Protocol und PTP, das Precision Time Protocol. Was sind das für Protokolle? Wo kommen diese zum Einsatz, welche Genauigkeit legen diese zu Grunde und wo kommen diese an ihre Grenzen? Und was sind Boundary Clocks und Transparent Clocks? Weiterhin schauen wir uns mal an, wozu...
Dein Code ist nichts wert, bevor er nicht in Produktion ist! Viele Software-Entwickler*innen haben sich bereits in der Situation gefunden, wo wir immer und immer wieder über den eigenen Source Code iterieren, um diesen noch schöner zu machen. Soviel Spaß dies auch macht … ist das schönste Gefühl jedoch, wenn jemand meinen Source Code wirklich nutzt. Und das geht nur, wenn wir diesen auch deployen. Oder etwas direkter gesagt: Dein Source Code ist solange nichts wert, bis dieser nicht in Produktion ist und vom Kunden genutzt werden kann. Klingt hart, ist aber Fakt. Deswegen geht's in dieser Podcast Episode um das Thema Deployment. Wir sprechen über Anti-Patterns wie manuelle Deployments, Big-Bang Deployments und Deployment Monolithen. Wir schauen uns an welche Herausforderungen wir bereits in unserer beruflichen Laufbahn bei Deployments gesehen haben, wie zB Caching, CDNs, Deployment...
Security Engineering und Hacking-Wettbewerbe “Capture the Flag” Alles wird digital und für alles gibt es eine App. Bei einer solch rasanten Verbreitung, weckt dies Begehrlichkeiten bei böswilligen Hackern. Was ist also die passende Gegenwehr? Security Engineering! Doch was ist das eigentlich? Wir sprechen mit Frederik Braun, Security Engineering Manager bei Mozilla und zuständig für den Firefox Browser. Er erklärt uns die Gemeinsamkeiten und Unterschiede von Security und Software-Engineering, wie sich der Bereich Security von einer Web-App und einem Browser unterscheidet, wie Security selbst bei Mozilla aussieht, wie Sicherheitslücken mittels Gamification und Capture The Flag Events gefunden und das suchen geübt werden kann und wie du in das Thema Security Engineering einsteigen kannst. Bonus: Hackerpraktika an der Universität Bochum Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht...
Eine (Schalt)-Sekunde kann für ganz schön viele Probleme sorgen Alle 4 Jahre haben wir ein Schaltjahr, ein zusätzlicher Tag wird eingefügt. Was aber vielen nicht bekannt ist: Immer mal wieder gibt es auch eine Schaltsekunde. Auf einmal hat der Tag nicht 86.400 Sekunden sondern 86.401 Sekunden. Und eine solch zusätzliche Sekunde kann, zumindest bei IT-Systemen, für eine ganze Menge Probleme sorgen. Und auch eine ganze Podcast-Episode füllen. Wir sprechen über die Schaltsekunde und warum diese seit 1970 nur 27 mal eingefügt wurde. Wir thematisieren die Probleme die eine zusätzliche Sekunde erzeugt, Welche Lösungsmöglichkeiten es gibt, diese Probleme vorzubeugen, zB wie Windows damit umgeht, wann man eine monotonic Clock verwenden sollte, oder Warum Google und Amazon einzelne Sekunden in ihrem Zeit-Server verlangsamen und somit die Schaltsekunde “schmieren”. Und wir sprechen über die...
Design Documents und Request for Comments (RFCs): Die Engineering Art der Planungsphase Wir alle haben schon mal von einer Planungsphase gehört, um ein neues Projekt zu starten, und denken dabei an aufgeblasene Prozesse und lange Wasserfall-Diagramme. Und das Engineering-Team fragt sich oft: Wann kommen wir endlich mal zu den Details? Da kommen die Begriffe Design Documents und Request for Comments (RFCs) ins Spiel. Das doofe nur … Jemand muss diese Dokumente auch schreiben. Und da sind wir bei gleich zwei von Andy's Lieblingsthemen: Schreiben und Design Docs. Wir klären, wozu Design Documents eigentlich gut sind, worauf es ankommt, wo der Unterschied zu RFCs ist, ob das ganze nicht ein riesiger Wasserkopf ist, um einfach Dinge auf die Straße zu bringen und welche Kultur das ganze benötigt. Viel Spaß. Bonus: Wer schreibt, der bleibt. Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht...
Vergiss Datenbanken - Benutze mehr Files! Warum denkst du eigentlich, dass du eine Datenbank brauchst? Würde deine Applikationskomplexität nicht deutlich niedriger sein, wenn du alles in einer Datei abspeichern würdest? Hast du wirklich so dynamische Daten? Liest du deine Daten nicht deutlich öfter, als dass du diese schreibst? Und macht die Datenbank deine Applikation nicht langsamer? Mit dieser steilen These kommt Wolfgang um die Ecke. Obwohl dies gegen alles geht, was wir sonst normalerweise so lernen und beigebracht bekommen. Und das von jemandem, der in dem Bereich Datenbanken studiert hat. Darum geht es in dieser Episode. Bonus: 1 Jahr Engineering Kiosk Alps Meetup. **** Diese Episode wird gesponsert von WeAreDevelopers World Congress Nimm am WeAreDevelopers World Congress teil, der weltweit führenden Veranstaltung für Entwickler*innen vom 17. bis 19. Juli 2024 in Berlin....
Wie werden eigentlich wissenschaftliche Paper richtig gelesen? Du besuchst HackerNews und es trendet ein Artikel über einen neuen Algorithmus, der 100 mal besser ist als ein anderer. 1500 Kommentare hat der Post bereits. Für dich ist eins klar: Das MUSST du lesen. Du klickst drauf und erkennst “Uh … es ist ein wissenschaftliches Paper”. Du fragst dich: Quälst du dich da nun durch? Oder suchst du lieber auf YouTube nach einer Zusammenfassung? So gehts wahrscheinlich vielen Nicht-Akademikern - Denn, diese Dokumente können langweilig und trocken sein, voll von irgendwelchen Formeln, die sowieso nur 3% der Menschheit verstehen. Doch was ist, wenn man wissenschaftliche Paper nicht von vorne bis hinten liest, wie normale Bücher? Wie liest man diese Dokumente richtig, dass man nicht konstant weg pennt? Darum gehts in dieser Episode - Wolfgang erklärt die Tricks und Kniffe, wie man das meiste in...
Testing ist nicht gleich Testing - Ein Deep Dive mit Sebastian Bergmann Viele Software-Entwickler⋅innen kennen Unit-Tests. Einige schreiben Unit Tests bei der Entwicklung. Wenige machen wirklich Test-Driven-Development. Doch beim Unit-Testing fängt das ganze Thema Testing doch erst an. Wie sieht es denn mit Static Testing, Non-Functional-Testing, White-Box-Testing, End-to-End-Testing, Dynamic Testing oder Integration Testing aus? Und hast du schon mal von Mutanten Testing gehört? Ganz schön viele Buzzwords. Und dabei haben wir noch gar nicht die Fragen beantwortet, was eigentlich gute Tests sind, wie viele Tests genug Tests sind, wie AI uns helfen kann bessere Tests zu schreiben oder ob Testing eigentlich moderner Kram ist oder schon seit Anbeginn des Programmier Zeitalters eine Rolle gespielt hat. In dieser Episode gibt es einen Rundumschlag zum Thema Testing mit Sebastian Bergmann....
Dokumentation: Jeder braucht sie, keiner will sie schreiben Vielen Software-Entwickler⋅innen ist eins nicht bewusst: Technisches Schreiben ist eine Profession. Ein eigener Beruf. Denn es ist eine Kunst, Dokumentation so zu schreiben, dass sie auch gelesen und genutzt wird. Die Kunst, komplexe technische Informationen schnell zugänglich zu machen. Doch wie macht man das denn nun genau? Darüber sprechen wir mit Jana Aydinbas. Jana ist von Beruf Technical Writerin. Wir klären die Unterschiede zwischen Technical Writing und normalem schreiben, geben Einblick in das Berufsfeld, widerlegen klassische Mythen die Software-Entwickler⋅innen gegenüber dem Schreiben von Dokumentation haben, und lassen uns erklären, was eigentlich eine gute und professionelle Dokumentation ausmacht und wie man selbst den eigenen Doku-Skill verbessern kann. Bonus: Jira Tickets lesen ist gleichzusetzen mit...
Wenn du glaubst, dass du YAML kennst … „YAML Ain’t Markup Language“ (ursprünglich „Yet Another Markup Language“) kennen viele nur als Sprache für Konfigurationsdateien. Laut dem Gründer von YAML ist das Format aber nicht dafür gedacht. Und überhaupt nutzen sehr viele Tools nur einen Bruchteil der Fähigkeiten von YAML. Welche das sind, hat uns Tina Müller erklärt. Tina ist u.a. Contributorin zur YAML Spezifikation und gibt uns mal einen Einblick in das Serialisierungs-Format. Wir sprechen über darüber, welches Problem YAML lösen wollte, wie es in der Realität genutzt wird, wie YAML selbst sowie die YAML-Parser in verschiedenen Sprachen weiterentwickelt werden, über die Flaws von YAML, wie zB. das Norway Problem oder die Billion Laughs Attacke und schauen mal welche Features nicht so bekannt sind, wie YAML tags, aliases oder YAMLScript. **** Tue was Gutes mit deiner alten Hardware –...
No-Code-Tools sind technische Schulden! Wenn es zu dem Thema No-Code kommt, gibt es oft zwei Lager: Die einen lieben es. Die anderen sagen “Das ist doch gar kein richtiges Programmieren”. Dennoch gibt es Firmen, die No-Code-Plattformen im großen Stil einsetzen. Und immer wenn damit “mal was richtiges” gebaut wird, stellen sich dieselben Fragen wie bei richtiger Software-Entwicklung: Wie sieht es mit der Security / Maintainability / Skalierung und Co aus? Und wenn wir sowas auf den Tisch bringen, dann ist das Thema Refactoring und technische Schulden nicht mehr weit. Und genau darum geht es in dieser Episode. Wolfgang ist fest überzeugt von “No-Code-Tools sind technische Schulden!”. Und Andy lässt sich das ganze mal erklären, um zu verstehen, was er eigentlich damit meint. Wir sprechen darüber, was No-Code und Low-Code eigentlich ist, was technische Schulden sind und warum dies ggf. nicht...
Explain my like i am five: Die Grundlagen moderner Suchen Wir, als User, erwarten heutzutage ziemlich viel von einer Suchmaschine. Es soll “magisch” verstehen, was wir eigentlich finden möchten. Egal ob wir das richtige Wort dafür nutzen (aka Synonym-Suche) oder ob der Begriff einen Tippfehler hat (aka “Meinten Sie …?”). Oft werden Tools wie Elastic- oder OpenSearch, Solr, Algolia und Co. für sowas eingesetzt, denn eine einfache Volltext-Suche mittels eines Wildcard-SQL-SELECT Statement reicht dafür nicht mehr aus. Doch was steckt eigentlich dahinter? Wie funktionieren all diese modernen Suchen eigentlich im Inneren? In dieser Episode geht es um die Grundlagen moderner Suchmaschinen. Wir schmeißen mit Begriffen wie Stemming, Homonyme, BERT, Stopwords, Inverted Index, Suffixbäume, N-Grams, Term Frequency-Inverse Document Frequency, Vector Space Model und Co um uns und erklären das ganze...
Ein Leitspruch für die Frontend-Welt: Make simple things simple and complex things possible Die Frontend-Entwicklung hat in den letzten Jahren einen ziemlich großen Wandel erlebt. Es fing alles ganz simpel an: CSS und JavaScript wurden einfach via script-tag inkludiert. Danach kamen Performance-Optimierung durch Minification, mehr JavaScript- und CSS Features (zB Browser-APIs) wurden in die Browser implementiert und die Standards kamen nicht hinterher, doch wir Entwickler*innen wollten wir diese schon in Produktion nutzen (aka Polyfills und Transpilieren). Und auch die Web-Apps wurden immer mehr “Desktop-Like”, was einen Effekt auf die Frontends von heute hat, zB. React, Vue und Co. Und wo sind wir heute? Frameworks wie HTMX, die mit Einfachheit werben, erleben einen neuen Hype. Doch ist das alles neu oder nur “alter Wein in neuen Schläuchen”? Erkaufen wir uns durch diesen großen...
AI in der Software-Delivery: Unsere größte Möglichkeit oder purer Hype? - Ein Realitätscheck Generative AI ist in der Software-Entwicklung allgegenwärtig. Mit Co-Pilot stellt GitHub den Platzhirsch im Bereich Codegenerierung und bewirbt es mit einer 55% Produktivitätssteigerung. Bei solchen Effekten dreht jedes C-Level-Management am Rad. Doch was ist dran am Hype? Sollten wir wirklich alle so aufgeregt sein? Zu dieser Frage bzw. zu einem Realitätscheck sprechen wir mit Birgitta Böckeler, Global Lead for AI-assisted Software Delivery bei Thoughtworks. Sie beschäftigt sich u.a. damit, wozu Generative AI in der Softwareentwicklung genutzt werden kann, welche Einsatzbereiche neben der Codegenerierung existieren, für welche Bereiche Coding Assistenten gut und für welche nicht so gut sind funktionieren aber auch welchen Effekt die ganze AI-Bewegung auf den ganzen Softwareentwicklungsprozess...
Den Softwareentwicklungs-Prozess beschleunigen, indem mehr Arbeit auf die Entwickler abgewälzt wird? 2024 ist das Jahr der Effizienz. Überall wird nachgesehen, was noch schneller und besser laufen kann. So auch bei der Softwareentwicklung. Denn dort ist allzeit bekannt: Umso später ein Fehler aufgedeckt wird, desto teurer ist seine Behebung. Deswegen wurde früh damit angefangen, nicht nach der Softwareentwicklung das Programm zu testen, sondern schon während der Entwicklung die Tests zu schreiben. Der Test-Prozess wurde in der Zeitleiste nach Links geschoben. In der Industrie nennt man diesen Vorgang “Shift Left”. Doch bei Tests ist es nicht geblieben. DevOps verlagert die Operations nach Links. Cloud die Definition von Infrastruktur als Code (und somit in die Softwareentwicklung). Security nimmt ebenfalls einen wichtigen Standpunkt in der modernen Welt ein. Metriken, strukturierte Logs...
Deployst du auch Freitags und während Black-Frida und /Cyber Monday? Code Freezes verbieten, dass neue Änderung in den Hauptentwicklungszweig gemerged werden. Deployment Freezes verhindern das eine neue Software-Version an den Kunden ausgeliefert werden kann. Doch warum tut man dies? Denn eins steht fest: Software Engineers werden dafür bezahlt, Dinge zu ändern. Doch Code- und Deployment Freezes werden oft vom Management vorgegeben. Welche Gründe für Code- und Deployment Freezes sprechen, welche Arten von Freezes es gibt, was ein Code Slush ist, wie das ganze in verschiedenen Industrien aussieht, das klären wir in dieser Episode. Bonus: Wenn Software-Engineers durch Code-Freezes an ihrem Job gehindert werden. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht so)
Continuous Integration: Ein muss für jedes Software-Projekt Die kontinuierliche Integration, wie z.B. das Herunterladen von Dependencies, das Kompilieren der Applikation sowie das Ausführen von Unit- oder Integrationstests, ist ein “alter Hut” für viele Software Engineers. Doch die wenigsten wissen, was eigentlich wirklich dahintersteckt. Denn es ist viel mehr als “nur” ein paar Tests auszuführen. Woher kommt der Begriff Continuous Integration (CI)? Was sind die Kern-Prinzipien von CI? Wie sieht eine gute CI-Pipeline eigentlich aus? Inwieweit hat sich das Konzept von CI sowie die Tools in den letzten 17 Jahren entwickelt? Was bedeuten die Buzzwords Dev-Pipeline-Parity, Shift-left, CI-Theatre, Dev Done und Done Done eigentlich? Welchen Business-Value liefert CI und warum sollte auch das Management dafür sorgen, dass der Build immer Grün ist? Und wie sieht CI eigentlich außerhalb von Web,...
Plattform Engineering, Interne Developer Plattformen und das Product-Mindset: 2023 wird als “Das Jahr der Effizienz” bezeichnet. Viele Firmen schauen sich im Detail an, wie die Arbeit der eigenen Software-Entwicklungsteams effizienter gestaltet werden kann. Die Bereiche Infrastruktur, Cloud, Build Pipelines, Deployment und Co stehen oft im Mittelpunkt der Frage “Was kann optimiert werden, damit wir uns schneller bewegen?”. In der Regel dauert es nicht lange, bis die Buzzwords “Interne Developer Plattformen”, “Developer Experience” und “Plattform Engineering” fallen. Doch worum geht es eigentlich beim Plattform Engineering? Was ist eine interne Developer Plattform? Genau darüber sprechen wir mit unserem Gast Puja Abbassi. Wir klären, was das alles ist, welche Probleme eigentlich gelöst werden sollen, wie eine erfolgreiche Plattform aussieht, was klassische Fallstricke sind, ab wann sich...
Effektive Observability mit OpenTelemetry Früher waren viele Applikationen eine Black Box, besonders für die Ops aka Betriebsabteilung. Dann fing das Logging an. Apps haben Log-Lines geschrieben, zum Beispiel wann die App fertig hochgefahren ist oder wenn etwas schief gegangen ist. In einer Art und Weise haben durch Logs die Devs angefangen, mit den Ops-Leuten zu kommunizieren. Irgendwann später gab es Metriken. Wie viel RAM verbraucht die App, wie oft wurde der Garbage Collector getriggert oder auch Business-Metriken, wie oft eine Bestellung ausgeführt wurde oder wann eine Geo- anstatt einer Text-Suche gestartet wurde. War das alles? Nein. Der neueste Hype: Traces. Eine genaue Einsicht, welchen Code-Path die App genommen hat und wie lange dieser gedauert hat inkl. aller Metadaten, die wir uns wünschen. Und wenn man dies nun alles in einen Sack packt, es gut durchschüttelt und man ein...
100 Episoden Engineering Kiosk: Das Jubiläum, das Quiz, der Tech-Look-Back und die Tech-Predictions 2024 Vor fast zwei Jahren hat der Engineering Kiosk das Licht der Welt erblickt. Seitdem wird jede Woche eine neue Episode veröffentlicht. Und auf einmal wird die Episoden-Nummer dreistellig. Happy Birthday - Dies ist unser Engineering Kiosk Jubiläum. Eine etwas andere Folge mit Viele Stimmen von Freunden und BekanntenEinem Quiz-BattleDer Tech-Look-Back aus den Jahren 2022 und 2023Unsere Tech-Predictions 2024 Ein besonderer Dank geht an Matthias EndlerArne ClausDominik SiebelMarkus PoerschkeChristian Schepp Schaefer vom WorkingDraft-PodcastChristian Braun vom Index Out Of Bounds-PodcastNils Langner vom Super Duper Developers ClubEllen Schwartau und Doreen Sacker vom Unmute IT PodcastRoland Golla von Never Code AlonePatrick Terlisten und Claudia Kühn vom Wartungsfenster Podcast Bonus: 100€...
SQL is Dead, Long Live SQL! Fast jede Applikation hat irgendeine Form von persistenter Datenhaltung. Oft in Form einer Datenbank. Der Platzhirsch bei Datenbanken sind Systeme, die sich mit der Structured Query Language (kurz SQL) abfragen lassen. MySQL, PostgreSQL, Oracle, MSSQL Server, sqlite, Google BigQuery und so weiter. Die coolen Kids haben vielleicht irgendeine Form von NoSQL-Datenbank im Einsatz. Aber auch da kommt man nicht um SQL herum. Für die meisten Entwickler*innen ist SQL ein alter Hut. SELECT * FROM Tabelle WHERE foo = bar GROUP BY id. Das haben wohl die meisten gelernt und damit kommt man schon sehr weit. Doch war es das mit den Möglichkeiten von SQL? Klare Antwort: Nein. Die Sprache wird weiterentwickelt, bekommt moderne Features und hat weitaus mehr zu bieten als manch einer denkt. Und darüber sprechen wir in dieser Episode mit dem SQL-Experten Markus Winand. Wir...
Rust: Die System-Programmiersprache der nächsten 40 Jahre? Die Programmiersprache Rust erlebt aktuell einen Hype, wie kaum eine andere Programmiersprache bisher. Sehr viele Leute nennen Rust als die nächste Programmiersprache, die sie gerne lernen wollen. Projekte auf Github prahlen damit, dass diese mit Rust geschrieben wurden. Und jede zweite Case-Study einer großen Tech-Firma hat etwas mit Rust zu tun. Doch warum wird die Sprache so gehyped? Ist es nur Marketing oder steckt wirklich der Knaller der nächsten 40 Jahre dahinter? Und ist wirklich alles Gold was glänzt? Irgendwo muss es doch auch ein paar Pitfalls und Shortcomings geben. In dieser Episode sprechen wir mit Matthias Endler. Matthias ist seit Anfang an bei Rust dabei. Dabei geht es um: Welches Problem Rust löst, einen Deep Dive in die Konzepte, wie sich die Lernkurve von Rust verhält, aber auch die Rückwärtskompatibilität...
Kontinuierliches Lernen mit Hilfe von Experimenten und A/B-Testing In vielen Diskussion geht es darum, welche Lösung die bessere ist und einen größeren Impact hat. Viele Entscheidungen werden aus dem Bauch heraus getroffen, obwohl gesagt wird, dass wir datengetrieben arbeiten. Doch Daten und Ergebnisse sind oft nicht vorhanden. Experimente mit A/B-Tests sind für solche Situationen das Mittel der Wahl. Hypothese aufstellen. Experiment umsetzen und durchführen. Ergebnis evaluieren. Und das ganze wiederholen. Klingt einfach.Experimentelles Mindset: Check. Doch wie macht man sowas denn im Detail? Auf welche und wie viele Metriken schaut man während eines Experiments? Wie lange darf es dauern? Kann ich das ganze auch mit wenig Kunden und Traffic umsetzen? Was sind die typischen Fehler beim A/B-Testing? Was ist ein p-Wert, eine statistische Signifikanz, eine Power-Analyse, ein A/A-Test, der...
Nur unsere eigene Lösung ist die beste: Das "Not invented here" Syndrome (NIH) Ihr kennt das bestimmt: Es gibt eine neue Herausforderung zu lösen. Das Team steigt sofort in die Planung ein, um die Anforderungen in Source-Code zu kippen. Ihr sitzt da und fragt euch: Das kann doch nicht sein, dass wir die einzigen sind, die dieses Problem haben. Da muss es doch schon was fertiges geben.”. Doch das Team wettert dagegen: “Unser Problem ist sehr speziell. Wir bezweifeln stark, dass es da etwas gibt, was unseren Anforderungen standhält. So oder so ähnlich spielt es sich jede Woche in etlichen Teams ab. Es wird die eigene Arbeit über externe Lösungen gestellt. Die Nachteile werden oft später sichtbar. Über dieses Thema sprechen wir in dieser Episode. Nicht nur, was die Gründe dafür sind, sondern auch, wie man dem etwas entgegensetzen kann. Bonus: Warum keiner vor dem "Not invented here"...
Liskov Substitution Principle: Das L in SOLID von Barbara Liskov Heutzutage wird die Informatik und Softwareentwicklung leider primär von Männern dominiert. Doch schaut man ein paar Jahrzehnte zurück, haben viele Frauen maßgeblich die heutige Software-Entwicklung geprägt. Eine Frau war Barbara Liskov. Liskov? Das kennt man doch irgendwoher? Genau. Sie ist unter anderem die Namensgeberin für das L in den SOLID-Prinzipien (die ersten 5 Prinzipien des objektorientierten Designs). Als zweite Frau überhaupt hat Barbara Liskov 2008 den berühmten Turing Award erhalten. In dieser Episode besprechen wir ihr Lebenswerk. Bonus: Barbara Liskov war an den Sprachkonstrukten Exceptions, yield, multiple assignments und multiple returns beteiligt. **** Diese Episode wird gesponsert von https://www.workshops.de Ob öffentliche Schulungen, die du einfach buchen kannst oder maßgeschneiderte Schulungen für...
Konsistent, Verfügbar und Ausfalltolerant: Wähle zwei - Das CAP-Theorem Stellt euch vor, ein Handwerker könnte die Dienstleistung schnell, günstig und in hoher Qualität leisten. Wäre dies nicht ein Traum? Leider sind alle drei Eigenschaften in der Realität nicht möglich. Und genau so geht es uns mit dem CAP-Theorem in verteilten Systemen mit Datenhaltung. Speziell im aktuellen Zeitalter mit Cloud Computing, horizontaler Skalierung, weltweiter Verfügbarkeit spielt das CAP-Theorem eine essentielle Rolle. Wie soll sich dein System verhalten, wenn die Netzwerk-Verbindung zwischen deinen Compute-Knoten ausfällt? Muss die Datenhaltung konsistent bleiben? Oder sind Inkonsistenzen für eine gewisse Zeit OK, dafür hat die Verfügbarkeit eine höhere Priorität? Um diesen Konflikt geht es in dieser Episode. Bonus: Auf GCP kannst du deine Compute-Instanz auf maximal 12 TB SSD Disk (ohne...
Green IT und die CO2-Emissionen durch die IT, das Internet und die Software-Entwicklung Die Klimakrise ist real. Damit wir das ganze Problem in den Griff bekommen, muss jeder mit anpacken. Doch wie viel Einfluss hat die IT mit der Hardware, dem Internet, auf der Client- und Serverseite? Darüber sprechen wir in dieser Episode. Wie lange solltest du deine Hardware nutzen? Was für eine Rolle spielen Display-Technologien wie Oled und LCD? Sind performante Websites mehr Eco-Friendly? Wie sieht es mit Cloud-Infrastruktur, Build- und CI-Pipelines aus? Wie berechnet man die CO2-Emissionen von Gigabit-Datentransfer? Welche ist die grünste Programmiersprache? Das und noch viel mehr besprechen wir mit unserem Gast Christian "Schepp" Schaefer, der sich mit diesem Thema auseinandergesetzt hat. Bonus: Wo die dreckigsten Industrieunternehmen Deutschlands stehen. **** Diese Episode wird gesponsert vom...
JavaScript: Eine multiparadigmatische Skriptsprache mit einem schwachen dynamischen Ducktyping-System. Um die Sprache JavaScript kommt man im Web nicht mehr vorbei. Die meisten kennen sie durch Frameworks wie React, Angular, Vue.js, Next und Co. Doch wie viel weißt du über die Hintergründe und die Weiterentwicklung dieser Sprache? In dieser Episode geht es nicht um das nächste hippe JavaScript-Framework, sondern wir sprechen mit Peter Kröner darüber, wie JavaScript erfunden wurde, was ECMAScript ist, wie TypeScript in den Mix spielt, warum die Sprache so beliebt ist, wie neue Features den Weg in die Sprache finden, was das TC39 ist, über das Monopol im Browser, verschiedene JavaScript-Engines und viel mehr. Bonus: Wenn Hamburg im Süden liegt. **** Diese Episode wird gesponsert vom Open-Source Förderprogramm Media Tech Lab: Bewirb dich jetzt und erhalte bis zu 50.000€ Fördersumme für...
Ist GitHub Copilot (und AI) wirklich dein fehlender Partner beim Pair-Programming? AI und speziell auf die Programmierung trainierte Modelle sind angetreten, um die Welt, wie wir programmieren, zu verändern. Doch halten diese auch die Versprechen? GitHub Copilot ist der Platzhirsch im Markt. Viele Software-Entwickler*innen haben den Service bereits ausprobiert. Manche schwören darauf und wollen nicht mehr ohne. Manche sagen "Och, ganz nett", aber nutzen es nicht regelmäßig und andere wiederum, "hatten noch nicht die Zeit rein zu schauen". Wolfgang ist einer der Early Adopter und nutzt GitHub Copilot täglich. In dieser Episode teilt er seine Erfahrungen und wir sprechen über Themen wie GitHub Copilot effektiv genutzt werden kann, Training Bias, den möglichen Produktivitäts Boost, Bugs die durch die AI generiert werden, die Auslagerung von langweiligen Arbeiten und warum die Nutzung von...
Font Engineering und die Welt der Programmier-Schriftarten. Wie wichtig ist die Wahl der Schriftart für die Programmierung? Welche Möglichkeiten und Vorteile bietet die richtige Schriftart in deinem Editor? Macht es Sinn für verschiedene Programmiersprachen andere Schriftarten zu wählen? Worauf kommt es eigentlich an, wenn wir uns über Schriftarten für die Programmierung unterhalten? Wie entstehen eigentlich Schriftarten, was ist Font-Engineering und was bedeuten die Begriffe Ligaturen, Hinting und Kerning? Über all diese Fragen sprechen wir mit dem Wahl-Berliner Philipp Acsany. Als Font-Engineer und Python Programmierer hat er an vielen Schriftarten von großen Firmen mitgearbeitet. In dieser Episode gibt er uns einen Einblick in die Welt der Schriftarten mit einem speziellen Fokus auf das Programmieren. Bonus: Warum es völlig OK ist, in Comic Sans zu programmieren. Unsere aktuellen...
Monolithen und Microservices: Ein Evergreen der Software-Industrie. Mitte der 2010er Jahre bekam das Thema der Microservices Popularität. Doch was haben wir nach ca. 9 Jahren darüber gelernt? Sind Microservices immer noch der heilige Gral oder war es eine tolle Reise und alle pendeln zurück zu Monolithen? Viele Firmen haben positive und negative Erfahrungen und Learnings mit Microservices gemacht. Doch war es für alle der richtige Schritt? Nutzen die meisten Firmen die wahren Vorteile von Microservices wirklich aus? Und welches Problem löst der Microservice-Trend eigentlich? Ein technisches oder organisatorisches Problem? Welche Probleme gibt es in der Welt um Microservices, besonders in großen, schnell wachsenden Organisationen? Was sind typische Gründe warum Microservices scheitern? Und waren Cloud Native, Container-Scheduler wie Kubernetes und Co einfach nur weiteres Öl, was ins...
Wie bringen wir der nächsten Generation, unseren Kindern, die Welt der Informatik und Software-Entwicklung näher? Über diese Frage sprechen wir mit der Expertin Dr. Diana Knodel. studierte Informatikerin mit Schwerpunkt Psychologie, Autorin von zwei Kinderbüchern zum Thema Programmieren für Kinder sowie Gründerin von zwei Firmen, AppCamps und fobizz, im Bereich Bildung mit Schwerpunkt IT und Softwareentwicklung. Wir sprechen über aktuelle Vorbilder in der Informatik bzw. Programmierung für Kinder, ab welchem Alter Kinder mit der Programmierung starten können, welche Code-Editoren sind speziell für Kinder geeignet, wie können wir Lehrkräfte weiterbilden, damit diese das Thema in den Schulen vorantreiben, wie ChatGPT und KI im Allgemeinen die Bildung verändert wird und vieles mehr. Viel Spaß. Bonus: Warum ChatGPT der neue Taschenrechner wird. Unsere aktuellen Werbepartner findest du auf...
Das REST-API Architektur-Paradigma: Oft verwendet und oft nicht komplett umgesetzt. REST-APIs sind überall im Internet. Jede statische Webseite ist sogar REST-Konform. Doch die meisten REST-Implementationen sind gar nicht vollständig, bzw. nur halbherzig umgesetzt. Die ursprüngliche Idee von REST hatte viel mehr im Gepäck. In dieser Episode gehen wir das Thema der REST-API an. Was ist REST? Wo ist der Unterschied zu Restful? Warum wird dieses Architektur-Paradigma oft falsch verstanden? Worum geht es bei den 6 Prinzipien (Client-Server-Architektur-Modell, (HTTP)-Caching, Mehrschichtige Systeme, Zustandslosigkeit, Einheitliche Schnittstelle und Code on Demand) eigentlich? Wie versioniert man eine API? Und welche Nachteile hat REST? All das und noch viel mehr in dieser Episode. Bonus: Was Napster, eDonkey und Korn mit Brause mit REST APIs zu tun haben. Unsere aktuellen Werbepartner...
There are only two hard things in Computer Science: cache invalidation and naming things. Caches sind einfach überall. Jede Aktion auf einem Computer nutzt eine Vielzahl an Caches. Sei es der Browser Cache, DNS-Cache, In-Memory Cache auf dem Server oder dein lokaler CPU Cache L1-L4. Doch was sind Caches eigentlich? Welche Cache-Layer und Cache-Hierarchien gibt es? Wie funktionieren Caches? Wie kann ich Cache-freundlich programmieren? Was passiert, wenn der Cache voll ist und was sind Eviction-Policies? Wie relevant sind heutzutage eigentlich die CPU-Caches L1 bis L4 für die normalen Software-Entwickler*innen? Wie kann ich verifizieren, ob mein Code Cache-freundlich ist? Und warum ist Cache Invalidation eigentlich ein hartes Problem? Bonus: Was Bandlaufwerke mit Caching und niederländisches Hähnchen mit Queues zu tun haben. Unsere aktuellen Werbepartner findest du auf...
"Open Data now" - Dazu ruft der Turing Award Gewinner Sir Tim Berners-Lee in seinem Kampf um offene Daten auf. Das macht er heute. Doch bekannt ist er als Erfinder des World Wide Webs. Wofür er 2016 auch den Turing Award verliehen bekommen hat. Doch wer ist eigentlich Sir Tim Berners-Lee genau? Wie kam es dazu, dass er das “heutige Internet” erfunden hat? Welches Problem wollte er damals lösen? Wie weit ist die heutige Implementierung und Nutzung des WWW von der ursprünglichen Idee entfernt? Welche architekturelle Änderungen würde Sir Tim Berners-Lee machen, wenn er das ganze nochmal neu machen würde? Und womit verbringt er heute seine Zeit? All das und noch viel mehr klären wir in der ersten Episoden zu den Turing Award Gewinnern. Bonus: Das Internet war ein Side Project geschrieben in Objective-C und ob wir für Social Media zahlen sollten. Unsere aktuellen Werbepartner findest du auf...
Wenn man sich eigentlich mal fragt, auf wen die ganze heutige Entwicklung in der Informatik zurückführt, taucht immer wieder ein Name auf: Alan Turing. Sei es der Turing-Award (der Nobelpreis der Informatik), die Turing-Maschine oder der Turing-Test. Doch wer ist bzw. war Alan Turing eigentlich? Warum wurde nach ihm ein Award benannt? Was ist die Turing-Maschine und wofür ist sie gut? Was bedeutet es, wenn etwas Turing-Complete ist und wieso ist das Bestehen des Turing-Tests eigentlich so schwer? In dieser Episode machen wir mal einen kleinen (historischen) Ausflug in einen Teil der theoretischen Informatik und schmeißen mit Begriffen wie dem Hilbert Kalkül, das Halting-Problem, dem Lambda Kalkül und Co um uns. Bonus: Was die Band Abba mit Turing zu tun hat und warum Turing Serverless erfunden hat. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners Das...
Wie viel MySQL Drop In-Replacement steckt wirklich in MariaDB? MariaDB, ein Fork der populären Datenbank MySQL. Angetreten, um ein Drop-In-Replacement und eine direkte Alternative zu MySQL darzustellen. Doch wie viel ist da dran? Ist MariaDB MySQL kompatibel? Wo liegen die Gemeinsamkeiten und Unterschiede? Was war eigentlich der Grund für den Fork? In welchen Bereichen entwickeln sich beide Datenbanken vollkommen anders? Und was hat sich im Bereich der Storage-Engines alles so getan? In dieser Episode bringen wir etwas Licht in den direkten Vergleich zwischen MySQL und MariaDB. Bonus: Was ein Weber-Grill mit MySQL und MariaDB zu tun hat. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht so)
Content Delivery Networks (CDNs): Die Netz-Entlastung des Internets Jeder nutzt sie, bewusst oder unbewusst: Content Delivery Networks. Sie sind aus dem Internet nicht mehr wegzudenken. Angetreten, um einzelne Server/Websites vor Überlastungen zu schützen, bilden diese nun das Backbone von schnellen Ladezeiten für Websites, Video-Streaming und Co. Doch was genau ist eigentlich ein CDN? Was sind Vor- und Nachteile? Welche Arten von CDNs gibt es? Hat der Begriff "Edge" aus dem Cloud-Bereich auch was damit zu tun? Und überhaupt: Sollte ich mit meiner App ein CDN verwenden, wie würde ich meine App migrieren und ist dies überhaupt konform mit den aktuellen Datenschutz-Regelungen? Dies und noch viel mehr in dieser Episode. Bonus: Was Geldautomaten und Holland-Räder mit Content Delivery Networks zu tun hat. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners ...
Zerstört die Anwendung von Clean Code die Performance deiner Applikation? Es war einmal Casey Muratori, ein Softwareentwickler mit Fokus auf Game-Engines, der sich ins Internet gestellt hat und sagte "Clean Code resultiert in schrecklicher Performance". Das YouTube-Video ging um die Welt, die YouTube-Kommentare wurden deaktiviert und Hackernews ging bis an die Decke. Auch der Kopf hinter "Clean Code", Uncle Bob, hat dies nicht auf sich sitzen lassen und ging in die Diskussion. Diese Episode handelt genau um das genannte Video. Wir besprechen, was die Key-Message des Videos ist, wer der Autor ist, was Clean Code ist und von wem es stammt und um was sich die Diskussion zwischen Casey Muratori und Uncle Bob dreht. Eine Art "Reaction-Podcast", sozusagen. Bonus: Was der heilige Gral der Teamentwicklung ist. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners ...
Forward-Proxy, Reverse-Proxy, Bastion-Host, Load Balancer, SOCKS5-Proxy, Edge-Router, Zero-Trust, Geo-Balancing, ... Haltet eure Buzzword-Bingo-Karten bereit. In dieser Episode beschäftigen wir uns mit der Frage "Was ist eigentlich der Unterschied zwischen einem Loadbalancer und einem Reverse Proxy?". Klingt einfach zu beantworten, ist es aber nicht. Zwei (oder sogar mehr) Welten treffen da aufeinander. Um der Antwort näher zu kommen, steigen wir Tief in das Thema ein und klären was eigentlich ein normaler Proxy ist, wo der Unterschied zu einem Reverse Proxy ist, was ein SOCKS5-Proxy kann, wozu Proxies heutzutage eingesetzt werden, was ein Bastion Host ist, wozu Edge Nodes gut sind, was Ihr für Tools einsetzen könnt und klären am Ende auch die Frage, was denn nun eigentlich der Unterschied zu einem Load Balancer ist. Bonus: Ob Wein durch Schläuche schmeckt und was das Düsseldorfer...
Herausforderungen mit Zahlen in der Programmierung: Hidden bugs, Effekte auf die Realität und der richtige Umgang. Der korrekte Umgang mit Zahlen in der Softwareentwicklung ist so wichtig wie die Reifen bei einem Auto, um es zu fahren. Obwohl viele Entwickler sagen, Mathematik ist ein täglicher Bestandteil des Tages, so kommt man um die Verarbeitung von Zahlen nicht drum herum. Doch wie schon früher in der Schule, kann der Umgang mit Zahlen sehr Herausfordernd sein. In dieser Episode sprechen wir über klassische Fehler, die beim Umgang mit Zahlen in Software gemacht werden, über skurriles Verhalten von Programmiersprachen aber auch über die Effekte dessen auf die reale Welt. Es geht um Datentypen in Programmiersprachen und deren Wertebereiche, Probleme mit großen Zahlen und JSON, Währungsumrechnung und die korrekte Speicherung, Integer-Under- und Overflow, negative Modulo-Berechnungen,...
Was ist der richtige Ansatz? Ein Stack für die ganze Firma oder jedes Team darf die Technologie wählen, wie es möchte? Die Wahl der richtigen Programmiersprache, der richtigen Datenbank, der richtigen Cloud-Umgebung. Gibt es etwas, worüber sich Software-Engineers mehr streiten können? Doch genau diese Fragen stehen i.d.R. beim Start eines Projektes an. Zumindest, wenn das Team die freie Wahl hat. Dies ist das eine Extrem. Im anderen Extrem wird die Sprache und der Stack von der Firma vorgegeben und im Rahmen wird auch operiert. Was ist nun besser? Was sind die Vorteile von "Alles ist möglich"-Ansatz? Und warum sollte man diese nicht wählen? Und welche Gründe gibt es für den "Ein-Stack"-Ansatz? Und was passiert, wenn die Firma von einem Extrem ins andere wechseln möchte? Wie geht man bei einer möglichen Technologie-Konsolidierung vor? Was passiert mit der Innovationsfreudigkeit? Welchen...
Alte Software akzeptieren oder lieber jedem Update hinterherjagen? Podcast als Video: https://youtu.be/94RZcJefzR8 Das ist die Balance, die jeder finden muss. Wann update ich Software? Wie lange kann ich alte Software betreiben? Ab wann ist alte Software ein wirkliches Risiko? Sollte ich bei jeder neuen Major-Version direkt updaten? Bringt es überhaupt etwas, eine alte Software auf etwas Neues zu migrieren, ohne neue Funktionalität zu bekommen? Welche Risiken verbergen sich hinter den Updates? Ist der klassische Spruch "Never touch a running system" noch aktuell oder sogar ein Fehler? All das und weitere Themenbereiche wie Long-Term-Support, End of Life-Dates, die Software-Metrik Dependency Drift, Dependabot und rostende Software besprechen wir in dieser Episode. Bonus: Warum früher alles besser war, sogar die Zukunft und warum Legacy immer das Geld verdient. Unsere aktuellen...
Asynchrone Verarbeitung durch Message Queues: Was ist das und wofür ist das gut? In vielen Applikationen gibt es Bereiche, die einfach etwas Zeit für die Verarbeitung brauchen, aber das klassische Anfrage/Antwort (Request/Response) Verhalten nicht blockieren sollen. Oft werden dafür asynchrone Prozesse verwendet. Durch den Einsatz von Message Queues ergeben sich weitere Vorteile wie u.a. granulare Skalierbarkeit und Unabhängigkeit von einzelnen Programmiersprachen. RabbitMQ ist einer der Platzhirsche im Bereich Open-Source-Message-Broker. In dieser Episode klären wir wofür Message Queues gut sind, bei welchen klassischen Anwendungsfällen diese helfen können, welche Herausforderungen diese Darstellen, wo der Unterschied zu Pub/Sub oder Streams ist und was Redis, Kafka und ZeroMQ damit zu tun hat. Bonus: Warum Software rostet.
Die Analyse von Metadaten aus dem Software-Entwicklungsprozess: Yey or Ney? Die wenigsten kennen den Begriff des Software Repository Minings, doch die meisten benutzen Features, die darauf zurückzuführen sind. Zum Beispiel der automatische Vorschlag von den richtigen Pull Request Reviewern. Es geht darum, auf Basis der Daten aus dem Softwareentwicklungsprozess neue Erkenntnisse zu gewinnen, um diesen einfacher und produktiver zu gestalten. In dieser Episode klären wir, woher die Daten kommen, wie man an diese gelangt, welche Anwendungsfälle es gibt, was die Herausforderungen dabei sind und wie ihr damit starten könnt. Bonus: Ob Andy bereits 50 Jahre alt ist und warum gute Architektur auch als Selbstschutz dient.
Was haben Lexer, Parser und Counter-Strike gemeinsam? Richtig! Eine schöne Open Source Story. Computerspiele sind für viele Software-Entwicklerinnen und -Entwickler der Einstieg. Andere wiederum steigen über den klassischen Bildungsweg eines Informatik-Studiums in die Softwareentwicklung ein. Dabei wird oft viel Theorie wie Lexer, Parser und Compilerbau durchgenommen. Doch was haben Computerspiele mit Lexer und Parser gemeinsam? Andy erzählt eine Story, wie er vor Jahren sich mit Lexer und Parser anhand einer Counter-Strike-Konfigurationsdatei vertraut gemacht hat. Eigentlich nur, um eine datengetriebene Spielanalyse zu betreiben. Raus kam ein Lexer und Parser für das Valve Data Format (VDF). Eine Geschichte voller Over-Engineering, Open Source, Spaß und einem Job-Angebot. Bonus: Wie Wolfgang nur ans cheaten denkt, was autoexec mit Maustreibern zu tun hat und was Landmaschinen auf...
SQL Injections: Eine der weitverbreitetsten Sicherheitslücken im Web, auch im Jahr 2022 Der Großteil aller Applikationen interagiert in irgendeiner Art und Weise mit einer Datenbank. Deswegen werden die meisten Entwicklerinnen und Entwickler bereits von der Sicherheitslücke "SQL Injection" gehört haben. Seit 24 Jahren ist dies eine der weitverbreitetsten Sicherheitslücken im Internet und es ist kein Ende in Sicht. Was ist eigentlich eine SQL-Injection im Detail? Welche verschiedenen Arten gibt es? Was ist der Grund, dass uns dieses Einfallstor so lange beschäftigt? Woher kommt diese und wer hat sie entdeckt? Wie kann man sich schützen und seine Anwendung ausreichend testen? All das und noch viel mehr in dieser Episode. Bonus: Der Kontrast zwischen Duisburg und Berlin und wie die SQL-Injektion als Nebenprodukt entdeckt wurde.
Was ist eigentlich ein Senior Engineer und wie werde ich zu einem? In der Tech-Industrie werden Titel wie Junior-, Senior-, Staff- und Co genutzt, um Levels und Erfahrung auszudrücken. Doch was ist eigentlich ein Senior-Engineer? Was unterscheidet ein Senior von einem Junior? Wie kann sowas in der Praxis aussehen? Ist Zeit ein wirklicher Faktor für eine Beförderung (10 Jahre Berufserfahrung oder 10x 1 Jahr Berufserfahrung)? Ist "Senior" zu sein ein "Einmal-Aufwand" oder ist kontinuierliche Energie gefordert? In dieser Episode beschreiben Andy und Wolfgang einige Attribute, die den Unterschied eines Juniors und Seniors darstellen und beschreiben, wie man den Weg zum Senior einschlagen kann. Bonus: Warum ein Meterstab auch Zollstock genannt wird und warum Wolfgang ein T als hart bezeichnet.
Wie würde heutzutage ein moderner Logging, Metriken, Monitoring, Alerting und Tracing-Stack aussehen? Im Infrastruktur-Bereich gibt es zu jedem Bereich etliche Tools. Cloud-Native ist das Buzzword der Stunde. In dieser Episode erzählt Andy, wie er einen modernen Stack für ein Side-Projekt für die Bereiche Logging, Metriken, Monitoring, Alerting und Tracing aufsetzen würde. Unter anderem geht es dabei um Fragen wie: Was sollte man eigentlich alles loggen? Wie kann man von einem Alert angerufen werden? Wie visualisiert man Daten in schönen Graphen? Brauchen wir Tracing? Und was ist Observability? Bonus: Engineering Porn und Buzzword-Bingo.
Schuftest du noch oder automatisierst du schon? Heute gehts um die Faulheit von Entwicklern: Wir sprechen über GitHub Actions - Was es ist, wozu man es benutzen kann, wie es das eigene Leben erleichtern kann, wo der Unterschied zu Jenkins ist, wie das Engineering Kiosk es selbst einsetzt und welche Use-Cases von der Community oft genutzt werden. Bonus: Warum LinkedIn einen HTTP Status Code 999 sendet, wann wir Programmiersprachen wie Unterhosen wechseln und was Michael "Bully" Herbig mit der ganzen Sache zu tun hat.
Beim Programmieren ist alles ein Algorithmus. Irgendwie zumindest. Doch wie misst man die Zeitkomplexität? Das ganze nennt sich Big-O-Notation, oder zu deutsch "Bachmann-Landau-Notation". Eigentlich ein recht trockenes Thema, doch auch irgendwie relevant in der heutigen Zeit von verteilten Systemen und großen Datenmengen. Doch was ist die Big-O-Notation? Was sagt sie aus? Wo kommt diese in der Praxis vor? Und inwieweit hat das ganze noch eine Relevanz in Zeiten von Cloud Computing und fast unbegrenzten Hardware-Ressourcen? Darum geht es in dieser Episode. Bonus: Wie Andy und Wolfgang in deutscher Grammatik belehrt werden, ob es OK ist in 1on1s zu fluchen und das Hash-Kollisionen mit der ganzen Sache zu tun haben.
Was haben die JavaScript Pakete left-pad, color, faker und cross-env gemeinsam? Alle waren in npm Package Sicherheits-Incidents involviert. Wenn man sich die Anzahl von Javascript Abhängigkeiten bei Mittelgroßen Projekten ansieht, ist eine dreistellige Anzahl an JavaScript Paketen nicht unüblich. Das liegt primär an der überschaubaren Größe der Pakete und somit der Funktionalität. Alles nur, um Pakete verwaltbarer zu halten. Doch dieser Umstand macht das JavaScript-Ecosystem so attraktiv für Angreifer oder kann zu extremen Seiteneffekten führen. In dieser Episode sprechen wir drei npm Package Incidents durch, was es damit aufsich hatte, welche Attack-Möglichkeiten es noch gibt und wie man sich als Software Entwickler dagegen schützen kann. Bonus: Was Bademeister, Blubberwasser und eine ASCII-Repräsentation von Uncle Sam und der amerikanischen Flagge mit JavaScript zu tun haben.
Code Reviews: Jeder will schnelles Feedback, doch niemand hat Zeit dafür - Eine Hassliebe. Eine Komponente im Alltag jedes Software Engineers. Egal ob Junior, Senior oder Staff-Engineer. Jeder erstellt Code Reviews und kommentiert die Arbeit von den Kollegen. Doch wie sehen gute Code Reviews aus? Was gehört hinein, was bleibt besser draußen? Wie viel Reviewer machen Sinn? Wie geht man mit Nitpicking-Kommentaren und Gatekeepern um? Und allgemein: Zieht dieser zusätzliche Schritt nicht die Performance des Teams runter und ist sowieso Overhead? All das und noch viel mehr in dieser Episode zum Thema Code Reviews. Bonus: Was Faultiere und Markus Söder mit Code Reviews zu tun haben und warum Blubberwasser den Charakter verdirbt.
Kommentare im Quellcode und Git Commit Messages - Liest die überhaupt wer? Ein Streit, der so alt ist wie die Software Entwicklung selbst: Code ist Selbsterklärend und braucht keine Kommentare. Oder doch? Und die Git Historie ist auch eigentlich sinnlos. Warum sollte da jemand zurück gehen und sich die Commit Messages durchlesen? Diese Fragen und Themen wie Semantic Versioning, Idiomatische Programmier-Patterns, Merge Commits, Story-Tellung und was Fynn Kliemanns Kunst mit der Git Branch-Visualisierung zu tun hat, klären Wolfgang und Andy in dieser Episode vom Engineering Kiosk. Bonus: Warum Andy einen neuen Podcast-Partner sucht und Wolfgang lieber seinen Code angreift, anstatt Ihn zu entwickeln.
Make oder Buy: Alles einkaufen oder doch lieber selber machen? Eine Frage die jeder von uns kennt: Sind meine Anforderungen so speziell, dass es kein Produkt auf dem Markt gibt, die diese abdeckt? Kann ich das nicht ggf. sogar besser, wenn ich das selbst mache? In dieser Episode versuchen wir das Thema mal etwas zu durchleuchten: Wann sollte man Services einkaufen? Wann doch lieber selbst umsetzen? Wie geht man mit interner Politik und Gegenwehr um? Was kostet das Selbermachen eigentlich und was bedeuten Begriffe wie Total Cost of Ownership, Opportunitätskosten und Shadow-IT eigentlich? Ist Open Source ein Zwischenweg und wie sieht die ganze Security-Mäßig aus? Bonus: Ob wir ein Karrierepodcast sind, was man in 1. Semester BWL lernt, welche Sicherheitsanforderungen eine Webagentur aus Wanne-Eickel hat und warum Wolfgang Google mehr vertraut als sich selber.
Für Andy ist Open Source und die Open Source Community ist bereits ein langer und essentieller Begleiter. In dieser Episode interviewed Wolfgang Andy genau zu dieseme Thema: Wie war sein Einsteig? Wieso es wichtig ist, sich Zeit zu nehmen um ein Bug-Ticket zu schreiben und was Snowboarden mit Open Source zu tun hat. Bonus: Wie man Andy dazu bringt, nackig durch die Wohnung zu flitzen. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners
Was ist eigentlich Over-Engineering? Und wann ist es einfach nur gutes Engineering? Ist das eigentlich immer nur negativ? Oder auch mal positiv? Gibt es auch Under-Engineering? In dieser Episode philosophieren Andy und Wolfgang darüber, wann der Drang nach dem perfekten Source-Code Overenegineering ist und warum es in der akademischen Welt nur dreckig programmiert wird. Bonus: Warum Wolfgang seine Kletterschuhe nach Tschechien sendet Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners