Kris Jenkins
Host of the Developer Voices podcast
London, United Kingdom
Actions
Kris Jenkins is a lifelong programmer, a Lead Developer Advocate for Snowflake, and the host of the Developer Voices podcast. Over the course of his career he's been the CTO of a gold-trading company, a functional programming contractor specialising in Haskell, and a regular hackathon organiser.
He loves good software architecture, innovative new programming languages, and most of all, building stuff.
Links
Area of Expertise
Topics
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 modelling 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.
A Beginner's Guide to Realtime Data With Kafka
Apache Kafka's an interesting beast. It solves many different data-processing problems by being part queue, part database, and part message bus. But it can be daunting to get started, and like many things, the only real way to understand Kafka is to build something with it. So let's do that!
In this live-coding session we'll take our first steps with Kafka, building a system that tracks the live status of metro trains. As we do so, we'll build up an understanding of some of Kafka's core ideas - topics, connectors, consumers and groups - to build up a mental model of how Kafka works, and where it works best.
(And for those of you who already know Kafka, you'll learn some modern JavaScript and see how quickly you can build a useful app.)
By the end you'll have a starter project, and the shape of Kafka in your mind so you can make faster progress building your own realtime applications.
Types As Design Tools
Types are much-discussed as a tool for correctness. Are they vital for a robust system, or has TDD made them obsolete? Do types help you write correct programs, or do they just restrict expressiveness?
What's not talked about nearly enough is how types are a window into your system's design. A good type system can reveal architectural secrets when you've barely even looked at the code. And it can reveal design flaws and opportunities for improvement at a glance - if you know how to look.
With a collection of examples gathered from real live systems, we'll look at how the type signatures of existing programs are trying to guide you to better designs.
Livecoding a Kafka Dashboard
How much of a genuine realtime system can you build in a lunchtime's worth of programming? In this live-coding session we'll build a real-time, Kafka-driven sales dashboard from scratch and see how you:
- 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.
Communicating in Types
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 may have 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.
Kafka Performance Tuning, But Backwards
I have a simple streaming application that comfortably processes a million records a second against a modest Apache Kafka® cluster running on the far side of the Atlantic ocean. This is clearly too powerful, too efficient, and I risk making myself redundant. Where’s the job security in a high-performing system?
In this code walkthrough we’ll look at the most important performance-tuning settings for Kafka and see how we can easily destroy throughput, add latency, and bring the system grinding to a halt by setting the right parameters to the wrong values.
By the end of the session you’ll know exactly which configuration settings you should look at if you want easy ways to ruin the performance of your own streaming applications. Alternatively, you could use these tips to speed things up, if you’re into that…
Current 2023: The Next Generation of Kafka Summit Sessionize Event
Copenhagen Developers Festival 2023 Sessionize Event
JCON EUROPE 2023 Sessionize Event
Kafka Summit London 2023 Sessionize Event
Current 2022: The Next Generation of Kafka Summit Sessionize Event
NDC Melbourne 2022 Sessionize Event
Kafka Summit London 2022 Sessionize Event
Kris Jenkins
Host of the Developer Voices podcast
London, United Kingdom
Links
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top