

CoRecursive: Coding Stories
Adam Gordon Bell - Software Developer
The stories and people behind the code. Hear stories of software development from interesting people.
Episodes
Mentioned books

15 snips
May 31, 2019 • 56min
Tech Talk: Crafting Interpreters With Bob Nystrom
Bob Nystrom is the author of Crafting Interpreters. I speak with Nystrom about building a programming language and an interpreter implementation for it. We talk about parsing, the difference between compiler and interpreters and a lot more. If you are wondering why many languages have hand-rolled parser implementations yet much work on build language implementations focuses on parser and tokenizer generators then Bob's insights will be eye-opening. Also, if you've ever used regexes to pull strings apart into structured data, and I sure have, then Bob's perspective on the simplicity of hand-rolled parsers will certainly open up some new possibilities for you. Links: http://craftinginterpreters.com/ http://gameprogrammingpatterns.com/ http://journal.stuffwithstuff.com/

14 snips
Apr 30, 2019 • 59min
Tech Talk: Rethinking databases and Noria with Jon Gjengset
Jon Gjengset, a leader on the Noria project at MIT CSAIL, dives into innovative database management. He discusses how Noria redefines performance by integrating caching directly into the database, using materialized views for query optimization. Jon elaborates on the ingenious data flow model and how it enhances cache management compared to traditional systems like MySQL. He also shares insights on teaching Rust through live coding, showcasing its unique features that prevent bugs while empowering developers.

Apr 15, 2019 • 55min
Tech Talk: Learning to Think with Andy Hunt - Pragmatic Programmers guide to being productive
Andy Hunt is a celebrity in the world of software development. Or at least he is one to me. The Pragmatic Programmer is a classic book on software development book. He is an author of the agile manifesto and started the book company that has published many great books, including several by recent guests. Today I talk to Andy about how software engineers can get better at thinking and learning. How can we develop this meta-skill and how can being aware of common mistakes our brain make us more productive? Show notes: The Pragmatic Programmer Pragmatic Thinking and Learning Conglommora Webpage for Episode

34 snips
Mar 31, 2019 • 56min
Tech Talk: Data and Scale with Pat Helland - The long view on distributed databases
Pat Helland, a longtime expert in distributed databases and currently with Salesforce, shares his insights on the complexities of modern data storage. He explains how to navigate the world of distributed systems using relatable metaphors, like comparing messaging challenges to postal communication. Helland dives into state management in microservices, the nuances of managing distributed transactions, and the significance of immutability in data handling, all while emphasizing the balance between theoretical concepts and practical business needs.

11 snips
Mar 15, 2019 • 49min
Abstraction and Learning with Runar Bjarnason
What is abstraction? Can we have a precise definition of abstraction that, once understood, makes writing software simpler? Runar has thought a lot about abstraction and how we can choose the proper level of abstraction for the software we write. In this interview, he explains these concepts using examples from the real world, from SQL, from effectful computing and many other areas. We also talk about how to learn and acquire the skills necessary to understand abstract concepts like very polymorphic code and category theory. Runar also explains his latest project unison computing and how it uses the correct level of abstraction to rethink several foundation ideas in software development. Links: Constraints Liberate Maximally Powerful, Minimally Useful Unison Computing Webpage for show

21 snips
Feb 22, 2019 • 54min
Tech Talk: Modern Systems Programming And Scala Native With Richard Whaling
Richard Whaling, author of Modern Systems Programming with Scala Native, shares his unique insights on software development, focusing on low-level system programming. He discusses how to build faster software using glibc and modern techniques like manual memory management with raw pointers. The conversation highlights the importance of optimizing performance for data processing, the challenges of integrating Scala with C, and navigating software dependencies with a self-sufficient approach. Whaling also addresses modern systems programming challenges and the potential of emerging languages.

Jan 25, 2019 • 60min
Burn out and recreational coding with Jamis Buck
A decade ago Jamis Buck was not loving his job. He was an important open source contributor. He worked for the hottest trendiest software company at the time, 37 signals, creator of ruby on rails. He was on top of the world but also he was burnt out. Today Jamis talks about how he overcame burn out. We discuss how his struggle lead him to write a book about generating mazes and another about building a ray tracer. His books are great fun, and all about recreational programming. You will learn to build things with a focus not on the latest trends in software development and not even a specific programming language. The focus instead is on fun.

17 snips
Dec 18, 2018 • 1h 19min
Tech Talk: Software as a Reflection of Values With Bryan Cantrill
Bryan Cantrill, CTO of Joyent and an expert in operating systems, argues that choosing programming languages and tools should align with personal values rather than seeking the 'best' option. He highlights the important trade-offs within languages like Rust and JavaScript, celebrating Rust’s memory safety. The conversation also touches on the historical significance of languages like Simula 4 and critiques proprietary trends, while advocating for diversity in tech choices to foster innovation. Cantrill's insights elevate how we think about technology decisions.

Dec 1, 2018 • 1h 7min
Tech Talk: The Little Typer With Daniel Friedman and David Thrane Christiansen
Tech Talks are in-depth technical discussions. When it comes to type systems "I am, so far, only in the dependent types camp" - Daniel P. Friedman You can write more correct software and even rigorous mathematical proofs. Prepare for some mind stretching. Previous guests like Edwin Brady and Stephanie Weirich have discussed some of the exciting things a dependent type system can do Miles Sabin said dependent types are surely the future. This interview is to get us ready for the future. Daniel P. Friedman is famous for his "Little" series of books. Little Schemer, Little prover, Little MLer and so on. These books are held in high regard. Here is a quote from Doug Crockford: "Little Schemer teaches one thing, a thing that is very difficult to teach, a thing that every profession programmer should know, and it does it really well. These are lessons that stick with you." The latest one is the little typer and its about types. Specifically dependent types. Dan's coauthor is David Thrane Christiansen, Idris contributor, and host of a podcast about type theory that is way over my head. Together they are going to teach us how the programming skills we already have can be used to develop rigourus mathematical proofs. Stay tuned to the end for my guide to working thru the book. Originally published at CoRecursive here Join Our Slack Community

Nov 14, 2018 • 1h 1min
Tech Talk: Big Ball Of Mud
Tech Talks are in-depth technical discussions. Evolving software under constrained resources is a challenge, and I think we kid ourselves when we don't admit this. Software that is providing value often grows in scope until it is a mess. Today I talk to Wade Waldron about how avoid this situation or recover from it. Big ball of mud is the title of a paper presented at the 1997 Patterns Languages of Programs conference and I think it is super interesting. The researchers went out into the field to see what architectures software in industry were following. Big Ball of mud is what they found, along with other 6 other patterns with names like "sweep it under the rug" and reconstruction, which is the throw it away and start again pattern. Links: Big Ball Of Mud Paper Hexagonal Architecture Reactive Foundations Course Reactive Advanced Course Check out other episodes like this Philip Wadler: https://corecursive.com/021-gods-programming-language-with-philip-wadler/ This podcast originally published here : https://corecursive.com/22-big-ball-of-mud-architecture-and-services-with-wade-waldron/


