CoRecursive: Coding Stories

CoRecursive: Coding Stories

By Adam Gordon Bell - Software DeveloperNewsEducationHow ToTech News
Download on the App Store

CoRecursive: Coding Stories episodes

  • Tech Talk: Bartosz Milewski on Category Theory

    Tech Talks are in-depth technical discussions.

    Today Adam talks to Bartosz Milewski. He is the author of a famous blog series, lecture series and now book on Category Theory for programmers.

    The world of functional programming is rife with terminology imported from abstract algebra and Category Theory. In fact, it may be one of the most valid criticisms of functional programming is the use of Category-Theoretic terminology that can be unwelcoming to newcomers.

    Category theory can also be a tool to teach us to see software development in a different light and it can teach us to build better software. Bartosz is also just an interesting person, if you haven't heard of him yet, you are in for a treat.

    Bartosz's Website

    Blog Series

    Book

    Lecture Series

    https://corecursive.com/035-bartosz-milewski-category-theory/

    54 min
  • Tech Talk: Jimmy Koppel on Advanced Software Design

    Tech Talks are in-depth technical discussions.

    How do we create great software? What are the important skills need to properly review a PR? How do you identify assumptions of a code base and the stable contracts of a software module?

    Jimmy Koppel is working on his Ph.D. in the field of program synthesis at MIT. He was previously paid 100 thousand dollars to drop out of university by Peter Thiel, but yet still graduated with two degrees.

    The most interesting, however, about Jimmy is he is working hard to teach the world how to design better software. Due to his time working on program synthesis, he developed some unique insights into what makes software good, and what makes it bad, and he spends time teaching people his insights.

    Three Level of Software

    Peter Thiel 20 under 20

    Benjamin Franklin Method You are a Program Synthesizer

    Jimmy's Coaching Program

    Episode Page: https://corecursive.com/036-jimmy-koppel-advanced-software-design/

    54 min
  • Tech Talk: Typescript with Chris Krycho

    Tech Talks are in-depth technical discussions.

    How do we make JavaScript easier to work with? Chris Krycho has been using typescript to add types to javascript since 2016.

    Chris is a software developer at LinkedIn who, at his previous gig, worked on converting one of the largest Ember apps in the world to TypeScript. I was shocked by the size. Chris also loves Rust and types and is a former C and FORTRAN programmers. He hosted a podcast called the New Rustacean, which he has retired from.

    Today we talk about TypeScript and when you should use it. We also talk about Language Server Protocols, Rust, working with large codebases, Structural types, row polymorphism and talking code over audio.

    • Chris's Blog TypeScript
    • New Rustacean
    • Chris's Typescript
    • Refinement types in TypeScript
    • Winning Slowly Podcast

    https://corecursive.com/034-chris-krycho-typescript/

    1 hr 11 min
  • Tech Talk: Rethinking Technological Positivism with Cory Doctorow

    Self-driving cars or armed autonomous military robots may make use of the same technologies. In a certain sense, we as software developers are helping to build and shape the future. What does the future look like and are we helping build the right one? Is technology a force for liberty or oppression.

    Cory Doctorow is one of my favorite authors and also a public intellectual with a keen insight into the dangers we face a society. In this interview, I ask him how to avoid ending up in a techno-totalitarian society. We also talk about Turing, DRM, data mining and monopolies.

    • The coming war on general computation
    • Cory's Personal Site
    • Radicalized (and other books)
    • EFF

    Website for Page

    1 hr 2 min
  • 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/

    57 min
  • Refinement Types and Liquid Haskell With Niki Vazou

    Formal verification and type systems - how do they relate? Niki Vazou is on a mission to bring better formal verification to the masses.

    I have done a couple of episodes about dependent types and my feeling is that dependent types are super powerful and have some conceptual simplicity ( Types are a first-class concept ) but are somewhat tricky to wield in practice.

    Refinement types are something simpler. A refinement is a predicate that narrows the meaning of a type. What if instead of divide taking two ints, one was Int i where i != 0. This is a refinement type, a type that has been refined, the set of possible values narrowed, using simple predicates.

    Niki is the creator of Liquid Haskell, a system that extends Haskell to support refinements. It actually goes farther than that. She has also worked on refinement types in Ruby and explained refinement types to scala community at various conferences, but her heart lies with the Haskell community. We talk about refinement types, theorem proving, formal verification, SMT solvers, and working with GHC.

    This interview is also a great place to hear me asking stupid questions of a very smart person. Niki and her work are way outside my comfort bounds but hopefully my struggles to understand the topic will help make the power of refinement types approachable to a wider audience. Ruby developers, js developers, and everyone, refinement types are for you as well.

    Links:

    • Liquid Haskell Talk
    • Programming with Refinement Types
    • Liquid Haskell Tutorial
    • Niki's Ph.D. Thesis
    • Real World Liquid Types
    • Refinement Types for Ruby
    • Liquid Haskell Proofs
    • Refinement Types for Scala 
    51 min
  • Tech Talk: Rethinking databases and Noria with Jon Gjengset

    Can we make databases faster and remove the need for caching reads in an external cache? Can we make a distributed SQL based relational database that outperforms memcached? Jon Gjengset and the PDOS team at MIT CSAIL have done just that with Noria.

    Today I talk to Jon about Noria, about building a database in rust and his efforts to teach people intermediate rust via live coding sessions.

    Jon was great to talk to. He really was able to explain to me how Noria is able to do what it does and where it is in terms of maturity. The key, besides Rust and evmaps, is that Noria uses materialized views to do query optimization ahead of time, on write. The devil is in the details though, of course. And the details, in this case, are turning declarative SQL into a dataflow program that handles cache updates on new writes.

    http://corecursive.com/030-rethinking-databases-with-jon-gjengset/

    Show notes:

    • Noria Project
    • pdos group at MIT
    • Noria Paper
    • Noria Article
    • Jon's Rust Streaming

    59 min
  • 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

    55 min
  • Tech Talk: Data and Scale with Pat Helland - The long view on distributed databases

    Tech Talks are in-depth technical discussions.

    Pat Helland has a wealth of knowledge on building distributed data stores. He has been working on distributed data stores since 1978, when he worked on the tandem fault-tolerant database. Since then he has been involved in many distributed database projects.

    Here is the key thing, he is also a master at explaining the key ideas of distributed systems using simple language and practical everyday examples. Can you get married on the phone? How are messaging systems and idempotence like regional offices communicating via fax machine? These are the type of metaphor that Pat uses. Today, Pat sits down with me and teaches me about dealing with data in a distributed, fault tolerant, infinitely scaling world.

    Webpage : http://corecursive.com/028-data-pat-heland/

    Links:

    • Pat's articles ON ACM QUEUE
    • Mind your state for your state of mine
    • Consistency Eventually
    • Standing on Distributed Shoulders of Giants
    • The Singular Success of SQL
    • Life Beyond Distributed Transactions
    57 min
  • 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

    50 min

About CoRecursive: Coding Stories

From the publisher's feed

The stories and people behind the code. Hear stories of software development from interesting people.

More shows like CoRecursive: Coding Stories

Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

Software Engineering Radio - the podcast for professional software developers

275 Listeners

Hanselminutes with Scott Hanselman by Scott Hanselman

Hanselminutes with Scott Hanselman

380 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

288 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

624 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

581 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

287 Listeners

Thoughtworks Technology Podcast by Thoughtworks

Thoughtworks Technology Podcast

44 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

985 Listeners

.NET Rocks! by Carl Franklin and Richard Campbell

.NET Rocks!

243 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

62 Listeners

The Real Python Podcast by Real Python

The Real Python Podcast

140 Listeners

Signals and Threads by Jane Street

Signals and Threads

75 Listeners

Oxide and Friends by Oxide Computer Company

Oxide and Friends

66 Listeners

Latent Space: The AI Engineer Podcast by Latent.Space

Latent Space: The AI Engineer Podcast

105 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

75 Listeners