Overcommitted | Software Engineering and Tech Careers Insights

Overcommitted brings you software engineers who are genuinely passionate about their craft, discussing the technical decisions, learning strategies, and career challenges that matter.



57: Build Real Tools, Skip LeetCode: Systems Programming for Career Growth with John Crickett

Tech careers don't need to mean grinding LeetCode. In episode 57, John Crickett — 30+ year engineer, Coding Challenges creator (90K+ subscribers) — makes the case that programmer productivity skyrockets when you build real tools instead. We dig into why your o...

Show Notes

Tech careers don't need to mean grinding LeetCode. In episode 57, John Crickett — 30+ year engineer, Coding Challenges creator (90K+ subscribers) — makes the case that programmer productivity skyrockets when you build real tools instead. We dig into why your own Redis, Git, or shell beats practice problems, how Coding Challenges went from $17 domain to viral sensation (1,500 signups in one weekend), and what it means to level up through systems programming.


Links


  • Coding Challenges (Newsletter): https://codingchallenges.substack.com/
  • Coding Challenges Website: https://codingchallenges.fyi
  • From The Challenges - Git: https://codingchallenges.substack.com/p/from-the-challenges-git
  • Will AI Kill Coding?: https://codingchallenges.substack.com/p/will-ai-kill-coding
  • Using AI To Solve A Coding Challenge: https://codingchallenges.substack.com/p/using-ai-to-solve-a-coding-challenge
  • Tech Lead Journal #178 — John Crickett: https://techleadjournal.dev/episodes/178/
  • Confessions of a Data Guy — What Makes Great Engineers: https://www.confessionsofadataguy.com/decades-in-software-engineering-what-actually-makes-great-engineers-john-crickett/
  • Coding Chats Podcast: https://open.spotify.com/show/59GU7gzyK2RdIDVkhNS2nt
  • John Crickett on GitHub: https://github.com/johncrickett
  • John Crickett on LinkedIn: https://uk.linkedin.com/in/johncrickett
  • John Crickett on Bluesky: https://bsky.app/profile/johncrickett.bsky.social
  • John Crickett on X: https://x.com/johncrickett


Hosts

Episode Transcript

Bethany (00:01.434) Welcome to the Overcommitted Podcast, your weekly dose of real engineering conversations. I’m your host this week, Bethany, and I’m joined by…

Brittany Ellich (00:10.119) Hey, I’m Brittany.

Erika (00:11.875) and I’m Erica.

Bethany (00:14.042) We met while working on a team at GitHub and quickly realized we were all obsessed with getting better at what we do. So we decided to start this podcast to share what we’ve learned. We’ll be talking about everything from leveling up your technical skills to navigating your professional development, all with the goal of creating a community where engineers can learn and connect. Today on Overcommitted, we are joined by John Cricket, a software engineer with over 30 years of experience who’s on a mission to help developers level up by actually building things.

John is the creator of Coding Challenges, a weekly newsletter with over 90,000 subscribers that gives engineers real-world projects to build. Think your own Redis server, your own Git client, your own shell. He’s also the host of the Coding Chats podcast and has some really thoughtful takes on how AI is reshaping the craft of software engineering. Welcome, John.

John Crickett (01:02.958) Hi, thank you for having me and thanks for the warm welcome, Bethany and Brittany and Erica.

Bethany (01:08.886) Absolutely. So excited to chat with you. To kick us off, is there anything you’re currently building or learning that has you excited right now?

John Crickett (01:19.882) many things, many things. How long have we got?

Bethany (01:24.208) We got all day! We can edit.

John Crickett (01:26.658) So, okay, well, I’ll try and cover a few of them then. So AI, I mean AI is why I got into software engineering, not software engineering, I got into programming 40 years ago when I was a nine-year-old kid, because I wanted to create AI. And nine-year-old with computers in those days, wasn’t going to get very far, so always been passionate about AI. So always happy to learn more about that. And it’s a massive field. It’s only a small subset of computer science, but…

Computer science is big enough you could never learn it all. AI is still big enough within that niche you could never learn it all. So lots of fun things there. I’m also having a little bit of fun recently revisiting. Literally yesterday I started looking at Lisp. Language from AI, going back almost.

What is it? 70 years nearly. Going back since was invented, I’m finally getting around to learning it. Thanks to a guest that’s coming on my podcast shortly. Sent me his book, so that looks like a really fun way of learning about it that I’m digging into. What else am I digging into at the moment? I’m trying to slowly learn Swift, build a project on Mac, build the first native app on Mac that I’ve ever done. And probably many more things. just, whatever takes my fancy. I’m a little bit drawn to shiny things and easily distracted.

Bethany (02:45.231) That’s awesome. I think that’s part of the beauty of software engineering is the shiny things and especially how quickly our field is iterating, even now. What’s so interesting about Lisp is, is that still relevant today with modern AI or is it more a relic of the past, would you say?

John Crickett (02:49.751) You

John Crickett (03:06.231) So I am far from the expert to ask about that. But I would say yes, it’s still relevant. One of the beautiful things about Lisp is it’s a very simple structure. And that lends itself really well, I think, to actually finally making genetic programming happen. So everyone’s talking about LLMs at the moment. But one of the really cool things I think you could do, I think some people at Google are doing this, but I’m not sure, is you could write your code in Lisp with an LLM.

Then you could use genetic programming ideas to evolve that code and know that the code you can abuse genetic programming would still be valid. I think that’s one of the big challenges from 25, 30 years ago when I last looked at genetic programming, was how do you produce code when you do crossover and the mutations that’s still valid? Well, Lisp lends itself well to that, but everything was too slow 30 years ago to evaluate it. Now with an LLM to generate it and modern computers, I think you could actually do something interesting there and…

I think people from Google are, but I’m not certain.

Bethany (04:05.441) That’s really interesting. We will make sure to link to your podcast. So if anybody’s interested in learning from the list back for it as well, they can follow along. Awesome. So staring back to coding challenges, I understand you started it back in 2023 while you were learning Rust. And now it’s over, like we mentioned, 90,000 subscribers. And it really focuses on this idea that engineers should level up by building.

tools that they interact with daily. like Redis, Git, Shells, things that we interact with as software engineers rather than grinding those algorithm problems. Did you have a moment, like an aha moment that made you realize that this was a approach that resonates with people or was it something that you have always been drawn to?

John Crickett (04:58.221) So I’ve always followed this approach. I’ve always hated, you know, I learned programming from a textbook because I’m old. You know, I hated opening a book and they’d say like, like this factorial function, know, another factorial function. I want to like something more interesting. So, you know, I grew up learning to program by trying to like AI, which of course didn’t ever far and trying to do computer games, which is the other thing because, you know, back 40 years ago, most of us, computer games quite new, it’s exciting.

You got to see some coloured pixels move across the screen and do something and it looked a bit more exciting than a factorial function where you factorial 5 and it goes 120 and you’re like, brilliant, but it’s not very exciting. It’s not very interesting. Can’t show your mates at your 10 and go, hey, I made it, do math. No one’s impressed. I just think you’re bit of a nerd. So, yeah, I was drawn to trying to make things happen and I’ve always approached that. So I tried with AI.

I failed miserably. I tried with games in the early parts of my programming journey. And then as I sort of entered the workforce and started working professionally, then I started trying to build small applications. How do I actually ship something that uses this? Because, you know, I don’t just want to learn Perl as it was then, or Visual Basic, or C. I want to learn how to build an application with them. How do I ship something with this? So one of the first coding challenges I did was the Huffman compression, which…

I did for the first time in 1998 when I was learning C. And I’ve done it since in several different programming languages as a way of learning that language and building something real. I mean, it’s not very impressive with Huffman encoding to compress a text file. Yes, you get some compression, but it’s not as good as GZIP. But it’s still building something real and learning a whole bunch of the programming language and shipping something. So I’ve done that approach, let’s say, for decades now. It became coding challenges.

Because, like a lot of people, I got laid off in 2022. you know, the economy’s changed and things happened. And my wife pushed me to start another business. Said, you know, you’ve always been most secure in employment when you’ve been running your own business, do another business. And I’m terrible at business ideas. So I had seen this thing about personal branding, seen a few talks on some podcasts about developers building an audience and building a tool for the audience and thought, hey.

John Crickett (07:24.173) I like lighting, personal planning seems to be lighting, that suits me. Maybe I can build an audience, figure out a tool to build for that audience, and then I don’t have to come up with a business idea, can let the audience find it. So I started writing on LinkedIn with about 3,000 followers, figuring I’d try and learn how to build an audience, and then I could let that audience lead me to building a tool for software engineers. That would be a business idea. And along the way, I saw a post.

from a European VC talking about how he’d 750,000 euros in his business two years ago, and then he wanted another quarter of a million euros to get to their MVP. And that just triggered me a little bit because back when I started my first business in 2001, it was just the dot-com crash, the telecom crash. There were a whole lot of people that were excited about this idea of dot-coms that had been made redundant and were taking their leniency payments, remortgaging their houses and coming along saying,

I’m going to build a dot com, I’m going to invest it all, and this time next year I’ll be millionaires. Typically six months later I see them all and they’re bankrupt, I need a job now. I’ve built this thing and nobody came. It’s like, well, you didn’t validate your idea, you didn’t test it. You just threw money at building a dot com, you put it out there and you got precisely zero visitors because it’s not as simple as you build it they will come. You’ve got to actually do some marketing and figure out how to get some eyeballs there. So…

Shortly after seeing that and seeing so many people lose out, I led about Lean Startup Ideas and Ideas OMOP and I’ve always been struck for that, mean, just validate your idea. So kind of tongue in cheek and a little bit just in being triggered by this idea of putting a million euros and two years of work into it. I put a post on LinkedIn with my three and a bit thousand followers at times saying, founders, if you spent…

more than $100 and take more than two weeks to build it, it’s not an MVP. And I didn’t really think anything of it, but that was my first somewhat viral post, got about 100,000 views. And mostly people just tell me what an absolute freaking idiot I was, that you don’t get two weeks of software engineers time for $100. And it’s like, well, yes, but if you’re a founder, that two weeks is your sweat equity, you do it yourself. Now $100 is, you know, buy a domain name and you validate your idea.

John Crickett (09:47.649) And a lot of people as well as Thomas, a freaking idiot, said this was impossible. So I thought, well, I’m trying to validate some ideas. Let’s actually, you know, walk the walk. By the main name, $17 for codingchallenges.fyi. What am going to start? Well, I’m trying to reach software engineers. What can I help them with? I can help them learn. I’ve mentored lots of people, so I’ve been a manager for many years.

I can help them learn. how do I learn? Let’s just write about that. I launched a newsletter, heard about this page newsletter thing on Substack. That will be my first test of validating a business idea. So sure enough, I had the idea, I think on a Monday morning, wrote about it, launched it on Friday. So less than my two weeks, $17 and a domain name. Substack’s free to set up a newsletter, launched. Mounted it, I think, on the Friday evening UK time.

I thought if I get a thousand people by the end of the year, there’s maybe some legs to this idea. Maybe I can build something off the back of this. 1500 people signed up by the close of Sunday.

Bethany (10:56.641) And were all those folks like, or do you think it was really because of that following that you accumulated on LinkedIn? Do you think it was word of mouth? I mean, obviously it was a surprise if you were anticipating a thousand by the end of the year. What do you think helped you get the so many in a weekend?

John Crickett (11:19.244) I think it just resonated. At the time I had 3,200, 3,300 followers on LinkedIn, so a fairly small audience, and most of those were people outside of software that I’d networked with over the years from building businesses previously. So it wasn’t a particularly big audience, I didn’t have a big platform on LinkedIn at the time, but it just seemed to resonate with people. A lot of people don’t like leak code, they wanted to build something a bit more real.

I think that resonated, people talked about it, people shared it. And there was a nice little community of software developers that kind of met on LinkedIn at that time. So yeah, it just seemed to take off and work on its own.

Erika (12:02.501) Yeah, it’s really heartening to hear that story because I’ve heard some discussions of like self promotion and sorry, Can you not hear me?

John Crickett (12:12.371) I can’t hear Erika, by the way.

Bethany (12:17.429) I can hear Erica.

Brittany Ellich (12:19.759) yeah, I can hear. I can’t. Let’s see here. I can hear you.

Bethany (12:24.761) Can you hear any of us? Or I’m talking to time. Okay. no.

Erika (12:26.509) I can hear you.

John Crickett (12:28.019) I can hear Bethany in Brittany, but not the hiker.

Erika (12:30.843) your height.

Erika (12:39.099) Testing, now.

Bethany (12:43.607) I can, huh.

Brittany Ellich (12:44.741) I can still hear you, but can you change your, can you use like just the MacBook one?

Erika (12:51.065) Yeah, let me try that. I can’t switch mics long.

John Crickett (12:57.747) Isn’t technology great? We all gladly work in software and tech.

Brittany Ellich (13:01.351) Every time something like this happens, yeah, I’m always like, promise I’m an engineer. Like, I know how to work with computers.

Bethany (13:02.883) My brain is going. Yeah.

Bethany (13:09.711) My brain’s just going like, how can one person on this call not hear the other person? How does that bug happen? That’s wild.

John Crickett (13:14.496) Ha

Brittany Ellich (13:16.827) That’s true.

Bethany (13:22.927) Aww.

Bethany (13:29.995) Okay, Sorry, Erica.

John Crickett (13:31.775) You could stick it in the chat if you like, okay, and I’ll try and answer.

Brittany Ellich (13:41.846) there we go.

Bethany (13:41.935) she said it was a long thought.

John Crickett (13:46.539) That’s a shame.

Brittany Ellich (13:47.845) Huh.

Bethany (13:52.493) I still hear typing so I’m waiting. Yeah, why don’t you try it? We’ll pause.

Bethany (14:02.425) so odd, man. I have never experienced that at all on Riverside. That is so wild.

Brittany Ellich (14:09.093) We’re getting all of the lucky side problems with John today.

Bethany (14:13.328) Yes

John Crickett (14:15.723) Just make sure none of us leave early and mess up the other side that way.

Bethany (14:18.863) Yes.

Brittany Ellich (14:19.151) Yeah, that’s true. That’s true. Good point.

John Crickett (14:22.379) and that once on my podcast and messed it up and that was quite embarrassing.

Bethany (14:25.526) No.

Brittany Ellich (14:25.999) Yeah, have you? Do you use Riverside as well then?

John Crickett (14:28.714) Yes.

Brittany Ellich (14:30.811) sense.

Bethany (14:31.191) Makes me feel better that you’ve been in the same boat you understand with the riverside.

Brittany Ellich (14:35.367) Yeah.

Erika (14:38.678) Okay, is that better? Can you hear me? Okay. Great. Okay. it’s really heartening to me to hear that story of how you started coding challenges. And I think I’ve heard some people say in the whole topic of self-promotion that

John Crickett (14:40.841) Yes, I can.

Brittany Ellich (14:43.065) Yay!

Bethany (14:43.231) Amazing. Okay. And,

Erika (15:07.32) a couple things, like it’s not even worth trying because YouTube, Spotify, whatever, the algorithm is too strong to ever work against. I’m going to have to do all this marketing magic to even get out there. And also this idea that you kind of have to fabricate something or be some kind of persona or be someone in order to amass a following, but…

I mean, in my experience, the people who I enjoy following the most are people who are genuinely interested in what they’re doing. And that’s exactly your story. And I think especially in software engineering, we can smell the fake, like sort of the fake, the fakeness in somebody trying to sell us something. So I think it’s one of the things I enjoy a lot about.

being a part of software engineering communities is this idea that, yeah, like when you have interesting content that is technical, that is realistic, that’s genuine, people really enjoy that. you don’t, like, if you do have some kind of algorithm boosting you, great, but even if not, people will share and reshare things that are uniquely good. And yeah, it’s cool to hear those.

John Crickett (16:35.307) you

Erika (16:36.524) those stories where that’s, that’s what happens.

John Crickett (16:40.203) Yeah, the thing that I think a lot of people forget is, particularly with software engineering, know, we have, it’s probably a bit skewed recently with how recruitment has been, but we have this very pyramid structure that, just to go back two years ago with Stack Overflow, the stats show that 51 % of software engineers have less than 10 years experience. So it’s been a very fast growing industry with a lot of people who are…

you know, very junior and a lot more people coming up. What that means if you think about trying to build a personal band or build a following or just reach people and find your niche is you can always think that there’s going to be somebody behind you wherever you are in your journey. There’s a lot more people who are one year, two years behind you in learning that thing that you’re interested in. So rather than try and be a character or be something you’re not, simplest way is just to go.

this is what I’m learning or this is how you can learn X. Because again, if I tell somebody how to learn, I don’t know, Visual Basic, say, I haven’t touched it for 28 years, I don’t remember what it’s like to be a learner and that where somebody that, you know, do people still learn Visual Basic? But somebody that’s just learned it now is far more familiar with that pain, far more familiar with the current state of the tooling and maybe PHP might be a better example.

Again, last time I did PHP it was version five. Is it eight or nine it’s on now? know, somebody that’s learning that, even if they’ve only got one year experience, somebody that’s just entering the workforce or somebody that’s just leaving university, you are, you can relate far better to them and know the pain that they’re going through than anything I could write about it. So, and again, that doesn’t necessarily mean that you have to be somebody with 30 years versus somebody with one year’s experience.

There’s whole bunch of us learning AI at the moment, say, maybe learning agentic frameworks. You might only be six months ahead of learning somebody. You might be two years into your career, but six months ahead in that journey than somebody else that’s been in this career for 30 years. So there’s always somebody that’s behind you on whatever journey you’re going that can benefit from your recent experience, your, is the pain I’ve just been through recently, this what I struggled with. I think too often people forget about that.

John Crickett (19:01.886) The downside with social media though, and this is something that bugs me a little bit, is when you engage with somebody’s content, when you comment on it, you amplify it. So there a lot of people that are pushing things that are maybe incorrect or pushing hype, and the trouble is a lot of people pie on and say, that’s long, this is ridiculous, but they forget that they’re then amplifying that message and drowning out.

the people that maybe are teaching the correct thing. So again, if you want to be providing something genuine and teaching people and finding a niche of creators that are going to collaborate and focus on putting forward your message, promoting your niche and whatever, and try and stay aware from amplifying the voices that don’t fit that.

Bethany (19:54.352) Totally agree. I feel like being on social media in this day and time, there’s so much rage debate because it leads to engagements that when something makes somebody angry, it probably gets more engagement than something that makes somebody feel good or that is accurate because those are harder to contend with. Or not contend with, but engage with.

John Crickett (20:16.49) Yeah, well, back to my comment about the viral post that I got at first. It wasn’t intended as a rage bait, it was just more a frustration at seeing people wasting time and money on this. But it triggered a bunch of people and it went to over 100,000 views when I had a tiny audience.

Bethany (20:36.673) Absolutely, absolutely. And I loved your,

stories about really remembering that beginner mindset and how folks approach problems as a beginner. So I know you have, you mentioned your newsletter from the challenges on Substack and that commonly breaks down mistakes that engineers make while tackling large projects. Is that something that you resonated with like from learning engineering as a beginner?

Is that something that you’ve just seen others making that mistake and you’re trying to protect them against? I’m curious what made you focus on those engineering challenges versus maybe teaching specific languages or things like that.

John Crickett (21:28.264) So I needed a bit of variety to keep me interested in writing the newsletter, so I was churning out a challenge each week. So I’d had a lot of people asking for tutorials or asking for, show us how to do these, not just the challenges. And I very much positioned it as I wanted to be language and platform neutral. So I try and make the challenges as tech agnostic as possible.

Some of them you could build a CLI UI, could build a web UI, could build a native GUI, you could build a mobile app. So you could adapt it to learning whatever you wanted within what suits the challenge. So I also wanted the feedback to be platform and language agnostic. So it’s no good me saying, this is how you should do it in C++. Use smart pointers and so on.

only about 5 % of the audience is using C++. So it wasn’t going to resonate with a lot of people. So I wanted to pick out lessons that I’d seen. And one of the things that I found incredibly useful earlier in my career was I was lucky enough to work with and know some very experienced people and get code reviews from them. And they treated code reviews as way of sharing knowledge of like, hey, have you thought of this? Take the C++ one. You’re using their pointers here. Could you use a smart pointer?

I was like, smart pointers, what are they? Cool, I want to learn about that. So that was a great way of learning. So I wanted to try and bring some of that into it. And slightly earlier in the process, I’d created a GitHub Leap where people would share their solutions. So that then gave me something to go look and say, well, you know, I’ve got the WC coding challenge. How have people solved that? If I go and code with you, not all the solutions, because there’s about 130, I think now.

But if I go and code review 20 or 30 of them, there’s some common patterns, some common mistakes people make. And a great one with WC, for example, is WC is a word count utility that also counts lines on Unix. And it’s a very good example of a great little Unix program. does one thing, one and a bit things, but it does really well. And it’s designed to process streams. It doesn’t think of it as a text file, and I say it’s a stream.

John Crickett (23:51.56) Because of that, then it’s able to process any stream of data. Well, a lot of people immediately load WC and open up the entire file, to memory. So that’s great if you go and test that on a file that’s 100 kilobytes, or I think the 300 kilobyte example I’ve got was from Project Gutenberg, one of the books. But nearly nobody’s one will actually work like the little WC and will handle 100 gigabyte files.

So I extended the challenge recently and I had handed it 100 gigabyte file. And 99 % of the solutions will fail on that because they just opened up, led the entire file into memory and then tried to process it. And not very many people have a laptop or desktop that will process 100 gig file in memory. But that’s a great learning technique to actually then, it’s fairly trivial work to change to process a stream. And that’s a transferable skill because if you think about processing a stream,

You can now process stream over network, you can process it from a TCP connection, you can process it from a pipe, you can process it from a file, and you get a whole different set of skills. So I wanted to pick out some of those lessons and introduce people to these other areas that you might not be familiar with.

Bethany (25:07.033) That’s really cool. mean, doing some of the Leet’s code style problems, they have something similar where they’ll have the base case and it’s very easy to get that to pass. But if it’s not a good algorithm, it’ll definitely fail. So that’s cool translating that almost to your real world problems and introducing that scale to these things that people actually are contending with day after day rather than maybe these esoteric algorithms.

that we don’t necessarily have to engage with as much.

John Crickett (25:40.478) Yeah, because realistically, when you deal with some of the leco stuff, looks at how do you turn something that’s order n squared to order n or whatever, when you’re dealing with those, it’s normally going to be something like processing a stream of data and doing some calculation on it. So thinking about some of those elements is kind of the precursor to getting to the point where you need to worry about how that algorithm scales. How does your basic infrastructure scale?

Bethany (26:08.463) Definitely, and I love being able to, or that a lot of folks take for granted these tools that we use every day and maybe aren’t contending with the underlying technology. So I think by building it, it also helps folks understand how things scale. So if something doesn’t scale, they can more accurately debug it or they’ve had more encounter with what’s under the hood than maybe others to

be able to leverage these tools more intelligently, which I know with AI, there’s a lot of talk on eroding skills or eroding, like you’re not going to use your skills so you’ll lose them. I’m curious what your thoughts are, especially with having coding challenges, if this is something that you think will be a…

an with AI or if it’s something that we just really need to make sure we understand the underlying technology even better now with AI usage and it helps us.

John Crickett (27:16.361) So I’m going to tie that back to WC if I can and start with one of the reasons I like the command line tools like WC and I picked some of those out is that they were built 30, 40, 50 years ago, some of them, and they still scale because they all have this very simple interface. They do one thing, they do it well, they process a stream of data, they don’t particularly care about it. They’re all text based, they’re command line based.

This Unix system has pipes and the ability to pass stream from one player. So you take these bunch of simple components and they can be put together to quite amazing stuff. There is a course on Coursera on doing data science with Bash. Because there’s so many powerful, simple tools, but combine them together, you can build very powerful data pipelines in Bash. And I think that the Unix philosophy that is well described in the book, The Art of Unix Programming, is so transferable.

So it started with those command line programs that process streams. You can scale that to building microservices and doing things over less API, to building things in the cloud and queues and all your vent-driven architectures. All the same ideas transfer. And I think we’ve had that skill illusion for the last 30 years before AI. We’ve come across very few more recent software engineers that understand what a pointer is, understand memory management.

that have ever written C or low-level language. And you see that we keep reinventing the wheels because we don’t understand some of those underlying concepts. So I think there’s a lot of knowledge we keep forgetting, like the ideas from the art of Unix programming, cause us to reinvent things, cause us have forgotten a lot of the lessons we had in the past. And…

So I think we’ve had that scale lotion as we’ve got high levels of stack and I quite often see people complaining about Python, for example, saying it’s slow because it’s interpreted. And OK, it’s a little bit of a nitpick, but one of the things that bugs me there is we’ve lost this understanding of what does it mean to be compiled and interpreted and does it matter? And also…

John Crickett (29:38.473) And the fundamental underlying important thing to understand is that languages aren’t compiled or interpreted. Languages are languages. You can go away and build an implementation of a language that is interpreted. You can go away and build one that’s compiled. You can find an interpreter for C. You can find a compiler for Python. Basically, C Python is a compiler that compiles its bytecode. Java is compiled to bytecode as well.

Both Java and Python are then going on a virtual machine. So they’re interpreting the virtual machine. So Python, for example, is compiled and interpreted. So is Java. But people say Java’s compiled and Python’s interpreted. You know, they’re not different. They have the same infrastructure. And what that misses then is that people don’t have that basic understanding of what they’re working on. And Java can be so much faster because the virtual machine then has the hotspot compiler.

which is just-in-time compiler. And if you understand what that’s doing, you understand why we can then have that in Python, and Python is getting a just-in-time compiler. You start to understand why JavaScript is so fast in lot of the browsers, because browser manufacturers are putting massive investment into just-in-time compilers.

So a lot of that fundamental knowledge, I think, has been lost as we’ve evolved for the last 20, 30 years as people have been working more abstract, which is a great thing, and we could be more productive. But I think if we’d focused a bit more on learning the fundamentals, everyone would be in a better position. And I have the same comment with AI and people saying, AI is going to like the code, so you’re out of a job as a software engineer. Well, software engineers have never been about

just writing code to me. When I, and again, sorry, I’m old, I went to uni in 1995. But when I did my computer science degree and we talked about software engineering, which, you know, UK universities tend to view computer science as an academic subject and it’s almost a dirty word that you’re going to use this for a career. But at the time when they talked about software engineering, the software engineering life cycle was you met a customer and you said, what do you want us to build? All the way through to you delivered.

John Crickett (31:54.469) floppy disk in those days to the customer, installed it on their site, went for acceptance tests with them and they saw that it worked and did what they wanted. The coding was a little tiny bit in the middle, where now I see people saying, well, I just want to code all that software engineering. Well, that’s not what software engineering is. You have to talk to a user, get requirements, do some analysis, figure out what you’re to build. And yes, we don’t want to do that in a waterfall way because there’s so many problems with that.

doing it in some kind of agile approach would be good, but we still have all the same steps of you have to do a lot of thinking. And AI, it’s great at churning out code, can be problematic as well, but it can also be used for churning out requirements. It can be used for helping you think through your design. And just like humans, it can make mistakes there. It can have gaps in its knowledge that lead to hallucinations. It’s not.

intelligent, it’s not rational, it doesn’t think, doesn’t stop it from being incredibly useful. So I think we’ve been losing those skills for many, many years, probably not helped by this whole bootcamp notion of you can learn to code in 10 weeks and be a software engineer, which I think has led to this belief that software engineering is just coding and that you don’t need to learn the rest of these things. And…

Again, I don’t think you need a degree to be a software engineer, so I don’t want to gatekeep, but I think we have to be aware that it’s a big field and there’s a lot of work there and there’s a lot of work involved. yeah, sorry, sorry to lambly, but I think the skill erosion has been happening for a while and for people that only view it as coding, maybe it might have lowered a little bit of that, but there is much more to the job. And I’m quite excited because I suck at JavaScript and HTML and CSS, so.

I can now use AI to generate for an end that doesn’t look like a five-year-old drew it when they were feeling ill. And I can build some great software with that. And I can focus on the bits that excite me of problem solving. And then when I want to get into some hardcore code, I can go and use Lust or Go. And I can go and nerd out and line the code. But I can now achieve far more. So I think it’s great. And it opens up opportunities to extend your skills into other areas too.

Erika (34:15.065) Yeah, it makes me think like the constraints that we’re working with are still the same too, like CPU memory, time, space, you know, it’s all the same. Nothing has changed since when you first started and now we’re, but we’ve sort of abstracted away not only some of the like languages,

like how close you are to the memory management or the usage. then, yeah, I guess like the compute itself, like we don’t work on a mainframe anymore. We work on cloud instances and that kind of stuff. So you, as I said, you do a box, you, you know, and we just have more compute at our fingers most of the time now, like the…

It’s just more powerful, they’re faster. And so I think, yeah, we sort of get into this false sense of security like, well, you know, it’s fine. It’ll run fine. And then you get into these edge cases or when you try to scale or like you said, like read a file that’s greater than a certain size and it won’t even run. We realized that.

It’s still the same. It’s still the same constraints. yeah, it’s hard to understand that stuff. Yeah, I mean, you can learn kind of the basics in, like you said, 10 weeks or whatever, but then really digging in. Yeah, we have a book club as a part of our engineering community. And one of the books that got thrown out was like computer systems, a programmer’s perspective.

which I’ve read through before and it is really hard to understand. And yeah, I I’m still kind of processing. I got a lot from it, yeah, it’s not easy for sure when you really dig down. And yeah, I feel like your approach of providing that kind of look behind the tooling is…

Erika (36:38.154) is a nice middle ground at least to be like, OK, you’re using this tool on a daily basis, but what does it actually do? Yeah, and that’s at least one layer deep than banging a dance to wall and wondering why it doesn’t work.

John Crickett (36:55.271) So there’s two things I’d love to pick up on that, Urke. One, you’ve mentioned we don’t work on mainframes anymore. Again, I mentioned that our industry is growing and a lot of people have less than 10 years experience. We’ve got a lot of new people coming in and it’s been expanding massively. One of the interesting things, maybe interesting is not quite the word, but one of the effects of that and effects of social media is we have…

shrunk software engineering down to almost web development and forgotten that there was a massive field outside that. So one of the things that shocked me, I think about 18 months ago when I responded to a comment about mainframes is I went and looked at the market and the mainframe market is bigger than it’s ever been before and it’s still growing. And I was shocked by that because I remember I said I entered the

I entered the workforce in 1996 and I thought mainframes were dead then. Everybody said, if Cobalt’s dead, mainframes are gone. And 30 years later, the mainframe market’s bigger than it’s ever been. There’s a new one shipping, IBM is pushing the AI features of their latest mainframe, and that’s a growing market. And I’m still amazed by that because I don’t actually know anyone after 30 years that works on mainframes. That’s not true. I interviewed somebody on my podcast a while back.

as mainframe security, which is also a field because there’s so much financial transactions going through them. So we never see it talked about in social media hardly, but that is a massive and growing field. And when I then looked at that and I say shiny things distracted, I found that people still like in cobalt courses. There’s one university still teaching a course and got high demand. There are

Cobalt courses, think, are new to me with 23,000, 24,000 people that have taken it and reviewed it. So they’re doing massive business. I know lots of Amazon and the latest books teaching Cobalt were from like 2023, 2024. So we forget that it’s a whole big section of the industry that you don’t see talked about. And the same for a lot of people forget there’s a whole massive world doing embedded devices. Again, another…

John Crickett (39:19.023) strange one I found, it’s years since I’ve worked on hardcore embedded software. And when I did, I was trying to get people to move to C++ because I thought it was a much better language than C.

and that was 26 years ago. C is still the predominant language for embedded, and much as people are trying to push lust, Python is the third biggest language in the embedded world by far, and is widely used in embedded devices. And again, that kind of contrasts with, if we say Python is interpreted in slow and wasteful memory, but it’s yet one of the most commonly used languages on small embedded devices. And that’s partly because of IoT, which again,

is a massive market, but we hardly see that presented on a lot of social media and a lot of people talking about it, where most of the world seems to talk about web development and JavaScript and TypeScript. So, yeah, we forget that it’s a massive industry. are people building software for all sorts of things. And some of these things that we think of niches like mainframes are bigger than the whole market was when I started my career. That’s how fast we’re growing.

You also mentioned peeling back the layers and understanding how they work. I think that’s so useful. And one of the things that I’m doing in the coding challenge soon, and I’ve had quite fun doing a few talks on, is building an AI agent. There’s so many people that get carried away with, I’m to write my core.agentsMD, I’m going to write skills, I’m going to write this plugin, and I’m going to write subagents and so on. But at the end of the day, an LLM is just an API that you call over the rest.

and you pass it some JSON. And all these things clap down to you passing some JSON to a LEST API. So I’m looking forward to doing the agent coding challenge and taking more people through that so they see what a coding agent really is and then have a better understanding of what’s happening and how they can use that LM and what it’s really doing so they can leverage it better.

Bethany (41:21.231) I’m so excited for that. Especially working on a co-file API, that’s something that honestly I’d love to understand more of the agent side of things and the prompting side. But the request side is very near and dear to my heart for sure. But that’s such a great perspective on the market as a whole. think oftentimes we get so focused on what we’re doing or the new

saying that web development’s dead, that we do forget that there’s a lot of technology and very important technology that lies on older stacks and other things that the industry kind of says, we don’t need to worry about that. So I really, really appreciate that nuanced take. And as a…

We’re kind of coming up to time, but I am curious before we go to our fun segment. You are doing a lot. You’re running the coding challenges, Needless Letter, the coding chats, podcasts, the YouTube channel, your LinkedIn, probably staying up to date with the entire industry as well and trends there. So as this is over committed, how do you manage all of that? And do you have any tips or takes on sustainability in doing that?

this is your business and running your business and protecting that part of yourself.

John Crickett (42:49.254) think the basic answer there is I’m over committed. Yeah, it’s…

Back to what I said earlier about trying different things and validating them. So some of the things I’ve done have been attempts to find out what is the right business for me, what works for me. So the validating ideas and pulling back on the things that I don’t enjoy or don’t work or don’t provide a good ROI for the time or finances. Secondly, I get help with some of it. So the podcast, for example, is really easy.

And that basically boils down to, I have a one hour chat with some lovely people, learn something interesting. That’s a lot of fun. All the hard work is done by my wife who edits the podcast. So she spends hours editing it and putting it together afterwards. So the podcast is just a lot of fun and a nice hour for me chatting to somebody interesting. The five or six hours that goes into editing each episode and then all the extra work is all done by her. So I’m really grateful for that and that makes it a lot easier. The coding challenges, again, it’s…

a lot of them ideas I’ve had or they’re things that I’m curious to learn. it almost feels like fun and play to go and create a lot of these things and I’m thinking, how does that work? How can I pick it up? How can I turn into a coding challenge? So it’s quite easy to lose hours digging into that and have fun doing that.

Bethany (44:17.007) That makes a lot of sense. think fun is really the secret to all of it. That’s, that’s, I think, an honest and refreshing take to being overcommitted. All right. So I am very excited about our fun segment today. I know we’ve talked a lot about language being language agnostic and how specific languages might not work or it might not matter. can, you can…

kind of take and pick what you want. I did run into a blog post while researching where you ran a Mandelbrot set renderer that you wrote entirely in brainfuck, which is very, I read it and I was like, have no idea what’s going on here, but I love that. So I thought we’d do a quiz where we guess whether the programming language is real or made up.

John Crickett (44:58.182) You

Bethany (45:14.807) So basically just shout out your guests. I won’t contribute because I do know the answers, but yeah. So we’ll start out with LOL code, which is a language where you write code using phrases like hi, Ken has, and K thanks, bye for our millennial listeners.

Erika (45:35.276) I think this one’s real.

John Crickett (45:35.866) I think that one is.

Bethany (45:39.097) We’re land on real? It is real. Yeah. Okay. Next.

Brittany Ellich (45:40.955) I think so. Nice. I feel like it’s got to be called LOL code though. I feel like there’s probably a debate on the internet about whether it’s LOL code or LOL code.

Bethany (45:52.528) Oh, you’re so right. Yeah, it probably is lolcode, but we should ask the creator and get that validated. Okay, next is Wendy, a functional language designed for writing smart contracts on the Ethereum blockchain.

Erika (45:59.928) Yes.

John Crickett (46:13.199) don’t know.

Erika (46:15.51) I mean, yes, I don’t know.

Brittany Ellich (46:20.103) I feel like it probably does make sense because it’s the whole like somebody must have made this like, but you work at a Wendy’s, sir, this is a Wendy’s. So I’m gonna say yes, but it’s real.

Erika (46:29.625) Oh, I was thinking like Peter Pan Wendy. Yeah. Wendy.

Bethany (46:30.274) it.

Brittany Ellich (46:32.423) Oh no, it’s definitely Wendy’s, like the, yeah, the fast food chain.

Bethany (46:32.559) Yeah.

Bethany (46:38.431) Sorry, this is a Wendy’s. That’s amazing. Well, we should create it because it does not currently exist, but that would be a good angle to take. Okay. White space, a language where only spaces, tabs, and new lines are meaningful and all other characters are ignored.

Erika (46:39.187) John Crickett (46:57.582) I believe that’s real.

Erika (46:59.32) can’t be. It’s gotta be… Yeah. Burn it down.

Brittany Ellich (47:00.737) No, I hope not.

John Crickett (47:02.661) Ha

Bethany (47:04.909) I’m so sorry, but…

Brittany Ellich (47:04.954) Yeah.

John Crickett (47:05.039) There was a language chicken, where everything is how many times you say the word chicken.

Erika (47:09.378) BLEH!

Bethany (47:12.013) No, that’s amazing. Well, White Space is real, so John’s right there. Play for John.

Brittany Ellich (47:12.106) my gosh.

Brittany Ellich (47:20.293) I can’t imagine code reviewing that. That sounds miserable.

Erika (47:23.768) Yeah.

Bethany (47:24.655) That’s the neat part, you don’t. Okay, Rockstar, a language designed so that programs read like rock ballads with variables declared like, Tommy is a rockstar.

Erika (47:27.426) Yeah.

John Crickett (47:38.307) know this one.

Brittany Ellich (47:39.725) Mm-hmm. I’ve heard of this one. It’s real.

Bethany (47:43.703) It is real. I remember because people were like, you can say I’m a rock star developer on your resume and people thought that was so fun.

John Crickett (47:44.93) It’s real.

Erika (47:52.439) You

John Crickett (47:53.296) Dylan Beatty, the creator, has a couple of brilliant talks about creating it. Well worth watching. better yet, invite him on. He’s a great, great speaker.

Bethany (47:57.778) so cool. Okay, we’ll have to link those.

Brittany Ellich (47:59.098) Erika (48:03.448) He’s a rock star.

Bethany (48:03.699) Alright, Dylan, keep an eye out for that. Yeah, Rockstar developer. Keep an eye out.

Brittany Ellich (48:04.048) Yeah.

John Crickett (48:11.245) I think he has some swag marked up so you can get a sticker that he gives away at his talks. I’ve only seen his talks on YouTube unfortunately, I’ve never managed to get one but they’re really really good.

Bethany (48:14.805) Ooh, amazing.

Brittany Ellich (48:17.371) Nice.

Bethany (48:22.159) We’ll have to track next time he talks at something.

John Crickett (48:24.559) He’s also a good musician. plays music at his talks as well.

Bethany (48:28.565) It makes sense with Rockstar. No wonder it’s like a rock ballads. Okay. Next is Frostbite, a stack based language where every operation is named after a type of weather.

John Crickett (48:30.425) Yeah.

Erika (48:45.432) No.

John Crickett (48:45.989) That sounds real. That sounds weird enough.

Brittany Ellich (48:49.947) I’m going to say no only because I’m not sure what a stack-based language is.

Bethany (48:55.524) It is fake. stackface languages are real, but it is fake.

Erika (48:57.975) Hey!

Brittany Ellich (48:58.587) Yes. okay. Great.

Erika (49:02.776) Wait, if we’re doing the reveals as we go, did we ever say what the first one was? Was it real or not? okay.

Bethany (49:08.407) It was real, Yeah! Okay, next is Shakespeare, a language where programs look like Shakespearean plays and variables are characters like Romeo and Juliet.

Erika (49:22.776) I love this one. Yeah, it’s gotta be real. Yay.

John Crickett (49:23.139) I believe that’s real.

Bethany (49:26.111) It’s real! Yup. Okay, this one.

Erika (49:42.316) I’ll go for it. I’ll stay real.

John Crickett (49:44.798) I’m going to say no for that one, but it does remind me that there is one which is coloured squares of different sizes.

Brittany Ellich (49:46.993) same.

Bethany (49:54.745) learning more about these other programming languages than when I created this.

John Crickett (50:02.607) Yeah, I can’t remember what it’s called, but there is one which is…

Bethany (50:07.508) Wow. Well while you’re doing looking that up but beeswax is real I had to google it because I’m like what does that even mean?

Erika (50:15.894) No.

Bethany (50:17.838) hexagonal grid.

Erika (50:24.185) Yeah, and is that like functional? is that meant to like make you improve your usage of instruction pointers or is it really only for fun?

Bethany (50:36.974) You know, I have no idea. I’m sure most of these are for fun. But okay, Piat is what the squares is called.

Erika (50:39.192) you

John Crickett (50:47.065) Yeah, that’s the code one, there’s a couple of pictures on that Wikipedia page. So try code review in that.

Bethany (50:51.108) Eww.

Bethany (50:54.894) It’s like going to an art museum. Honestly, maybe my mental well-being would be better if that was when I’m reviewing. It’s like, art, what does this mean? Yeah, yeah. All right, finally, Goblin, an interpreted language where all error messages are written in Tolkien’s black speech.

Erika (51:04.01) Roar Shock Test.

John Crickett (51:16.943) think that’s probably all. That sounds typically esoteric enough.

Erika (51:18.16) That seems like, yeah, like the Venn diagram of like people creating programming languages and people who want an error message written by a goblin is probably pretty strong overlap.

Bethany (51:32.432) It does sound very real. Yeah, it’s a circle, but it does not exist. So I guess that’s another one we gotta get on. Yeah.

Brittany Ellich (51:34.213) Yep, it’s a circle. missed opportunity. Yeah, we need to not post that part so we can go, you know, steal it before everybody else does.

Erika (51:38.976) No! Okay. Yeah.

Bethany (51:46.872) Okay, okay, we’ll hide that and make it and then revise and be like, that’s real, we made it. Alright, well that is all the languages I had, but John, it sounds like you have so many more, so unfortunately though, we are at time. Thank you so much for coming on. Where can folks find you?

Erika (51:47.286) Yeah.

We made it.

John Crickett (52:07.957) You can find me on LinkedIn, there’s John Cricket, on X as well, and on Substack. And can find Coding Channels, it’s easy enough if you Google it, or you can Google my name as well. Very easy to find, it’s quite unique.

Bethany (52:21.904) And we will link all of those in our show notes. Thank you again so much for joining us and for that conversation. And thank you listener for tuning in to Overcommitted. If you like what you hear, please do follow, subscribe, or do whatever it is you like to do on the podcast app of your choice. Check us out on Blue Sky and share with your friends. Until next week, bye.

John Crickett (52:25.273) Thank you.