My new interview with @Jonathan_Blow is OUT NOW.
We dive deep into why @SinkingStarGame took 10 years to develop, the incredible new demo, game design philosophy, the success of indie games in 2026, if he’ll ever retire, and so much more!
Watch here: https://t.co/vVMQaep1bk
@Jonathan_Blow I loved the Order of the Sinking Star demo. The puzzles are thoughtfully designed, & the presentation is incredibly polished. The art & atmosphere has a beautiful, distinctive style.
I played it on Ubuntu 24.04 via Steam + Proton Experimental, and the experience was really smooth
Bjarne Stroustrup is the creator of C++ and a former researcher at Bell Labs at its peak. I interviewed him about:
• What made Bell Labs different
• Programming language design: types, memory safety, bootstrapping
• When abstraction improves performance
• Anecdotes from building C++
• Thoughts on AI writing C++
• Mistakes he'd change while building C++
Where to watch:
• YouTube: https://t.co/THHTMP9VoT
• Spotify: https://t.co/5kVNWCYEAI
• Apple Podcasts: https://t.co/jOYDGtHtd1
• Transcript: https://t.co/5jmJQWVtWp
Thank you to this episode's sponsors for supporting my work:
• Cursor 3: a unified workspace for building software with agents, check it out at https://t.co/PgHyLKgrxW
• WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at https://t.co/y8noBzGc3U
Timestamps:
0:00 - Intro
0:50 - The origin of C++
8:46 - What Bell Labs was like
17:24 - Dennis Ritchie
24:00 - When to build a programming language
31:59 - Bootstrapping a language
33:58 - C++ is not object-oriented
37:32 - Discussing type systems
46:20 - Memory safety
49:26 - Standards committee anecdotes
1:09:40 - Adding automatic garbage collection to C++
1:18:25 - Template instantiation is Turing complete
1:21:57 - Abstraction and performance
1:28:51 - AI writing code
1:35:54 - His motivation
1:39:18 - Famous quotes
1:46:48 - Reflecting on building C++
1:49:12 - Top C++ book recommendation
1:50:59 - Advice for his younger self
1:58:06 - Outro
Author of Designing Data-Intensive Applications, Martin Kleppmann, gives us a peek into "The Troubles with Distributed Systems" and why you can't assume things behave well in distributed systems:
"The whole idea is that in distributed system theory, there are certain things that we tend to assume. For example, we just assume that there's no upper bound on how long it might take for a message to go over the network. So when you send a message, it might arrive within a hundred microseconds, or it might take 10 years, and distributed system theory just doesn't make any assumptions about that sort of timing if we can avoid it. Or rather, some theory does make those assumptions, but it's a dangerous assumption to make because occasionally the network delay does become much higher than what is typical.
Another thing is about crashes. Distributed system theory just says nodes can crash, but what does that actually mean? What in practice does it mean for a node to become unavailable? Because it might be a software crash, but it might be a hardware failure. It might be somebody unplugging the power cable. It might be that the node is actually still running, but it's just become disconnected from the network.
And so, the point of this book chapter really is to defend and justify the theoretical models that we use for analysing distributed systems and to give a lot of stories and case studies to show that, actually, tonnes of stuff does go wrong.
Don't believe anyone who says, 'Oh, failures are rare. Don't worry about it. It's fine’. Actually, no. If you want to make things reliable, you really do have to worry about a whole bunch of weird, unusual, but certainly possible edge cases.
Timing is another one of those things. It's very easy to assume that your clocks are correct, and most of the time the clocks are pretty correct, but we just can't rely on it because actually they're just not precise enough on the whole.
It's very tempting to make certain assumptions that things are well behaved and in distributed systems, we just have to try to get away from those assumptions if we want the systems to work reliably, even in the face of things going wrong."
Here is an incredible discussion with @Jonathan_Blow!
- design choices for @SinkingStarGame
- live demo of engine and tooling (!)
- jai metaprogramming showcase that's used for the game
- release (both jai & Order), and what games come next!
@Jonathan_Blow it was an honor! Thank you!
[2/2] ... so along with a link to the video, I've also included a few good "recommended reading" links for folks who want to start their own dive into the history. Check it all out here:
https://t.co/vXGefHSaex
Calling all coders!🧑💻
The 2025 NASA Software Catalog is here, featuring programs developed by @NASA_Technology for our missions that you can use for your projects. Check out the free, downloadable programs at https://t.co/krKTe5xipB.
Within software architecture, few people shaped the industry as much as @Grady_Booch. Safe to say he's a true legend.
In today's The Pragmatic Engineer Podcast episode, he shares fascinating stories, insights, observations.
Listen or watch the full episode:
- YouTube: https://t.co/XjGsSCFVcg
- Spotify, Apple, or web: https://t.co/9kTm6ucJ5d
Thank you to our wonderful sponsors:
🌟 WorkOS — The modern identity platform for B2B SaaS. Learn more at https://t.co/aiAee0oF5h
🌟Sevalla — Deploy anything from preview environments to Docker images. Check it out at https://t.co/RgUEN5gda4
🌟Chronosphere — The observability platform built for control. Get details at https://t.co/l4it7Yh3tM
---
3 of my takeaways from this fascinating conversation:
1. Surprising: The US Department of Defense and the military built some of the most complicated software systems in the 70s and 80s.
In the 70s, these organizations probably had the most code to deal with - globally! - and things like distributed computing were pioneered thanks to these use cases.
2. The three axes of software architecture
Grady argues that when talking about software architecture, we should look at these three dimensions: ceremony, risk and complexity.
3. The economics of software and software architecture are always connected
Machine time was very expensive in the 1960s and 1970s, and software had to be written from scratch. Good architecture meant writing highly performant code to utilize these rather limited machines.
However, these days, machine time has gotten very cheap, and there are also plenty of “building blocks” at our disposal: from frameworks to cloud services. Software architecture is frequently still connected with cost: to decide on what services and technologies to use, taking the cost aspect into account!
I hope you enjoy this conversation - together with a history overview of the last 50 years in software - as much as I did! Thanks a lot @Grady_Booch
Here's the links for my conversation with Gregory Aldrete:
YouTube: https://t.co/1fSUP0QG19
Transcript: https://t.co/YA4FWE1XV3
Podcast: https://t.co/7AZXIxZ0sh
Everyone assumes the best AI coding workflow is: let AI generate V1, then maintain it by hand.
I'm finding the opposite works better. Write the first version yourself — pour your taste and instincts into it. Then let AI handle the features, cleanup, and maintenance.
A hand-written codebase is a style guide written in code. AI reads it and extends it faithfully. Without that foundation, everything regresses toward the mean.
The human provides the soul. The AI provides the scale.
https://t.co/GIJxbbGnCc
I've found this myself. Certainly maintaining what the AI wrote by hand is insanity. For small tools I let the AI do it all, but for larger libraries I get much better results from getting the AI to debug and optimize it and add features. You must insist that it writes good tests though.
I’ve been saying it for a long time: Transformers and LLMs are not suited for forecasting. But the hype train never stops. The logic some people use is laughable:
“LLMs work well in NLP, so of course they’ll work in forecasting!”