Conference Presentations & Meetup Talks

Communicating in Types • Kris Jenkins • GOTO 2024
This presentation was recorded at GOTO Copenhagen 2024. #GOTOcon #GOTOcph https://gotocph.com Kris Jenkins - Developer Advocate, Software Developer, Podcast Host, Conference Speaker & Geek @krisajenkins RESOURCES https://bsky.app/profile/krisajenkins.bsky.social https://www.linkedin.com/in/krisjenkins https://twitter.com/krisajenkins https://github.com/krisajenkins http://blog.jenkster.com ABSTRACT Modern type systems have come a long way since C. They’re no longer just about pleasing the compiler. These days they form a sub-language that helps us express ideas about software clearly & succinctly. A true design language. So let’s take a look at how a modern type system supports talking about software. How it highlights problems, clarifies designs, and supports reuse. Most importantly, see how types can help you talk to your colleagues. [...] TIMECODES 00:00 Intro 01:42 Disclaimer 02:05 A story of types 03:59 Describing things 11:22 Describing relationships 15:08 Some examples in Elm 23:49 Describing context 32:46 Where next? 35:44 Outro Download slides and read the full abstract here: https://gotocph.com/2024/sessions/3487 RECOMMENDED BOOKS Sandy Maguire • Thinking with Types • https://leanpub.com/thinking-with-types Edwin Brady • Type-Driven Development with Idris • https://amzn.to/432GZTi Maryann Kisamore • Basics Of Apache Kafka • https://amzn.to/3tkVYFD Mitch Seymour • Mastering Kafka Streams and ksqlDB • https://amzn.to/3HZ18wK Ted Dunning & Ellen Friedman • Streaming Architecture • https://amzn.to/3lhk3Kb Liz Rice • Container Security • https://amzn.to/3oU4iJe Neal Ford • Functional Thinking • https://amzn.to/3DdP35B Petricek & Skeet • Real-World Functional Programming • https://amzn.to/38diF4M Venkat Subramaniam • Functional Programming in Java • https://amzn.to/2WlOXIt https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #Types #TypeSystem #ModerTypeSystem #SoftwareDesign #Elmlang #Unison #Unisonlang #Rustlang #Gleam #Swift #TypeScript #Programming #SoftwareEngineering #TodayInTech #KrisJenkins CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Side Effects Are Why We Can’t Have Nice Things
What will save us from software complexity? Microservices architectures? Immutable data? Functional languages? Event streaming? These may seem like disparate solutions, but they’re all connected, They’re all striving to solve the same fundamental problem: Side effects. Side effects are one of the most insidious causes of software complexity, and yet we’re barely aware of them. And the attempts to tackle side effects have produced some of the most interesting developments in software development in the past decade, yet as an industry we’re barely aware of the fundamental pattern tying everything together. Let’s fix that. Join me to understand what side effects are and why they matter. You’ll learn to spot them in your own code. You’ll see how they sneak into our tests, our APIs and our systems’ designs and make everything harder. Then we’ll look at our industry’s many solutions to side effects. You’ll see why immutable data structures are appearing in every language; why we invented OO and why it might get replaced with FP. And we’ll see what it all means for the larger designs of microservices, data processing and event systems. Side effects are a hologram - put the right light on them and you can see a whole picture of modern computing emerging. Take a look and you’ll see the nice things the future could hold. ABOUT CONFLUENT Confluent is pioneering a fundamentally new category of data infrastructure focused on data in motion. Confluent’s cloud-native offering is the foundational platform for data in motion – designed to be the intelligent connective tissue enabling real-time data, from multiple sources, to constantly stream across the organization. With Confluent, organizations can meet the new business imperative of delivering rich, digital front-end customer experiences and transitioning to sophisticated, real-time, software-driven backend operations. To learn more, please visit www.confluent.io. #confluent #apachekafka #kafka
PICKUP DATA: A Kafka Adventure Game - Kris Jenkins - NDC Melbourne 2022
Apache Kafka is used by many video gaming companies to manage and analyse live data from their players, handling billions of events across dozens of countries every day. But none of them have thrown caution to the wind and used Kafka as their core game engine. In this talk we'll revisit the quintessential video game, the Text-Based Adventure, and implement as much of it as we can in pure Kafka. We may not break the Steam sales records, but along the way we'll learn a lot about the building blocks of event systems, some interesting Kafka Streams tricks, and get a glimpse of how many different needs a good event store can satisfy: data collection, processing & enrichment, analytics, real-time reporting and more. Check out more of our featured speakers and talks at https://www.ndcconferences.com https://ndcmelbourne.com/
Live Coding a KPI Dashboard With Apache Kafka®
Big Data LDN 2022, 21 Sept, 11:20am, Fast Data Theatre Speaker: Kris Jenkins, Confluent How much can we accomplish with Apache Kafka in 40 minutes of coding? Let's find out! In this live-coding session we'll build a real-time sales dashboard completely from scratch and you’ll see how to: - Set up a Kafka Consumer with Python. - Easily handle real-time Stream Processing with ksqlDB. - Build out a WebSocket server to broadcast live data to your users. - Create a basic React app to visualise data in a way anyone can access. We'll start with an empty directory and by the end, you'll have all the foundational pieces of a dashboard that could serve KPIs to everyone in your organisation, or just form the basis of your next lunchtime hacking session.
Pickup Data; Go North • Kris Jenkins • Devoxx Poland 2021
Subscribe to our channel: https://youtube.pl/c/DevoxxPoland?sub_confirmation=1 Apache Kafka is used by many video gaming companies to manage and analyse live data from their players, handling billions of events across dozens of countries every day. But none of them have thrown caution to the wind and used Kafka as their core game engine. In this talk we'll revisit the quintessential video game, the Text-Based Adventure, and implement as much of it as we can in pure Kafka. We may not break the Steam sales records, but along the way we'll learn a lot about the building blocks of event systems, some interesting ksqlDB tricks, and get a glimpse of how many different needs a good event store can satisfy: data collection, processing & enrichment, analytics, real-time reporting and more. The source code will be available online afterwards, but if your boss catches you building an MMO on the corporate server, we take no responsibility. Kris Jenkins is the former CTO of a gold-trading company, contractor for a number of internet startups, and now Developer Advocate at Confluent. He enjoys anything that makes system architecture simpler and more reliable (like functional programming and event-based systems), and anything that puts the fun back into coding (like meetups, hackathons, and playing with new technology). Kris lives in London with his noun phrase and two subjunctive clauses. Recorded at Devoxx Poland 2021 Twitter: https://twitter.com/DevoxxPL Instagram: https://www.instagram.com/DevoxxPL Join us also here: Devflix: https://devflix.pl #Devoxx #DevoxxPoland #IT #Development #SoftwareDevelopment
#SpeakEasy at #jfokus 2022 with Melissa McKay @melissajmckay and Kris Jenkins @krisajenkins
In this episode we talked with Kris Jenkins @krisajenkins, a Developer Advocate for Confluent, a veteran startup contractor, and former CTO & Co-Founder of a gold trading business. He started his career working for a finance company whose success depended on having a better data model than all their competitors, and the search for the better model has been with him ever since.
PICKUP DATA - A Kafka Adventure Game by Kris Jenkins
Apache Kafka is used by many video gaming companies to manage and analyse live data from their players, handling billions of events across dozens of countries every day. But none of them have thrown caution to the wind and used Kafka as their core game engine. In this talk we'll revisit the quintessential video game, the Text-Based Adventure, and implement as much of it as we can in pure Kafka. We may not break the Steam sales records, but along the way we'll learn a lot about the building blocks of event systems, some interesting streaming tricks, and get a glimpse of how many different needs a good event store can satisfy: data collection, processing & enrichment, analytics, real-time reporting and more. Kris Jenkins, Confluent Recorded at Jfokus 2022 in Stockholm 3rd of may http://www.jfokus.se
Live-Coding a Dashboard with KSQL, Python & JavaScript • Kris Jenkins • GOTO 2021
This presentation was recorded at GOTO Copenhagen 2021. #GOTOcon #GOTOcph http://gotocph.com Kris Jenkins - Developer Advocate at Confluent @krisajenkins ORIGINAL TALK TITLE Dashing Off A Dashboard ABSTRACT How much can we do with Kafka in 30 minutes of coding? Let's find out. In this live-coding session we'll build a real-time dashboard from scratch. Dancing across three languages - KSQL, Python and JavaScript - we'll piece together the skeleton of a dashboard that could serve KPIs to everyone in your organisation, or just form the basis of your next lunchtime hacking session [...] TIMECODES 00:00 Intro 00:58 Startup life 02:30 Demo/Live-coding 35:19 Conclusion 37:34 Outro Download slides and read the full abstract here: https://gotocph.com/2021/sessions/1988/dashing-off-a-dashboard RECOMMENDED BOOKS Maryann Kisamore • Basics Of Apache Kafka • https://amzn.to/3tkVYFD Mitch Seymour • Mastering Kafka Streams and ksqlDB • https://amzn.to/3HZ18wK Ted Dunning & Ellen Friedman • Streaming Architecture • https://amzn.to/3lhk3Kb Liz Rice • Container Security • https://amzn.to/3oU4iJe Neal Ford • Functional Thinking • https://amzn.to/3DdP35B Petricek & Skeet • Real-World Functional Programming • https://amzn.to/38diF4M Venkat Subramaniam • Functional Programming in Java • https://amzn.to/2WlOXIt Naomi Ceder • The Quick Python Book • https://amzn.to/3zwdDOa Luciano Ramalho • Fluent Python • https://amzn.to/3oSw2je https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.facebook.com/GOTOConferences #Kafka #ApacheKafka #KSQL #KSQLDM #Python #JavaScript #JS #LiveCoding #Demo #KrisJenkins #EventStream #JSON #WebSockets #Confluent #React #ReactJS #LiveHack #Hacking Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
OOP 2022 KeyDi2 | Side-Effects Are The Complexity Iceberg (by Kris Jenkins)
Many of us have a rough idea of what side-effects are and a vague sense that they're bad. It's a shame we're not more precise about it, because when you really understand side-effects you have an excellent new lens through which you can judge individual blocks of code, larger architectural patterns, and even whole system designs. So let's start by clarifying our understanding of what side-effects are and how to spot them. We'll see how easily they arise, leaving code that's harder to understand, harder to test and harder to decouple. Then we'll look at tools and techniques for eliminating those side-effects where it's possible and managing them where it isn't. Finally we'll zoom out to see how those ideas get expressed in every field of computing, yielding fundamentally different approaches to programming language design, DevOps, system architecture, and database design. There's an iceberg of complexity hiding in your systems' side-effects and by the end of this talk you'll be able to spot it and start tackling it, rethinking the way we deal with data and the systems around it."
Side Effects Are The Complexity Iceberg
Many of us have a rough idea of what side-effects are and a vague sense that they're bad. It's a shame we're not more precise about it, because when you really understand side-effects you have an excellent new lens through which you can judge individual blocks of code, larger architectural patterns, and even whole system designs. So let's start by clarifying our understanding of what side-effects are and how to spot them. We'll see how easily they arise, leaving code that's harder to understand, harder to test and harder to decouple. Then we'll look at tools and techniques for eliminating those side-effects where it's possible and managing them where it isn't. Finally we'll zoom out to see how those ideas get expressed in every field of computing, yielding fundamentally different approaches to programming language design, DevOps, system architecture, and database design. There's an iceberg of complexity hiding in your systems' side-effects and by the end of this talk you'll be able to spot it and start tackling it, rethinking the way we deal with data and the systems around it.
GO NORTH - A Kafka Adventure Game by Kris Jenkins
For more info on the next Devoxx UK 👉 https://www.devoxx.co.uk Apache Kafka is used by many video gaming companies to manage and analyse live data from their players, handling billions of events across dozens of countries every day. But none of them have thrown caution to the wind and used Kafka as their core game engine. In this talk we'll revisit the quintessential video game, the Text-Based Adventure, and implement as much of it as we can in pure Kafka. We may not break the Steam sales records, but along the way we'll learn a lot about the building blocks of event systems, some interesting ksqlDB tricks, and get a glimpse of how many different needs a good event store can satisfy: data collection, processing & enrichment, analytics, real-time reporting and more. The source code will be available online afterwards, but if your boss catches you building an MMO on the corporate server, we take no responsibility.
Dashing Off A Dashboard With Kafka, Python and React
Time for some more live-coding. In this one, we're building a realtime dashboard, completely from scratch for the Python user group, ThaiPy. 00:00 - Intro 03:07 - Building a ksqldb summary table 04:33 - Writing a Kafka Consumer In Python 14:14 - Adding Websocket Server In Python 24:40 - Building a React Client Source code: https://github.com/confluentinc/demo-scene/tree/master/kpi-dashboard
Kris Jenkins - Slaying a UI Antipattern
Fetching data from the server should be one of the easiest things frontend programmers do. And yet even big names like Twitter and Slack make a simple mistake that consistently spoils the UX of their sites. In this talk we’ll look afresh at the simple act of loading remote data, and how it’s just slightly more complicated than people think. Then we’ll see how Elm’s excellent data modeling capabilities let you capture this complexity and banish the bug permanently. You’ll learn how to improve the user experience of every HTTP call you make, and pick up some wider ideas on how Elm’s type system can guide you to clearer, more useful designs that make for better software.
Kris Jenkins - Communicating in Types | Øredev 2018
Modern type systems have come a long way from the days of C and Java. Far from being nit-pickers that berate us for making mistakes, type systems like the ones found in Haskell, PureScript and Elm form a language in themselves. A language for expressing high-level ideas about our software to our colleagues and to the computer. A design language. In this talk, we'll take a look at the way the right kind of type signatures let us talk about software. We'll survey how to state our assumptions about the domain we're coding in and how each part fits together. We'll show how it can highlight problems, and surface opportunities for reuse. And most importantly, we'll see how types can help you communicate to your coworkers, and to future maintainers, with little effort. You've probably heard the phrase, "programs are meant to be read by humans and only incidentally for computers to execute." Come and see how a modern type system is about communicating ideas to humans, and only incidentally about proving correctness. Connect with us! Twitter: https://twitter.com/oredev Facebook: https://facebook.com/oredev Instagram: https://instagram.com/oredev Vimeo: https://vimeo.com/oredev
XT16 - Kris Jenkins - Adventures in User Interfaces
Kris Jenkins - Types As Design Tools
Kris Jenkins - Types All The Way Down
Kris Jenkins' talk at Compose :: Conference in Melbourne, 2016. -- In web development, a great deal of effort is spent on consistency. The frontend, backend and database must all agree on a data-model, and if they don't, the system crashes spectacularly. The default solutions are either to invest heavily in hand-written integration tests, or use JavaScript everywhere. Neither of these are ideal. However there is a compelling alternative - use the same types everywhere. By reusing strong, static types across tiers, we can make guarantees about the consistency of the entire system, and dramatically lower the cost of change. We present one approach that uses Haskell data types to drive a both a PostgreSQL database schema and a frontend system written in Elm. With one set of types to rule them all, whole system consistency is automatic and reliable, and the cost of changing types - and hence evolving the whole system's data model - is dramatically reduced. -- http://www.composeconference.org/2016-melbourne/day-one-program/
LDN Functionals #5 Kris Jenkins: What is Functional Programming?
The first talk delivered at the fifth London Functional Programmers meetup, taking place at Facebook's London offices. To go to the next meetup visit: http://www.meetup.com/London-Functionals/ Follow us on Twitter at: https://twitter.com/functionalworks Any feedback or questions: joshua@functionalworks.com
LDN Functionals #2 Kris Jenkins : Elm
The second talk delivered at the second London Functional Programmers meetup, which is for sharing and learning about functional languages / topics. To go to the next meetup visit: http://www.meetup.com/London-Functionals/ Follow us on Twitter at: https://twitter.com/functionalworks Any feedback or questions: joshua@functionalworks.com