Cover image of CoRecursive with Adam Gordon Bell
(57)
Education
Technology
How To

CoRecursive with Adam Gordon Bell

Updated 8 days ago

Education
Technology
How To
Read more

Hear experts explain computer science and programming concepts. CoRecursive is a high quality, concise, and beloved software engineering interview podcast. Learn about programming languages, coding career advice and interviews about open source community tech news. Host Adam Gordon Bell brings in experts to talk about type theory, web development, learning to code, dev ops and much more. Some episodes touch on the topics of cloud development, machine learning and big data. Adam, the host is a big fan of programming languages like Scala, Haskell, Rust, and Swift, but isn’t afraid to talk about more mainstream languages like Java, JavaScript and Python. Scala and Kotlin come up a lot.CoRecursive is similar to podcasts such as Stack Overflow Podcast, Programming Throwdown, Talk Python To Me, CodeNewbie, Full Stack Radio and Developer Tea.Find transcript, show notes and more at https://corecursive.com/

Read more

Hear experts explain computer science and programming concepts. CoRecursive is a high quality, concise, and beloved software engineering interview podcast. Learn about programming languages, coding career advice and interviews about open source community tech news. Host Adam Gordon Bell brings in experts to talk about type theory, web development, learning to code, dev ops and much more. Some episodes touch on the topics of cloud development, machine learning and big data. Adam, the host is a big fan of programming languages like Scala, Haskell, Rust, and Swift, but isn’t afraid to talk about more mainstream languages like Java, JavaScript and Python. Scala and Kotlin come up a lot.CoRecursive is similar to podcasts such as Stack Overflow Podcast, Programming Throwdown, Talk Python To Me, CodeNewbie, Full Stack Radio and Developer Tea.Find transcript, show notes and more at https://corecursive.com/

iTunes Ratings

57 Ratings
Average Ratings
55
0
1
0
1

Empowering, insightful and actionable! 🙌

By JoshCrist - Mar 19 2020
Read more
Whether you’re well established as a technology leader, or just getting started building a codebase that’s built to last within your organization - this is a must-listen podcast for you! Adam does an incredible job leading conversations that cover a huge range of topics related to the ins and outs of building elegant software - from leaders who’ve actually experienced success themselves. Highly recommend listening and subscribing!

Good tech podcast

By VarunKSaini - Oct 30 2019
Read more
This podcast gets some really good guests and discussions are interesting and engaging.

iTunes Ratings

57 Ratings
Average Ratings
55
0
1
0
1

Empowering, insightful and actionable! 🙌

By JoshCrist - Mar 19 2020
Read more
Whether you’re well established as a technology leader, or just getting started building a codebase that’s built to last within your organization - this is a must-listen podcast for you! Adam does an incredible job leading conversations that cover a huge range of topics related to the ins and outs of building elegant software - from leaders who’ve actually experienced success themselves. Highly recommend listening and subscribing!

Good tech podcast

By VarunKSaini - Oct 30 2019
Read more
This podcast gets some really good guests and discussions are interesting and engaging.
Cover image of CoRecursive with Adam Gordon Bell

CoRecursive with Adam Gordon Bell

Latest release on May 18, 2020

The Best Episodes Ranked Using User Listens

Updated by OwlTail 8 days ago

Rank #1: God's Programming Language - Philip Wadler on Haskell

Podcast cover
Read more

Today I talk to Professor Philip Wadler, a very accomplished programming language researcher.  Phil walks us through a principle that has guided his career.  That principle is that typed lambda calculus is not invented but a discovery of a deep truth. It is something connected to the mathematical underpinning of the universe itself.

It follows from this that functional programming languages are therefore more correct or more deeply justified and fundamental than other languages.  I am probably stating things in a stronger fashion than Phil is comfortable with, but I like fp, so I can be a little hyperbolic.

While explaining this principle, that has guided his career, Phil takes us through the history of computer science.  We start with Turing and Alonzo Church.  Eventually we get to what the movie Independence Day got wrong and what language a theoretical creator deity would program in.

Show notes:

Web page for this episode

CoRecursive On Twitter

CoRecursive On Itunes

Oct 22 2018

1hr

Play

Rank #2: David Heinemeier Hansson, Software Contrarian

Podcast cover
Read more

David Heinemeier Hansson talks to Adam about being avoiding a software monoculture. He explains why we should find a programming language that speaks to us, why ergonomics matter and why single page apps and microservices are not for him.

"That is the pleasure and privilege of working with the web. No one knows what you built it. It, you could build an in basic, you can build it a Ocaml, you can build in the Haskell, you can build it in whatever Ruby. No one is going to be none the wiser you get to choose"

You want to write for the web. I mean, literally every programming language that's ever been invented and known to humankind is serving a webpage somewhere."

"There's just something heartwarming in that, that this idea of the monoculture that like this is all just a battle to the death and there's going to be one framework and there's going to be one programming language that lifts is left standing. Programmers are really drawn into that right into that horse race."

So much of their technology choices seem to be predicated on like, is this popular? Is this going to be popular next year? Do you know what I mean?"

"The crimes against programming humanities that have been done in the service of single page applications are far worse than the ones that have been done in the service of microservices.

But then of course, as it is, lots of people combine the two. So it's a fleet of microservices serving a single page application, and that's just where it bam, my head explodes with like, yeah, I would rather retire and fucking, I don't know, make weaved baskets than deal with that shit."

"I'm not saying that email is sort of in its base form is wonderful, but you know what is wonderful asynchronous. Write-ups of cohesive, full thoughts, people using actual goddamn paragraphs to describe ideas and proposals, and they put those paragraphs together into form entire, cohesive thoughts. And then letting someone take that in, read those several paragraphs, sit back for more than five minutes. Ponder that. And then respond."

Links:

Podcast Page

Feb 01 2020

1hr 2mins

Play

Rank #3: Learning to Think with Andy Hunt - Pragmatic Programmers guide to being productive

Podcast cover
Read more

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:

Webpage for Episode

Apr 15 2019

54mins

Play

Rank #4: Bartosz Milewski on Category Theory

Podcast cover
Read more

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/

Aug 15 2019

53mins

Play

Rank #5: Domain Driven Design And Micro Services With Vaughn Vernon

Podcast cover
Read more

Today I talk to Vaughn Vernon about how Domain Driven Design can help with designing micro services.  The guidelines that Vaughn has developed in his work on DDD can provide guidance for where service and consistency boundaries should be drawn.  We also talk about the platform he is developing for applying these DDD concepts using the actor model, Vlingo.

Also my group at Tenable is hiring for our web app scanning product.  We are looking for a talented developer and I think it is really a great place to work.  Security, Scaling, and Performance are some of the challenges that make this an interesting position where a great developer with functional programming skills could really excel.  Apply here and or hit me up on twitter or email ( adam@corecursive.com ) for further details.

Show Notes:

Aug 17 2018

49mins

Play

Rank #6: Jimmy Koppel on Advanced Software Design

Podcast cover
Read more

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/

Aug 01 2019

53mins

Play

Rank #7: Burn out and recreational coding with Jamis Buck

Podcast cover
Read more

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.

Jan 25 2019

59mins

Play

Rank #8: Crafting Interpreters With Bob Nystrom

Podcast cover
Read more

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/

May 31 2019

56mins

Play

Rank #9: Test in Production and being On-Call with Charity Majors

Podcast cover
Read more

"Metrics and Dashboards can die in a fire and every software engineer should be on-call" - Charity Majors

Today's Interview is with Charity Majors. We talk about how to make it easier to debug production issues in today's world of complicated distributed systems.  A warning, There is some explicit language in this interview.

I originally saw a talk by Charity where she said something like fuck your metrics and dashboards, you should test in production more. It was a pretty hyperbolic statement, but backed up with a lot of great insights. I think you'll find this interview similarly insightful.

Charity and her company are probably best known for popularizing the concept that observability in the key to being able to debug issues in production.

Also if you are a talented developer with functional programming skills, I've got a job offer for you. My employer Tenable is hiring.  Tenable is a pretty great place to work. Here is a job link.

Show notes:

Show Link

Aug 31 2018

47mins

Play

Rank #10: Structure and Interpretation of Computer Programs with Hal Abelson

Podcast cover
Read more

Adam talks to Hal Abelson about the textbook he coauthored in 1984, SICP and why it is still popular and influential today.

"If you pick up almost any computing book it starts out 'here are these datatypes, these operations that you do' and somewhere around 20 or 30% through the book, they show you how to define a function or a procedure. Whereas we really take the opposite approach. We say the key thing is abstraction. So we kind of start there."

"The axe [the book] is grinding is that people write programs to do one particular thing. And then the price of that is that a whole lot of software engineering ends up being trying to get out of the hole you dug yourself into because you made a program that was too specific."

https://corecursive.com/039-hal-abelson-sicp/

Oct 01 2019

56mins

Play

Rank #11: Graphql And Sangria With Oleg Ilyenko

Podcast cover
Read more

Oleg Illyenko is primary creator of Sangria, a graphql implementation used by twitter, The New Yorks Times and many other companies.  We discuss the problems that graphql solves, how sangria works and the problems of api design.

Show Notes:

Sangria

Graphql

Contact Oleg:

Talks on Sangria:

Graphql

Apr 18 2018

55mins

Play

Rank #12: Dependent Types in Haskell with Stephanie Weirich

Podcast cover
Read more

At Strange loop 2017, a wandered into a talk where I saw some code that deeply surprised me. The code could have been python if you squinted, passing dictionaries around, no type annotations anywhere.

Yet key look up in the dictionary was validated at compile time. It was a compile time error to access elements that didn't exist. Also the dictionary was heterogeneous, the elements had different types, and it was all inferred and validated at compile time.

What I was seeing was Dependent types in Haskell. In today's interview Stephanie Weirich explains her efforts to add dependent types to haskell and how that example worked.

Shows Notes:

Jun 13 2018

58mins

Play

Rank #13: Moves and Borrowing In Rust With Jim Blandy

Podcast cover
Read more

The surprising thing about rust is how memory management works.  Rust has the concepts of moves and borrowing.  If you have heard about Rust, you may have heard people talking about the borrow checker and trying to make it happy. In this interview, Jim Blandy walks us through what these concepts mean and how they work.  We also talk about how to avoid fighting with the borrow checker at all and why the conceptual model that Rust adopts, though it may seem unusual at first, is actually more representative of how computers work and therefore an easier programming model.

Jul 03 2018

1hr 7mins

Play

Rank #14: Abstraction and Learning with Runar Bjarnason

Podcast cover
Read more

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:

Webpage for show

Mar 15 2019

49mins

Play

Rank #15: Erlang And Distributed Systems with Steven Proctor

Podcast cover
Read more

Today's interview is with Steven Proctor, the host of the functional geekery podcast.  We talk about distributed programming in general and specifically how erlang supports distributed computing.  We also talk about things he's learned about functional programming and applying FP principles to various non FP contexts.  

Contact Proctor:

May 02 2018

1hr 1min

Play

Rank #16: Software in Context with Zach Tellman

Podcast cover
Read more

Adam talks to Author and Clojure advocate Zach Tellman about how great software is built.

"If we say something is over-engineered, what we mean is it's too complex or it's too robust or it handles a bunch of situations or scenarios that are not relevant to how we're using it. It's okay for us to create narrow things. It's okay for us to create Powershells instead of bash sort of environments because that narrowness gives us the ability to go and do things we might not otherwise be able to do."

"Twitter are built on top of Ruby because that was a reasonable thing. And then it stopped being the reasonable thing. And again, you have this kind of, I dunno, I call it hacker news induction, which is like, well I built this thing and then I built this other thing, which is almost exactly the same thing. And it worked or it didn't work. And therefore I think that this must generalize across all possible applications of this thing, right? So I tried to rails and it was great or it was awful and therefore it is great or awful, you know, in all situations. "

Zach's Personal Site

Elements Of Clojure Book

https://corecursive.com/042-zach-tellman-software-in-context/

Dec 02 2019

53mins

Play

Rank #17: The Little Typer With Daniel Friedman and David Thrane Christiansen

Podcast cover
Read more

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

Dec 01 2018

1hr 7mins

Play

Rank #18: Tech Evangelism and Open source With Gabriel Gonzalez

Podcast cover
Read more

What makes some pieces of technology take off? Why is java popular and not small talk or Haskell. Gabe is a popular blogger, a former Haskell cheerleader, and creator of the Dhal configuration language. Today we talk about marketing and tech evangelism.

"One common mistake I see a lot of new open source developers make is they tried to build what I call the hype train. Where they have started a new project that has a lot of poTech Evangelism with Gabriel Gonzalez tential and they advertise on hacker news hoping that, okay, we're gonna generate a lot of hype, maybe get a lot of influx of new contributors, new contributes, new features, generate more hype and so forth."

"They hope that there'll be that virtuous cycle that will get them to the mainstream in practice, that never happens. Usually, the thing about contributors is that their needs are always going to be fragmented, right? If you have eight new contributors, they're going to be taking you in eight different directions. You should focus on one direction and sometimes that means not only doing a lot of work yourself, but it's explicitly saying no to something and saying this is not where I want to take the product right now."

Links:

Crossing the Chasm

Dhall Lang

Adam's SE Radio Interview with Gabe

Haskell For All - Gabe's Blog

Nov 01 2019

1hr 7mins

Play

Rank #19: Beautiful and Useless Coding with Allison Parrish

Podcast cover
Read more

Generative Art involves using the tools of computation to creative ends. Adam talks to Allison Parrish about how she uses word vectors to create unique poetry. Word vectors represent a fundamentally new tool for working with text.

Adam and Allison also talk about creative computer programming and building twitter bots and what makes something art.

"Computer programming is beautiful and useless. That's the reason that you should want to do it is not because it's going to get you a job, because it has a particular utility, but simply for the same reasons that you would pick up oil paints or do origami or something. It's something that has like an inherent beauty to it that is worthy of studying."

"For my purpose as an artist and as like someone who teaches programming to artists and designers, I want to emphasize that it's not only a vocational thing, it's not only a way for building things like to do apps for that matter. It's not only a way to, you know, write useful applications that help to organize communities or help to do scientific work and other like good applications of programming and software engineering. But there is this like very essential, very core part of computer programming that is just joyful. Um, that's about understanding your own mind in different ways and understanding the world in different lands."

Experimental Creative Writing with the Vectorized Word

Every Icon

Word2Vect

Allison Parrish's Website

Tracery

Articulations

Every Word

Nov 16 2019

52mins

Play

Rank #20: Purescript And Avocados with Justin Woo

Podcast cover
Read more

Purescript is a functional programming language that compiles to javascript.  It is a strict haskell dialect that can run anywhere that javascript does.

Justin Woo is a self described Purescript evangelist and enthusiast. We talk about purescript vs elm and working with expressive type systems.  Justin also had some great metaphors about phantom types and masking tape as well as avacados and testing.  

Contact Justin:

Show notes:

My team at Tenable is hiring.  We are a distributed team of scala developers working on static analysis of docker containers (among other things).

We are a team of smart people, working fairly autonomously on interesting problems.  We are one of many teams working on interesting problems at Tenable.  I think its a great place to work.

I am in Peterborough, in Canada, and our team has people working in the US, Ireland and the UK as well.

Here is the job posting: 

https://www.linkedin.com/jobs/view/586241797/

Tell them Adam sent you, or you can email me directly at work abell at tenable.com or use this link to apply.

Apr 04 2018

51mins

Play