Bedste af 2018 inden for Tech Talks

I de sidste to år har jeg offentliggjort en liste over mine foretrukne tech-samtaler fra det foregående år (her er 2016-udgaven af ​​dette indlæg og her er 2017-udgaven).

Denne liste er på ingen måde omfattende, og jeg er sikker på, at der er mange teknologiske foredrag fra 2018, som jeg først vil opdage meget senere. Men blandt de samtaler, jeg deltog eller så, var disse nogle af de bedste (i ingen særlig rækkefølge).

  1. Mikroprocessorers fremtid, Sophie Wilson

Sophie Wilson, den berømte pioner inden for den originale ARM-chip, synes at have troen på, at Moores lov er ved at ende (sammen med visse andre, der er nævnt senere i dette indlæg). Dette var en fænomenal tale fra JuliaCon, der går ind i mikroprocessorernes historie, udvikling og fremtid.

video

2. Orkanens sommerfugl: Debugging patologisk udførende systemer, Bryan Cantrill

To af de samtaler, der kom til min foregående års liste, var zebraer helt ned og debugging under fire: Hold dit hoved, når systemer har mistet sindet. Dette var en snak i en lignende vene og blev leveret med den fremtrædende Cantrillian flair, vim og handlekraft, vi har forventet. Software er bygget som en stak abstraktioner, hvor tilsyneladende mindre problemer i et lag (sommerfuglene) har potentialet til at omdanne til systemiske patologiske præstationsproblemer i et andet (orkanen). I betragtning af en sådan orkan, hvordan finder man sommerfuglene?

Slides Video

3. Luk sløjfer & åbningsminder: Sådan tager du kontrol over systemer, Big & Small, Colm MacCarthaigh

Jeg har riktignok ikke set alle samtalerne fra AWS re: Opfinde, men af ​​dem, jeg så, var dette muligvis min yndlingsprat. Den fastlægger nogle designprincipper for opbygning af meget stabile og pålidelige systemer (såsom kontrolplaner).

  1. Checksum alle tingene
  2. Kryptografisk godkendelse
  3. Celler, skaller og "Poison Tasters"
  4. Asynkron kobling
  5. Lukkede feedback-sløjfer
  6. Små skubber og store træk (til konfiguration)
  7. Undgå kolde starter og kolde cacher
  8. drosler
  9. Deltas
  10. Modalitet og konstant arbejde

Det var fascinerende at lære, hvordan visse antimønstre og uintuitive design faktisk kunne hjælpe med at forbedre systemernes stabilitet. Den mest interessante del af samtalen var muligvis tanken om, at stabile kontrolsystemer kræver en "PID-loop" - proportional, integreret, derivatkomponenter, og at det at kunne se på et systems design og stedet, hvis det mangler en af ​​disse, er en supermagt. Dette er første gang, jeg hører om denne "PID-loop"; foredraget anbefaler bogen Designing Distribuerede Kontrolsystemer for at lære mere om, hvordan principper for kontrolteori kan anvendes på distribueret systemteknik.

Det var også interessant at lære hierarkiet eller prioriteringerne ved AWS: sikkerhed, holdbarhed, tilgængelighed, hastighed.

Video Slides

4. En guldalder for computerarkitektur, David Patterson og John Hennessy

Dette var en fantastisk snak om mikroprocessorers historie og udvikling, overgangen fra CISC til RISC-maskiner til slutningen af ​​Moore's Law og Dennard-skalering, som igen giver hidtil usete muligheder for fremskridt i det "domænespecifikke arkitektur" -rum. "Domænespecifik arkitektur" inkluderer begge fremskridt inden for hardware (neurale netværksprocessorer til maskinindlæring såsom TPU'er, til NVIDIAs GPU'er til FGPA'er) sammen med domænespecifik software (som Swift for TensorFlow). Foredraget afsluttes med historien om starten og væksten af ​​RISC V ISA.

For dem, der foretrækker en skriftlig artikel frem for en video, har denne måneds Kommunikation af ACM en artikel skrevet af Hennessy og Patterson (forfattere af den berømte bog Computer Architecture) om netop dette emne. Moores lov for transistorer er måske afsluttet, men der ser ud til at være en Moores lovmæssige vækst i antallet af maskinlæringsartikler, der er offentliggjort i de senere år.

Video [Hennessy at Stanford, ~ 1 time]

Video [Patterson på Facebooks @ Skala-konference ~ 30 minutter]

5. Safe Client Adfærd, Ariel Goh

Dette skal være åbenlyst for distribuerede systemers gamle hænder, men det er værd at gentage, at klienter er en vigtig del af et distribueret system og derfor skal deltage i elasticitetsindsats. Dette er en fantastisk tale fra SRECon Asien / Australien om bedste praksis til klientdesign til forbedring af elasticiteten i hele systemet. Teknikker, der foreslås, inkluderer jitterende klientanmodninger, tilføjelse af tilfældighed, så alle klienter ikke ved en fejltagelse ender med at synkronisere, når de fremsætter anmodninger, hvornår de ikke skal prøve igen, jitterende forsøg, gentage forsøg med eksponentielle backoffs (og samtidig gotchas), "gentage budgetter" (som fejlbudgetter ), flytte noget af kontrollen til serveren og etablere en feedback loop mellem serveren og klienter, adaptiv throttling på klienter og meget mere.

video

6. Hvordan man serverer og beskytter (med klientisolering), Frances Johnson

Dette er en anden fremragende tale fra SRECon Asien / Australien om at beskytte en service som Google Maps (med en overflod af interne og eksterne klienter) mod overbelastning. Foredraget berører problemer såsom systemoverbelastning (og ledsagende problemer som downstream er uvidende om et systems overbelastning), kaskadefejl, faldgruberne i statiske kvoter, fordele og ulemper ved at implementere yndefulde nedbrydningsteknikker på forskellige lag i stakken (klient, kant, frontend, backend).

video

7. Anvendt performance teori, Kavya Joshi

Dette er en utrolig foredrag (som altid) af Kavya fra QCon London om, hvordan man bruger præstationsmodelleringsteknikker for at kunne besvare spørgsmål som f.eks. Hvilken ekstra belastning et system kan understøtte uden at nedbryde responstid og hvordan man kan opdage et systems brug af flaskehalse. Foredraget leder os først gennem et typisk eksempel på webserver for at demonstrere, hvordan man analyserer ydeevne i ”åbne systemer” efterfulgt af et eksempel på ”lukkede systemer”, og hvordan begge hænger på forskellige antagelser og kræver forskellige teknikker til analyse.

Slides Video

8. Amazon Aurora: Designovervejelser til sky-native relationsdatabaser med høj kapacitet, Sailesh Krishnamurthy

Dette var en absolut knækkende tale fra Facebooks @Scale-konference om nogle af de designbeslutninger og kompromisser, som understøtter Amazon Aurora, lagermotoren, der driver mange populære AWS-databasetilbud. Det påstås, at Aurora skalerer automatisk op til 64 TB pr. Databaseforekomst og leverer høj ydelse og tilgængelighed med op til 15 læse-replikater med lav latens, gendannelse af point-in-time, kontinuerlig sikkerhedskopi til S3 og replikering på tværs af tre tilgængelighedszoner.

Der er to [1] [2] ledsagende hvidbøger udgivet af Amazon om Aurora. Foredraget henviser til mange punkter fra det andet papir, hvor den vigtigste afhentning er, at den distribuerede konsensus dræber præstationer, og at lokal stat faktisk kan være en god ting. Med brugen af ​​en uforanderlig log som sandhedskilde undgår Aurora distribueret konsensus om ændringer i medlemskabet ved at udnytte nogle "oaser af konsistens" med brugen af ​​epoker som vagter som en form for skrivekvorum og undgå at gøre quorum læst helt. Det er interessant i en æra, hvor transaktionssystemer gør noget til et comeback, og Googles forkynnelse om, hvorfor vi skal vælge en stærk konsistens, når det er muligt, Amazon vælger forskellige afvejninger.

video

9. Future of FoundationDB Storage Layer, Steve Atherton

Dette var en spændende tale om fremtiden for Storage Layer for FoundationDB fra FoundationDB-topmødet. FoundationDB er en distribueret, bestilt nøgleværdi-butik, men selve lagringslaget er ikke-distribueret og fås adgang til en enkelt proces fra en enkelt tråd. Foredraget går ind på kravene til en ny lagermotor, ikke-krav (samtidige forfattere, lav engagement latenstid), derefter udforsker fordele og ulemper ved flere datastrukturer du jour (B + træer, LSM træer) og årsagerne til at plukke Redwood versioneret B + træ.

video

En anden stor tale fra FoundationDB-topmødet var den på dokumentlaget, hvis video kan findes her.

10. Autonom testning og fremtiden for softwareudvikling, Will Wilson

Først og fremmest er Will muligvis en af ​​de bedste talere, jeg nogensinde har set tale (hans tidligere tale om Testing Distribuerede Systemer med Deterministic Simulation fra Strangeloop 2014 er en af ​​mine favoritter til alle tider).

Dette er en fænomenal tale fra det oprindelige FoundationDB-topmøde, der gør en ret overbevisende sag for en AI-drevet tilgang til test. Foredraget identificerer 3 hovedproblemer med test: skrøbelighed (din test kommer til at stole på egenskaber ved dit system, der er tilfældige - det er ikke dem, du troede, du testede), mangel på udtømmende og uklarhed.

Foredraget argumenterer for, at test er gode til at skabe regressioner, men næsten helt ubrugelige til at opdage ukendte-ukendte. Samtalen betragter alle ovennævnte problemer som symptomerne, idet det reelle underliggende problem er, at test stadig er fuldstændig manuelt. Selv "automatiseret test" involverer kun nogensinde Jenkins, der kører en testsuite manuelt skrevet af mennesker. Foredraget fastlægger derefter drømmen om autonom testning som behovet for automatisk oprettelse af test ud over automatisk udførelse af test.

video

11. Design af distribuerede systemer med TLA +, Hillel Wayne

Dette var en vidunderligt tilgængelig tale fra CodeMesh om brugen af ​​formel specifikation til design af distribuerede systemer. Tænk på det som en blid introduktion til TLA +. Tilbudsmæssige tager inkluderer:

Giv et system tid nok, og det vil gøre alt, inklusive mislykkes.
Kode er ikke design. Kode viser dig ikke, hvordan dit system fungerer. Det er bare din implementering; det skal ikke være dit design, det kan ikke være dit design. Og hvis du tror, ​​du kan designe et system og forstå et system med kun koden, har jeg en bro til at sælge dig, og jeg vil sælge det dig to gange, samtidigt.

video

12. Hvad vi fik forkert: Lektioner fra fødslen af ​​mikroservices hos Google, Ben Sigelman

Dette var en hvirvlende snak om hovedafkom af distribueret computing hos Google, der berørte alt, hvad Google fik ret til praksis, der ikke var helt, men som havde stærke paralleller til det, vi kender som ”mikroservices” i disse dage. Foredraget fremhæver, hvor den bredere branche faktisk gør visse ting bedre end hvordan Google gjorde det (f.eks. Servicemasker), hvornår og hvorfor emulering af Googles teknologiske valg og praksis ikke fungerer godt for resten af ​​os, og hvorfor det bliver særlig vigtigt at være i stand til at besvare visse slags spørgsmål, inden du vedtager arkitektoniske paradigmer du jour (såsom "serverløs").

Video Slides

13. Distribueret Log-Processing Design Workshop, Laura Nolan, Phillip Tischler, Salim Virji

Dette er en helt utrolig tale om det praktiske ved arkitektering af et distribueret system i stor skala, herunder hvordan man skal nærme sig skalering, hvordan man evaluerer kompromisser langs forskellige akser samt tonsvis af bagsiden af ​​konvolutberegningerne for at retfærdiggøre hver beslutning.

SRE-arbejdsbogen (frit tilgængelig online) fra Google har et helt kapitel kaldet Ikke-abstrakt stort systemdesign dedikeret til netop dette emne, og jeg har hørt, at det er den afgørende samtale i hele Google SRE-interviewsløjfen, da det er den, der er statistisk mest sandsynligt at rejse en kandidat efterfulgt af kodningsinterviews Personligt synes jeg, at dette ikke kun er relevant for SRE'er, men det skal kræves læsning for alle, der bygger og betjener distribuerede systemer.

Desværre har jeg ikke været i stand til at finde en video til dette.

Slides

14. Load Balancing på Hyper Scale, Alan Halachmi og Colm MacCarthaigh

Dette er en virkelig fascinerende tale fra Facebooks Networking @Scale-konference om udviklingen i belastningsbalancering på AWS. Det kaster lys over HyperPlane, et system, der ligger til grund for AWS's S3 Load Balancer, VPC NAT Gateway og PrivateLink med mere. Jeg nød især at lære om det foreslåede SHOCK-princip (Self Healing eller Constant Work), der antyder, at når du bygger et system, skal det være modstandsdygtigt over for store stød. Eller sagt anderledes, "hvis noget stort ændrer sig, skal systemet være i stand til at fortsætte som normalt". I foredraget foreslås det:

1. Konstant indsats og opsving efter fiasko er de naturlige tilstande
2. Brug altid i reparationstilstand. Når en knude mislykkes, fungerer Hyperplane faktisk mindre arbejde!
3. Når vi designer systemer i stor skala, ønsker vi ikke, at de skal være komplekse. Vi ønsker, at de skal være så enkle som muligt. Med henblik herpå ønsker vi så få driftsformer som muligt (Hyperplan har f.eks. Ingen genforsøgstilstand. Det er piggybanks på TCP's medfødte forsøgsmekanisme). Hævning på forskellige driftsformer resulterer i en kombinatorisk eksplosion af kompleksitet, hvilket resulterer i, at systemet er utroligt svært at teste. Vi ønsker et system, der er konsistent og altid udfører den måde, vi forventer.
4. Foredraget introducerer også ideen om blanding af afskærmning, en DDoS-afbødningsteknik (hvor isolering er den primære afbødningsteknik), der nu er vidt udbredt på tværs af mange AWS-tjenester.

video

15. Isolering uden containere, Tyler McMullen

Et af mine interesseområder er det, jeg har beskrevet for venner som ”spektret af beregning” - VM'er, microVM'er, indlejrede VM'er, containere (og smag af “sandkassebeholdere” som Kata containere) og “serverløs” (eller funktioner som en service). Jeg er især interesseret i det "spektrum af isolering", disse tilbud tilbyder - fra streng procesniveauisolering til isolering via en sandkasse såsom en V8. Flere teknologier er vokset frem i de senere år i virtualiseringsrummet, såsom gVisor (en hypervisor, der implementerer en delmængde af Linux-kernel API i brugerplads) til Firecracker - en virtuel maskineskærm, der er bygget til at køre let og serverløs arbejdsbelastning i mikro-VM'er , selv bygget oven på crosvm (Chrome OS's Virtual Machine Monitor). En af de mest fascinerende udviklinger i dette rum er WebAssemble. Oprindeligt designet som et mål for oprindelig kode til at køre på browsere, er WASM nu gearet af CDN-udbydere til at køre vilkårlig kode uden nogen form for procesbaseret isolering. Selvom jeg stadig tror, ​​at juryen er ude om, hvorvidt denne form for isolering virkelig passerer mønstre, var dette en fascinerende tale fra Strangeloop om netop dette emne, der forklarer funktionerne i WASM, der endda gør dette noget holdbart.

video

16. Hvordan C ++ Debuggers fungerer, Simon Brand

Titlen er temmelig selvforklarende. Samtalerne forklarer alt fra hvad ELF-binære filer er, DRAWF-symboler, mekanikken for, hvordan breakpoints fungerer, hvad der gennemgår kode virkelig indebærer, arbejde med flertrådede applikationer i en debugger og meget mere. Dette er bestemt en af ​​mine top tre foredrag på denne liste over utrolige samtaler.

video

17. A Philosophy of Software Design, John Ousterhout

Bogen En filosofi om softwaredesign var den bedste tekniske bog, jeg læste i 2018. Hvert eneste kapitel i bogen er dens vægt værd i guld, men kapitlet om dybe moduler er sandsynligvis det, jeg har nævnt mest. Foredraget berører nogle af de vigtigste ideer og røde flag introduceret i bogen, men hvis jeg var dig, ville jeg bare købe bogen og være færdig med den.

Videobog

18. Clangd: arkitektur af en skalerbar C ++ sprogserver, Ilya Biryukov

En af de mest interessante udviklinger fra Microsoft i de senere år har været Language Server Protocol. 5.0-frigivelsen af ​​clang-kompilatoren introducerede Clangd, LLVM's implementering af Language Server-protokollen. Clangd er en implementering af sprogserverprotokollen til at levere funktioner som kodefærdiggørelse, fix-its, goto-definition, omdøbning osv. Til klienter såsom C / C ++ kildeditorer. Dette var en god tale fra CPPCon, der berørte nogle af libclangs begrænsninger og forklarer motivationen bag udviklingen af ​​Clangd såvel som dens generelle arkitektur.

19. Coroutine Repræsentationer og ABI'er i LLVM, John McCall

Coroutines i LLVM blev først tilføjet af Microsofts Gor Nishanov og blev designet omkring behovene i C ++ coroutines TS. Dette var en utrolig tale fra LLVM-udviklermødet, der går ind på nogle af fordele og ulemper ved forskellige implementeringshensyn, såsom ceding-kontrol (kontekstskifte, koroutineopdeling med delt genoptagelse og genoptagelsesfunktioner pr. , sidetildeling, stak samliv) til udbytte af data samt udfordringerne ved at generere kode til sprogfunktioner drevet af koroutiner såsom generatorer. Foredraget adresserer derefter nogle af detaljerne om en anden form for sænkning kaldet ”returned continuation flavour” for Swift-programmeringssprog, hvor nogle af optimeringerne sker på Swifts SIL-lag og ikke direkte på LLVM-niveau.

video

PS: Alle foredrag fra LLVM Developer's Meeting er dybt lærerige. Jeg har kun set denne ene tale, men jeg er sikker på, at jeg med glæde vil anbefale alle de andre også, når jeg først er kommet for at se dem.

20. Udvikling af Kotlin / indfødt infrastruktur med LLVM / Clang, Nikolay Igotti

Kotlin Native er en super interessant udvikling i de senere år, som gør det muligt at samle Kotlin-kode ned til platformbinarier (ELF, Mach-O, WASM osv.), Så den kan køres nativt ud over at være i stand til at køre i en JVM. Dette var en rigtig god tale fra det europæiske LLVM-udviklermøde om mekanikerne i Kotlin / Native, herunder nogle af udfordringerne ved at implementere hukommelsesstyring uden for JVM, håndtere undtagelser og overføre til WASM (som ikke har nogen runtime, ingen hukommelsesallokator, ingen undtagelser osv.) samt nogle af de generelle problemer med LLVM (langsom kodning og sammenkobling, manglende offentlig LLDB-plugin API osv.).

Slides Video

21. Fresh Async With Kotlin, Roman Elizarov

Spektret af asynkron programmering er bredt og varieret. Dette var en fantastisk tale fra Goto Copenhagen om de udfordringer, der ligger til grund for nogle af disse paradigmer med asynkron programmering, især den tilbagekaldsbaserede tilgang til Futures. Foredraget fortsætter derefter med at adressere, hvordan Kotlin sigter mod at løse dette problem med koroutiner ved at tilvejebringe en synkron grænseflade til brugeren (via den ophængt primitive) mens han er under hætten ved hjælp af fortsættelser og ophængningspunkter til at konstruere en tilstandsmaskine. Den mest fascinerende del af foredraget var sammenligningen mellem Kotlins tilgang og C # -tilnærmelsen for async / afventer, hvor hovedkomponenten bag Kotlins designvalg var, at samtid er hård og ergo skal være eksplicit. Foredraget slutter med, hvordan endda CSP-esque-mønstre kan implementeres ved hjælp af de coroutine primitiver fra Kotlin.

video

22. Kotlin Native Concurrency Model, Nikolay Igotti

Kotlin har ingen samtidige primitiver på sprogniveau. Kotlin coroutines som beskrevet i en tale ovenfor er et bibliotek baseret konstruktion, der er målrettet mod JVM. Kotlin / Native eschews JVM-stil delt objektheap og låsning ved at opretholde en invariant, at et objekt enten ejes af en enkelt eksekveringskontekst, eller det er uforanderligt (delt XOR-mutabel). Dette var en stor tale fra KotlinConf, der går ind på, hvordan dette opnås med "ikke eksternt henviste objektundergrafer"

Derudover har Kotlin som sprog ikke uforanderlighed indbygget i typesystemet. Uforanderlighed opnås ved frysningskonceptet, der gør den transitive lukning af alle objekter, der kan nås fra et givet objekt, uforanderlig. Derudover tillader Kotlin / Native også overførsel af ejerskab af genstande på tværs af eksekveringssammenhænge. Foredraget introducerer de grundlæggende sikre samtidige primitiver leveret af Kotlin / Native såsom "aftagelige objektgrafer", atom og skuespillerstil "arbejdere", hvordan referencetælling baseret hukommelsesstyring fungerer i Kotlin / Native samt hvordan det opnår interoperabilitet med andre runtime.

Slides Video

23. Er det tid til at skrive et operativsystem i Rust, Bryan Cantrill

Jeg har ofte været udsat for en eller anden lænestolsteorisering om, at Rust er "et sprog designet til at skrive en kerne i".

Er det vel?

Dette er en god tale fra den førende ekspert om emnet om, hvorfor Rust er særlig velegnet til at skrive systemsoftware, såvel som nogle af udfordringerne ved potentielt at skrive en hel kerne i Rust. Hvis du kan lide udflugter i databehandlingens annaler og det sjældne brand hot take, der faktisk understøttes af velinformeret og begrundet tænkning, kan dette være tale for dig.

Slides Video

24. Hvad mener du med "tråd-sikker"?, Geoffrey Romer

Dette var en vidunderlig tale fra CPPCon, der sigter mod at disambiguere udtryk som "tråd-sikkert" eller mere præcise udtryk som "datacup" og "race-tilstand", der ofte fungerer på det forkerte niveau af abstraktion. Foredraget foreslår at bruge begrebet "API-race" og invarianter, der kan bygges omkring et "API-løb", efterfulgt af anbefalinger til både C ++ bibliotek og applikationsforfattere omkring

video

25. Fast Safe Mutable State, Ben Cohen

Når det kommer til en mutbar tilstand, er det vigtigt at huske, at det er den delte mutable tilstand, der er dårlig, og ikke mutabel tilstand i sig selv. Dette var en vidunderlig foredrag fra Functional Swift-konferencen om, hvornår og hvordan man bruger lokal mutable tilstand uden at ofre sikkerhed eller ydeevne. Foredraget går gennem nogle af sprogfunktionerne i Swift, der giver det en vis funktionel smag ved at forhindre visse kategorier af fejl, der er mulige i mutationsfunktioner.

video

26. Dos and Donts of Error Handling, Joe Armstrong

Jeg havde fornøjelsen af ​​at se denne tale live på GOTO Copenhagen. Hovedtrækket i denne tale er, at det er umuligt at opnå fejltolerance ved hjælp af en enkelt maskine; besked, der passerer, bliver således uundgåelig. Bygningsfejltolerante distribuerede systemer bygger på at detektere og handle på fejl. Filosofien om fejlhåndtering, der anses for mest forsigtig, er en, hvor software kan bevises korrekt på kompileringstidspunktet, og hvor software antages at være de facto forkert og forventes at mislykkes ved kørsel. Store samlinger af små ting er umulige at bevise korrekte; det bliver derfor vigtigt at være i stand til at definere “fejlkernen”, som er en undergruppe af system, der skal være korrekt. Hvis du som programmerer ikke ved hvad du skal gøre, skal du gå ned. Derefter bliver din software enklere.

Du bliver tilgivet for at tænke på det som en 45 minutters forklaring på eksistensen af ​​Erlang programmeringssprog.

video

27. QUIC: Udvikling og implementering af en TCP-erstatning til Internettet, Ian Swett og Jana Iyengar

Dette var en fantastisk tale fra NetDev, der giver en introduktion til QUIC-protokollen udviklet hos Google, designbeslutningerne (hvorfor lagde det på toppen af ​​UDP, bedre tabsgendannelse, fleksibel overbelastningskontrol) dets udvikling såvel som utallige eventyr, der skalerer QUIC på Linux .

Slides Video

28. Introduktion af Network.framework: Et moderne alternativ til Sockets, Josh Graessley, Tommy Pauly, Eric Kinnear

Stikkontakter kan være vanskelige at bruge, når det kommer til etablering af forbindelse eller dataoverførsel (selv med ikke-blokerende stikkontakter) eller mobilitet.

Network.framework er et moderne transport-API, der er et alternativ til stikkontakter på Apple-platforme. Dette var en fantastisk gåtur fra WWDC 2018, der gik en gennem anatomi af en indledende forbindelsesetablering til livscyklussen for en forbindelse sammen med de utallige optimeringer, der blev foretaget på forskellige stadier. Det er muligvis også det bedst præsenterede foredrag på denne liste.

video

29. Kubernetes og stien til serverløs, Kelsey Hightower

Det er en tale af Kelsey Hightower.

Skal jeg sige mere? Jeg tror ikke.

video

30. Brug af Rust til spiludvikling, Catherine West

Foredraget starter med at sige "Dette er sandsynligvis den kedeligste tale ..."

Det er ikke.

Det kan faktisk være den allerbedste tale på denne liste.

video