PinnedSam CooperinBetter ProgrammingShort Circuits, Bottom Types and the Vacuous BoomerangThe surprisingly useful explanation behind Kotlin’s funniest program8 min read·Feb 5, 2023--5--5
PinnedSam CooperinBetter 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 them13 min read·Feb 20, 2023--10--10
Sam CooperinBetter 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 alternatives7 min read·Oct 25, 2023--10--10
Sam CooperBlameless Post-Mortem? Doesn’t Mean Nobody Messed UpPeople make mistakes, and no-blame culture is about acknowledging that, not denying it4 min read·Oct 22, 2023----
Sam CooperinBetter ProgrammingHow ChatGPT Wins Friends and Influences PeopleThe smooth-talking chatbot has dubious merchandise but textbook sales technique4 min read·Sep 25, 2023----
Sam CooperinBetter 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 better6 min read·Sep 22, 2023--3--3
Sam CooperinBetter ProgrammingUnit Tests Aren’t Tests, They’re SensorsA good unit test doesn’t need to check whether the code works, just whether it’s changed6 min read·Sep 4, 2023--4--4
Sam CooperinBetter ProgrammingThe Big Difference Between Flows and Channels in KotlinStop worrying if flows are hot or cold, and focus on good old-fashioned encapsulation instead15 min read·Mar 20, 2024--5--5
Sam CooperinBetter ProgrammingDemystifying Kotlin’s Channel FlowsWhy does Kotlin have two almost identical flow builders, and which one should you be using?8 min read·Dec 5, 2023--2--2
Sam Cooper5 Pro Kotlin Dev Hacks For More Assertive CodeSerious pro Kotlin techniques for serious pro Kotlin devs6 min read·Jun 12, 2023--8--8