PinnedPublished inBetter ProgrammingShort Circuits, Bottom Types and the Vacuous BoomerangThe surprisingly useful explanation behind Kotlin’s funniest programFeb 5, 20235Feb 5, 20235
PinnedPublished inBetter ProgrammingThe Silent Killer That’s Crashing Your CoroutinesThere’s only one safe way to deal with cancellation exceptions in Kotlin, and it’s not to re-throw themFeb 20, 202311Feb 20, 202311
Custom Kotlin Coroutine RacesFind the fastest, then change the rules to filter out nulls or pick your own winner3d ago3d ago
Fire and Forget with Kotlin CoroutinesCall a suspending function without waiting for it to finishMar 261Mar 261
Six Ways to Start a Coroutine in Kotlin, RankedChoose the right coroutine scope for safety and simplicityMar 202Mar 202
Published inBetter ProgrammingHow I Fell in Kotlin’s RunBlocking Deadlock Trap, and How You Can Avoid ItThe blocking coroutine builder can kickstart your coroutine journey, but you need to know the risks—and the alternativesOct 25, 202310Oct 25, 202310
Blameless Post-Mortem? Doesn’t Mean Nobody Messed UpPeople make mistakes, and no-blame culture is about acknowledging that, not denying itOct 22, 20231Oct 22, 20231
Published inBetter ProgrammingHow ChatGPT Wins Friends and Influences PeopleThe smooth-talking chatbot has dubious merchandise but textbook sales techniqueSep 25, 2023Sep 25, 2023
Published inBetter ProgrammingLock-Free Stacks Are Even Cooler in KotlinTreiber stacks are the coolest data structure you’ve never heard of, and tail recursion makes them even betterSep 22, 20234Sep 22, 20234
Published inBetter ProgrammingUnit Tests Aren’t Tests, They’re SensorsA good unit test doesn’t need to check whether the code works, just whether it’s changedSep 4, 20234Sep 4, 20234
Published inBetter ProgrammingThe Big Difference Between Flows and Channels in KotlinStop worrying if flows are hot or cold, and focus on good old-fashioned encapsulation insteadMar 20, 20245Mar 20, 20245
Published inBetter ProgrammingDemystifying Kotlin’s Channel FlowsWhy does Kotlin have two almost identical flow builders, and which one should you be using?Dec 5, 20233Dec 5, 20233
5 Pro Kotlin Dev Hacks For More Assertive CodeSerious pro Kotlin techniques for serious pro Kotlin devsJun 12, 202310Jun 12, 202310
Published inBetter ProgrammingHow I Learned to Love Charset ChaosWhen it comes to software engineering, there’s no such thing as “one size fits all” — and that’s what makes it funJun 20, 20232Jun 20, 20232
5 Tips for a Great Post-incident ReviewPicking up the pieces after a catastrophe is the tried and tested way to learn and improve.Apr 8, 20231Apr 8, 20231
What’s the Difference Between Ownership and Accountability?They’re the magic ingredients for great software teams — but what are they, and how do you get them?Apr 1, 20231Apr 1, 20231
Published inBetter ProgrammingKotlin Isn’t Null-Safe Yet. Here Are 3 GotchasHidden causes of null-pointer exceptions that the compiler won’t even try to protect you fromAug 20, 20232Aug 20, 20232
Google Built an AI Chatbot That Just Talks About DogsIt’s like ChatGPT, if ChatGPT answered every question by telling you how much it loves dogsFeb 24, 20231Feb 24, 20231
Published inBetter ProgrammingMaking Mocking Libraries Mock ThemselvesIs static mocking too powerful for its own good? What happens when the mocker becomes the mocked?Feb 24, 2023Feb 24, 2023