CoRecursive - Software Engineering Interviews

CoRecursive - Software Engineering Interviews
CoRecursive features In-Depth technical interviews with software developers. Learn about programming languages such as Scala, Haskell, Idris, Kotlin, Erlang and Functional Programming and Type Theory from experts in one on one interviews. Similar to podcasts software engineering daily, functional geekery and hanselminutes technology podcast.

Open Source Health and Diversity with Heather C Miller
Sep 15 • 41 min
Heather C Miller is an Assistant Processor at CMU. She is concerned that key open source projects are at risk of failure and no one is paying attention. Adam talks to her about open source, how it grows, the diversity problems it has and much more.
Compiling to Bytecode with Thorsten Ball
Sep 1 • 58 min
What do compilers do? What is the runtime of a language? What does it mean to compile something down to bytecode and what executes the byte code. Throsten Ball Answers these questions in this interview with Adam. “A virtual machine is a computer…
Bartosz Milewski on Category Theory
Aug 15 • 53 min
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. Category theory can also be a tool to teach us to see software development in a different light and it can…
Jimmy Koppel on Advanced Software Design
Aug 1 • 53 min
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…
Chris Krycho on Typescript
Jul 15 • 70 min
How do we make javascript easier to work with? Chris Krycho has been using typescript to add types to javascript since 2016. Chris also loves Rust and types and is a former C and FORTRAN programmers. He hosted a podcast called the New Rustacean, which he…
Rethinking Technological Positivism with Cory Doctorow
Jun 15 • 61 min
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…
Crafting Interpreters With Bob Nystrom
May 31 • 56 min
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.
Refinement Types With Niki Vazou
May 15 • 50 min
Formal verification and type systems - how do they relate? Niki Vazou is on a mission to bring better formal verification to the masses. Niki is the creator of Liquid Haskell, a system that extends Haskell to support refinements. She has also worked on…
Rethinking databases and Noria with Jon Gjengset
Apr 30 • 58 min
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.
Learning to Think with Andy Hunt
Apr 15 • 54 min
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…
Data and Scale with Pat Helland
Mar 31 • 56 min
Pat Helland has a wealth of knowledge on building distributed data stores. He has been working on distributed data stores since 1978, when he wrote code for the tandem fault-tolerant database. Here is the key thing, he is also a master at explaining the…
Abstraction and Learning with Runar Bjarnason
Mar 15 • 49 min
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…
Modern Systems Programming And Scala Native With Richard Whaling
Feb 22 • 53 min
Richard Whaling has an interesting perspective on software development. If you write software for the JVM or if you are interested in low level system programming, or even doing data heavy or network heavy IO programming then you will find this interview…
Burn out and recreational coding with Jamis Buck
Jan 25 • 59 min
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…
Software as a Reflection of Values With Bryan Cantrill
Dec 18, 2018 • 79 min
Which operating system is the best? Which programming language is the best? What text editor? Bryan Cantrill, CTO of Joyent says that is the wrong question. Languages, operating systems and communities have to make trade offs and they do that based on…
The Little Typer
Dec 1, 2018 • 67 min
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. Dan’s coauthor is David Thrane Christiansen, Idris contributor, and host of a podcast about type…
Big Ball Of Mud
Nov 14, 2018 • 60 min
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…
God’s Programming Language
Oct 22, 2018 • 60 min
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…
020 - Concurrency and FP with Riccardo Terrell
Oct 3, 2018 • 60 min
When Riccardo Terrell hit the concurrency limitations in a jvm application, he thought back to the haskell he learned in a university course and decided to rewrite the entire thing in haskell. The immutability of the haskell solution made the concurrency…
019 - Test in Production with Charity Majors
Aug 31, 2018 • 47 min
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.
018 - Domain Driven Design And Micro Services With Vaughn Vernon
Aug 17, 2018 • 49 min
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…
017 - Http4s With Ross Baker
Jul 27, 2018 • 50 min
Http4s is a web framework written in scala that takes a pure functional approach to building http services. Ross Baker is a contributor to http4s and he explains the benefits of this approach.
016 - Moves and Borrowing In Rust With Jim Blandy
Jul 3, 2018 • 67 min
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…
015 - Dependent Types in Haskell with Stephanie Weirich
Jun 13, 2018 • 58 min
In todays interview Stephanie Weirich explains her efforts to make haskell have dependent types and how that example worked.
014 - Micro Service Architectures With Jan Machacek
Jun 6, 2018 • 66 min
Today I talk to coauthor of upcoming book, Reactive Systems Architecture : Designing and Implementing an Entire Distributed System. If you want to learn some of the hows and whys of building a distributed system, I think you’ll really enjoy this…
013 - Rust And Bitter C++ Developers With Jim Blandy
May 16, 2018 • 62 min
Rust, the programming language, seems to be really trendy these days. Trendy to me means shows up a lot on hacker news. Rust is really interesting language though, and I think the growing popularity is deserved. Today I talk with Jim Blandy, one of the…
012 - Erlang And Distributed Systems with Steven Proctor
May 2, 2018 • 61 min
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…
011 - Graphql And Sangria With Oleg Ilyenko
Apr 18, 2018 • 55 min
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.
010 - Purescript And Avocados with Justin Woo
Apr 4, 2018 • 51 min
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 Purescript evangelist and enthusiast. We talk about purescript vs elm and working with…
009 - Throw Away the Irrelevant with John A De Goes
Mar 21, 2018 • 68 min
Today’s interview is with John A De Goes. We talk about performance problems with monad transformer on the jvm, various flavours of IO monads, reasoning about polymorphic type signatures and much more.
008 - Generic Programming and Shapeless with Miles Sabin
Mar 7, 2018 • 60 min
When Miles Sabin applied to speak at a conference on generic programming, he bluffed a little bit. He would present on porting Simon Peytons Jone’s scrap your boilerplate functionality to Scala. Once his talk was accepted, he only had one thing left to…
007 - Total Programming Using Swift with Andre Videla
Feb 12, 2018 • 53 min
In this interview Andre Videla discusses how the swift program language encourages programming in a total style. He also discusses his love of Idris, proof assistants and how his research into haskell, idris and dependant types have made him a better…
006 - Type Driven Development and Idris With Edwin Brady
Jan 29, 2018 • 59 min
Edwin Brady is the creator of the Idris programming language and Author of the book Type-Driven Development with Idris and a computer science lecturer. In this interview, we discuss dependent types, type holes, interactive and type-driven development,…
005 - Algebraic Domain Modelling using Functions With Debashish Ghosh
Jan 22, 2018 • 58 min
In today’s interview Debashish Ghosh explains how to model a complex problem domain in a functional paradigm. His solution focuses on modelling the behaviour of the software system rather than nouns it will contain. He also focuses on an algebraic…
004 - Design Principles From Functional Programming with Runar Bjarnason
Jan 10, 2018 • 51 min
In this interview Runar explains how writing in a functional style involves limiting side effects, avoiding exceptions and using higher order abstractions. Writing in this style places constraints on what a module in a software system may do, but by…
003 - Scala at Duolingo with Andre Kenji Horie
Jan 7, 2018 • 53 min
Andre Kenji Horie is senior engineer at Doulingo. He wrote about the process of rewriting the session generator, as well as moving from python to scala. and changing architecture all at the same time. In this episode Andre talks about the reasons for the…
Incident Response with Emil Stolarsky
Jan 5, 2018 • 51 min
In this interview Emil argues that we need to move beyond tribal knowledge and incorporate practices such as an incident command system and rigorous use of checklists. Emil suggests that we need to move beyond a mindset of “move fast and break things” and…
Scala Native with Denys Shabalin
Jan 1, 2018 • 48 min
Scala is a functional and object oriented programming language built on the JVM. Scala Native takes this language, loved by many, and brings it to bare metal. Scala Native is an optimizing ahead-of-time compiler and lightweight managed runtime designed…