Episodes
This week we're back on systems programming with Hare. A C-like language for the ages. We talk to its creator, Drew DeVault, about what he thinks we can learn from the past 50 years of programming, and how we can build that hindsight into a new language that will last for the next 100.  In among all that long-term ambition we talk cover everything from error handling, typed unions and linear types, to metaprogramming and Drew's microkernel operating system. It's called Ares, and it is, of...
Published 12/06/23
A few months ago, Michael Drogalis quit his job and decided launch 4 viable startup business ideas in 4 months, publically documenting every step of the journey. Over here at Developer Voices it seemed fun, inspired, and just crazy enough to work. We had him on the podcast a few months back just as that journey was beginning, and since he launched his first startup things have changed,. The reception has been better than he expected and the plan has been updated to go all-in on idea number...
Published 11/29/23
Integration is probably the last, hardest, and least well thought-out part of any large software project. So anything that makes the data-streaming job easier is worth knowing about. So this week we turn our attention to Apache Flink, a flexible system for grabbing, transforming and shipping data between systems using Java, Python or good ol' SQL. So this week Robert Metzger—Apache Flink expert and PMC member—joins us to explain what problems Flink solves and how it solves them reliably. We...
Published 11/22/23
Zig is a programming language that's attempting to become "the new C" - the language of choice for low-level systems programming and embedded hardware. Going into that space not only puts it in competition with C and C++, but also other newcomers like Rust and Go. So what makes Zig special? Joining us to discuss it is Loris Cro from the Zig Foundation. We talk through Zig's reasons to exist, its language design features, which parts of the C ecosystem it's tackling, and how the Zig...
Published 11/15/23
Would you ever take on a rewrite of one of the largest and most popular Apache projects? And if so, what would you keep the same and what would you change? This week we're talking to Christina Lin, who's part of Redpanda, a company that's rewriting parts of the Apache Kafka ecosystem in C++, with the aim of getting performance gains that aren't feasible in Java. It seems like a huge mountain to climb, and a fascinating journey to be on, so let's ask why and how they've taken on this...
Published 11/08/23
This week we're looking at Debezium - an open source project that taps into a huge number of databases and lets you stream data to other systems in real time. It's a huge project that covers a wide range of uses: Some people use it to replicate from Oracle to MySQL, others to do smart cache invalidation, and others to build a bridge from an existing relational database to the event-sourcing world. If you're working on a system that has more than one kind of database, it may be an essential...
Published 11/01/23
Ever read a bad README? We all have, and most of the time, we've just moved right along. A programmer that can't communicate their ideas will find no-one uses their software. And that's true even outside of the open-source world. The best software doesn't win - the best software _that people can understand_ wins. So how do we get better at communicating our code? What do we talk about when we talk about software? Joining to discuss that question is a data-streaming expert and skilled...
Published 10/25/23
As interesting and useful as LLMs (Large Language Models) are proving, they have a severe limitation: they only know about the information they were trained on. If you train it on a snapshot of the internet from 2023, it'll think it's 2023 forever. So what do you do if you want to teach it some new information, but don't want to burn a million AWS credits to get there? In exploring that answer, we dive deep into the world of semantic search, augmented LLMs, and exactly how vector databases...
Published 10/18/23
Real-time data is gradually becoming a standard requirement in systems design. Our customers are beginning to demand it, our colleagues in other departments are starting to expect it. Whether you're letting people book a taxi, recommending their next binge-watch, or delivering business reports to management, faster data is just obviously better. Or is it? Does real-time data matter everywhere, or does it just have sweet spots in some sectors and some use-cases? Is it a cost-benefit question...
Published 10/11/23
How far would you go to get the kind of database you want? How deep into the stack would you dive to re-architect a system for the kind of performance, reliability and scale you believe in? Today's guest has decided to go all in, as he's tackling the database problem from the fsync up. In this week's Developer Voices we talk to Joran Dirk Greef, whose ambitions—combined with the lacklustre performance of his project's payment system—have led him to build a new database called TigerBeetle,...
Published 10/04/23
Ever wanted to start a tech business? Michael Drogalis has done it successfully in the past, and now he's trying again (and again and…) as he makes a very public attempt to start 4 new tech businesses in the next 4 quarters. He'd sound completely mad, except he's got form: His last Kafka-based company got bought out by a tech giant, giving him enough of a safety net to try something new. And for his new approach, he's doing the exact opposite of 'stealth mode'. He's publishing every step of...
Published 09/27/23
Ask any software developer about their favourite stack, and they'll probably have strong opinions. (They might even have a snappy acronym for it, like LAMP or JAM or...) But if you ask any business about their stack, things aren't so clear. They'll probably tell you the key components, and then add a laundry list of extra parts that got glued on later. The reality is, assembling large systems gets complicated. And with more and more options coming out every year, that potential complexity is...
Published 09/20/23
In modern systems, the amount of data keeps getting larger, and the time available keeps getting shorter. So it's almost inevitable that we're augmenting our general-purpose databases with dedicated analytics databases. This week we dive into the world of OLAP with a thorough look at Clickhouse, a high-performance, columnar database designed to "query billions of rows in microseconds." Alasdair Brown joins us to discuss what Clickhouse is, how it performs queries so quickly, and where it...
Published 09/13/23
Neil Buesing is a seasoned Apache Kafka® user, and a respected voice from the Kafka community who specialises in helping companies make the best use of Kafka. And that makes him the ideal person to ask the $64,000 question: What problems can Kafka actually solve for me? Because Kafka's definitely interesting, and it can be fun, but to earn a place in the toolbox it has to make life easier.  In answering that question, Neil covers a tonne of ground, from queuing and quasi-databases,...
Published 09/06/23
How do distributed systems work? If you've got a database spread over three servers, how do they elect a leader? How does that change when we spread those machines out across data centers, situated around the globe? Do we even need to understand how it works, or can we relegate those problems to an off the shelf tool like Zookeeper? Joining me this week is Distributed Systems Doctor—Benjamin Bengfort—for a deep dive into consensus algorithms. We start off by discussing how much of "the...
Published 08/30/23
How do you get started as a programmer? And how do experienced programmers help them as they start their journey? This week's guest is a developer-turned-teacher, James Q. Quick. A former coder and developer advocate, he's s been been working on tutorials, courses and bootcamps to teach aspiring developers how to get started with JavaScript. We talk about why people get into programming as a new career, what they need to succeed, and what James thinks is the best indicator of success. We...
Published 08/23/23
Sooner or later, every programmer will have to cross the gap between their programming language and their database. It feels like it should be easy, but in practice it's always a much wider chasm than it seems, and every tool that bridges that gaps comes with its own strengths, weaknesses and opinions. This week we take a look at a relatively new library for database access—jOOQ—by chatting with its author, Lukas Eder. This episode takes in the simple questions like syntax, the thornier ones...
Published 08/09/23
Whether you're trying to ace the coding interview, sharpen your programming skills or just have some fun learning new things, the world of competitive coding has something to offer you. Some people join with dreams of hitting the podium, and plenty of others are just competing to be their better selves. Either way, Mathis Hammel is a veteran of the competitive coding scene and he's going to give us a view into that world, tell a few war stories and share some tips how you can play better,...
Published 07/26/23
"Software development has not caught up with the internet age." So says this week's guest, Rúnar Bjarnason. But what does that mean? What would a programming language for the internet age look like? Rúnar's answer is Unison. A language that completely rethinks the way distributing computing can work, from the source code up. Borrowing some key ideas from git, it challenges the way we think about code-sharing, compilation, versioning and more.  -- Kris on Twitter:...
Published 07/19/23
Have you ever been overwhelmed by the number of databases on offer? This week we welcome database expert Ben Stopford as a guide to help us map the database landscape and make sense of it all! Join us as we embark on a journey through the history of databases, tracing the path from Edgar Codd to the multitude cloud-era of options available today. Discover the strengths of various database styles and explore the tradeoffs between general-purpose databases like #PostgreSQL and highly...
Published 07/12/23
LLMs like ChatGPT are not just fascinating, they're becoming increasing useful in our working lives. They've graduated from novelty to valuable tool. But building those tools is still in the hands of huge companies. Or is it? In this week's episode of Developer Voices, we're learning how you can run LLMs on your own laptop, and how you can customize the system to make a tailored research assistant, a better documentation-searcher, and much more. All you need is a guide on which pieces you...
Published 07/05/23
Time to put another new #programming language - and its creator - under the spotlight, as we talk to Robin Heggelund Hansen, the creator of Gren. Gren is a Norwegian word meaning 'branch', which is appropriate for a language that started as a fork from its roots in Elm. With Gren, Robin's trying to create a safe, sane, #fullstack language that puts the power and elegance of functional programming working seamlessly on the server and the browser. But how and why do you do that? What design...
Published 06/28/23
What's going on with Postgres? Joining us for his perspective is Raouf Chebri, a Developer Advocate for PostgreSQL and the cloud service Neon. We catch up on what's new and important in recent versions of Postgres, what Neon have been doing to make Postgres work well in the Cloud, and what Raouf's life is like as a professional singer of Postgres's virtues. Neon: https://neon.tech/ Neon's architecture: https://neon.tech/docs/introduction/architecture-overview That CEO quote:...
Published 06/21/23
Are you trying to build the community around your software? And what does "building a community" really mean? What are we building communities for? Join us on Developer Voices as host Kris Jenkins sits down with Ale Murray, a seasoned community manager with nearly a decade of experience, to discuss her tips for building a thriving tech community.  Ale shares her insights on why community building is essential, how to identify your target audience, and how to approach community building with...
Published 06/13/23
As a developer, it's crucial to understand the various types of databases available so you can choose the right tool for the job. In this episode, we're shining a spotlight on bitemporal databases with James Henderson, lead developer of of a new bitemporal database called XTDB. You may have already created an ad-hoc bitemporal database without realizing it, but James and his team have been hard at work building a custom database that's tailor-made for situations where having two notions of...
Published 06/07/23