Backend

In diesen Episoden sprechen wir √ľber Backend Themen. Gerade mit Andy‚Äôs Dev-Ops und SRE Schwerpunkt und Wolfi‚Äôs Datenbanken Wissen sind Skalierung und Architektur im Backend ein st√§ndiges und beliebtes Thema.

Podcast

Backend im Engineering Kiosk Podcast

Details zur Podcast Episode #63 Spa√ü mit Zahlen: Under- und Overflows, R√ľckw√§rtslaufende Zeit, Negative Modulos und W√§hrungsbetr√§ge Software EngineeringBackendDatenbanken

#63 Spa√ü mit Zahlen: Under- und Overflows, R√ľckw√§rtslaufende Zeit, Negative Modulos und W√§hrungsbetr√§ge

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,...

Details zur Podcast Episode #60 On-Call: Warum auch Software-Engineers auf Rufbereitschaft sein sollten TeamBackendDevOps

#60 On-Call: Warum auch Software-Engineers auf Rufbereitschaft sein sollten

On-Call bzw. Rufbereitschaft: Eine ewige Hass-Liebe? Software-Engineers entwickeln die Applikationen. Doch wer maintained diese und bringt diese wieder zur√ľck ins Leben, wenn die Applikationen mal abst√ľrzen? Im klassischen Sinne sind das System-Administratoren. Und f√ľr die meisten in diesem Beruf geh√∂rt On-Call dazu. Doch ist dies auch im modernen Dev-Ops-Umfeld und in Voll-Autonomen Teams der Fall? Welche Herausforderungen gibt es beim On-Call? Sollten Software-Engineers genauso auf Rufbereitschaft sein? Wie sieht ein strukturierter On-Call-Prozess aus? Und was muss getan werden, um einen solchen zu etablieren? Und welche Modelle zur Bezahlung bzw. Kompensation gibt es, wenn man auch nach der Arbeit f√ľr seine App gerade steht? All das und noch viel mehr gibt es in dieser Episode. Bonus: Was Pager mit Tamagotchi zu tun haben und ob On-Call zu einer Handy-Phobie f√ľhrt. Schaut vorbei in...

Details zur Podcast Episode #56 Applikations-Skalierung: Wann, wieso, was kostet es? Stateless und Stateful, Horizontal vs. Vertikal BackendDevOpsCloud

#56 Applikations-Skalierung: Wann, wieso, was kostet es? Stateless und Stateful, Horizontal vs. Vertikal

Die App muss skalieren. Das kann doch nicht so schwer sein, oder? Sekundenschnelles und automatisches Hochskalieren bei einem erh√∂hten Traffic-Aufkommen. So oder so √§hnlich versprechen es die Cloud-Hyperscaler in ihren Marketing-Texten. Das erweckt oft den Anschein, dass das Ganze gar nicht so schwer sein kann. Doch ist dies auch in der Realit√§t so? Eine Applikation skalierbar zu gestalten, ist bei weitem nicht einfach. Stichworte wie Ausfallsicherheit, vertikale- oder horizontale Skalierung, Stateless- oder Stateful-Applications, Loadbalancer und Auto-Discovery, Kubernetes und zus√§tzliche Code-Komplexit√§t, finanzieller Impact, Load-Tests, Request-Deadlines, Chaos Monkey und Down-Scaling. Alles Begriffe, die damit in Verbindung stehen und einen wichtigen Bestandteil ausmachen. In dieser Episode geben wir einen √úberblick √ľber das Thema Application-Skalierung: Was ist das? Wer braucht es?...

Details zur Podcast Episode #52 Asynchrone Verarbeitung durch Message Queues - Vor- und Nachteile BackendSoftware EngineeringOpen Source

#52 Asynchrone Verarbeitung durch Message Queues - Vor- und Nachteile

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. **** Diese Episode wird gesponsert vom Open-Source...

Details zur Podcast Episode #49 Die Zukunft: Software Repository Mining BackendSoftware EngineeringDatenbankenProduktivität

#49 Die Zukunft: Software Repository Mining

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.

Details zur Podcast Episode #48 Der Layer unter Docker: containerd, Kubernetes, Container Runtime Interface, CRI-O und Open Container Initiative (OCI) BackendDevOpsOpen SourceCloud

#48 Der Layer unter Docker: containerd, Kubernetes, Container Runtime Interface, CRI-O und Open Container Initiative (OCI)

Wie sieht eigentlich der Layer unter Docker aus? Und wie interagiert Kubernetes mit Containern? In Episode 46 haben wir gekl√§rt, welches Problem Docker eigentlich l√∂st. Das Container-Ecosystem ist jedoch weit gr√∂√üer. Deswegen widmet sich diese Folge der darunter liegenden Ebene. Wir besprechen die Modularisierung von Docker, die herausgetrennte Highlevel Runtime containerd, wie Kubernetes mit Docker-Containern umgeht, ob Docker Container die einzige Art von Containern ist, die Kubernetes unterst√ľtzt, was ein Container Runtime Interface (CRI) ist, was die Open Container Initiative (OCI) und ob auch du dir deine eigene Highlevel Container Runtime programmieren kannst. Bonus: Was die Linux-Mafia ist und wieso es bald eine √∂sterreichische Container Runtime gibt.

Details zur Podcast Episode #46 Welches Problem löst Docker? BackendDevOpsOpen Source

#46 Welches Problem löst Docker?

Docker und Container: Buzzwords der letzten Dekade - Doch was ist Docker wirklich? In dieser Episode versuchen wir genau diese Frage zu beantworten. Jeder redet davon, und wie in jedem Hype werden W√∂rter und Begriffe oft in einem falschen Kontext genutzt und das Ecosystem entwickelt sich unglaublich schnell. Deswegen ist es doch ganz gut, wenn man ein wenig hinter die Kulissen schaut: Warum wurde Docker erschaffen und welches urspr√ľngliche Problem sollte es l√∂sen? Was ist das besondere an Docker, wenn es "diese Linux Container" bereits seit > 20 Jahren gibt? Was ist eigentlich ein Container im Kontext von Software und was hat "Change Root" (chroot) damit zu tun? Und welche Nachteile hat Docker? Kurz um: 55 Minuten um das ‚ÄúWarum‚ÄĚ hinter Docker. Bonus: Warum Duisburg eine essentielle Rolle im Container-Ecosystem spielt, was Kaffe mit Software deployen zu tun hat und wie man das Endst√ľck...

Details zur Podcast Episode #43 Cloud vs. On-Premise: Die Entscheidungshilfe BackendDevOpsCloud

#43 Cloud vs. On-Premise: Die Entscheidungshilfe

Wann ist die Cloud das richtige f√ľr dich und deine Applikation? Oder doch lieber alles selbst hosten? Die Cloud wird oft als "die L√∂sung" f√ľr all deine Probleme beschrieben. Sie ist g√ľnstig, man ben√∂tigt weniger Personen f√ľr den operativen Betrieb, alle Services sind gemanagt und serverless und alle anderen Probleme hat man sowieso nur On-Premise. Sind damit On-Premise Datacenter und Selfhosting ausgestorben und sollten gemieden werden? Oder gibt es sogar Szenarien, wo On-Premise sogar gro√üe Vorteile hat? In dieser Episode geht es um diese Frage: Wann ist die Cloud und wann On-Premise / die eigenen Server f√ľr dich die bessere Wahl? Wir diskutieren √ľber diese Frage anhand eines Blogposts √ľber eine Migration aus der Cloud von 37Signal's Produkt "Hey.com". Bonus: Was der Produktlebenszyklus vom VW Golf mit der Cloud zu tun hat und warum ein Raid 1 kein Backup ist.

Details zur Podcast Episode #42 Lexer, Parser und Open Source in Counterstrike BackendSoftware EngineeringOpen Source

#42 Lexer, Parser und Open Source in Counterstrike

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...

Details zur Podcast Episode #41 SQL Injections - Ein unterschätztes Risiko BackendDatenbankenSicherheitSoftware Engineering

#41 SQL Injections - Ein unterschätztes Risiko

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.

Details zur Podcast Episode #38 Monitoring, Metriken, Tracing, Alerting, Observability BackendDevOpsSoftware EngineeringCloud

#38 Monitoring, Metriken, Tracing, Alerting, Observability

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.

Details zur Podcast Episode #34 Wie cloudy bist du? BackendDevOpsCloud

#34 Wie cloudy bist du?

Die Cloud Native Infrastruktur vs. ein dicker Server - Ein Dauerstreit-Thema AWS, GCP, Azure und Co bieten viele Cloud Native Services, die dir dein Leben vereinfachen sollen. Serverless, weniger Admins und alles super g√ľnstig. Das sind die Versprechen. Doch ist das wirklich so? W√§re ein leistungsstarker Server nicht besser, g√ľnstiger, einfacher und ausreichend? Und wie steht das nicht im Konflikt mit einer modernen Microservice-Architektur? All diese Fragen stellen Wolfgang und Andy in dieser Episode, wo sie einen Artikel "Use One Big Server" besprechen. Bonus: Was eine Klatsche auf Reddit, Vendor-Lock-in und CV-Driven-Development mit Servern zu tun hat.

Details zur Podcast Episode #31 Ich automatisiere mir die Welt wie sie mir gefällt (mit GitHub Actions) BackendDevOpsSoftware EngineeringSoftware Qualität

#31 Ich automatisiere mir die Welt wie sie mir gefällt (mit GitHub Actions)

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.

Details zur Podcast Episode #28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant? Software EngineeringFrontendBackend

#28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant?

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.

Details zur Podcast Episode #27 Sicherheit in der Dependency Hölle DevOpsFeuerwehrSoftware EngineeringFrontendBackendSicherheit

#27 Sicherheit in der Dependency Hölle

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.

Details zur Podcast Episode #24 Infrastructure as Code oder old man yells at cloud AutomationBackendDevOpsCloud

#24 Infrastructure as Code oder old man yells at cloud

Old man yells at cloud - Oder: Wie managed man seine Infrastruktur mit Stil (und Software) Anders als gewohnt nimmt in dieser Episode Andy die Dozenten-Rolle ein und beantwortet Wolfgang all seine Fragen zum Thema Infrastructure as Code. Wir kl√§ren wozu man das ganze eigentlich braucht, was Terraform und Pulumi ist, kl√§ren √ľber einen weit verbreiteten Mythos auf, wo der Unterschied zwischen Infrastructure Orchestration und Configuration Management ist, was das beste Configuration Management Tool ist und wo es Herausforderungen bei der Verwendung von Infrastructure as Code gibt. Bonus: Was ein Data Engineer ist, ob Wolfgang Holz-Clogs tr√§gt und wie Deutschland mit dem 9‚ā¨ Ticket umgeht.

Details zur Podcast Episode #16 Code Reviews: N√ľtzlich oder bremsen nur ein gutes Team? TeamSoftware Qualit√§tFrontendBackendSoftware Engineering

#16 Code Reviews: N√ľtzlich oder bremsen nur ein gutes Team?

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.

Details zur Podcast Episode #03 Over-Engineering, das Werkzeug des Teufels? Software EngineeringFrontendBackend

#03 Over-Engineering, das Werkzeug des Teufels?

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

Details zur Podcast Episode #02 Technologienzoo Side Projects Side ProjectsFrontendBackend

#02 Technologienzoo Side Projects

Wolfgang und Andy erz√§hlen ein wenig was √ľber ihre eigenen Side Projects sourcectl (https://gettoknow.sourcectl.dev/), F-Online (https://www.f-online.at/) und the athlete (https://theathlete.app/). Wir machen eine Rundfahrt durch den verwendeten Technologienzoo, diskutieren ob man Monitoring in Side Projects ben√∂tigt, wann es Over-Engineering und wann gerechtfertigt ist, ob der heutige Einsatz von Zend Framework 1 schon als kriminell gewertet werden kann und h√∂ren Wolfgang zu, wie er DevOps Anf√§ngerfehler begeht indem ihm die Festplatte voll logs l√§uft. Bonus: Wie Wolfgang den ultimativen Reichtum mit seinem eigenen CMS zur dotcom Blase verpasst hat