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: Total Swift Programming

    Tech Talks are in-depth technical discussions.

    In simple terms, a total function is a function that produces a well defined output for all possible inputs. A total program is a program composed of only total functions.

    A non-total, or partial function, would be a function that can fail given certain inputs. Such as taking the head of a list, which can fail if giving an empty list and is therefore non-total.

    Total programming can be done in any language, however many languages make this easier. Some, going so far as to require proof of totality.

    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 swift programmer.

    Links:

    Total Programming In Swift

    54 min
  • Tech Talk: Idris, Proofs and Haskell with Edwin Brady

    Tech Talks are in-depth technical discussions.

    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. The book, the language and Edwin himself all seem to be chock full of ideas for improving the way computer programming is done, by applying ideas from programming language theory.

    In this interview, we discuss dependent types, type holes, interactive and type-driven development, theorem provers, Curry–Howard correspondence, dependant haskell, total functional programming, British vs American spelling and much more.

    Links:

    • The Book
    • Idris Lectures at OPLSS
    • Idris Language Site
    1 hr
  • Tech Talk: Domain Driven Design meets Functional Programming

    Tech Talks are in-depth technical discussions.

    In object oriented languages, modeling a complex problem domain is a well understood process. Books like Domain Driven Design contain techniques for breaking down a problem domain and earlier books like the gang of four book catalogue design patterns for modeling these domains in an object oriented way.

    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 approach to api design and discusses how abstract algebra provides tools for building better software.

    Episode Page

    Episode Transcript

    "I first come up with what I call the algebra of the behaviors. The algebra of the behaviors refers to the basic contract, which the behavior is supposed to support, which the behavior is supposed to honor. So that's the algebra." -Debashish Ghosh

    Links:

    Debashish's Book

    57 min
  • Tech Talk: Design Principles From Functional Programming with Runar Bjarnason

    Tech Talks are in-depth technical discussions.

    Runar Bjarnason has been exploring how writing in a functional style increases modularity and compositionality of software for many years. He is co-author of functional programming in scala, a book that teaches these principles in scala. It is a very challenging yet very rewarding book, sometimes referred to as simple 'the red book'.

    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 constraining modules in this way, the software modules themselves become endlessly composable.  

     

    Enjoy

    Show Notes:

    Functional Programming In Scala

    Constraints Liberate

    52 min
  • Tech Talk: Python to Scala rewrite at Duolingo with Andre Kenji Horie

    Tech Talks are in-depth technical discussions.

    Doulingo is a language learning platform with over 200 million users.  On a daily basis millions of users receive customized language lessons targeted specifically to them.  These lessons are generated by a system called the session generator.  

    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 rewrite, what drove them to move to scala and the experience of moving from one technology stack to another.

     

    Show Notes:

    Rewriting Doulingo's Engine in Scala

    Jobs at DouLingo

    54 min
  • Tech Talk: Incident Response with Emil Stolarsky

    Tech Talks are in-depth technical discussions.

    As a system becomes more complex, the chance of failure increases. At a large enough scale, failures are inevitable. Incident response is the practice of preparing for and effectively recovering from these failures.

    An engineering team can use checklists and runbooks to minimize failures. They can put a plan in place for responding to failures. And they can use the process of post mortems to reflect on a failure and take full advantage of the lessons of that failure.

    Emil Stolarsky is a production engineer at Shopify where his role shares many similarities with that of Google's site reliability engineers. In this episode, Emil argues that the academic study of emergency management and industries such as aerospace and transportation have a lot to teach software engineers about responding to production problems.  

    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 toward a place of more deliberate preparation.

    52 min
  • Tech Talk: Scala Native with Denys Shabalin

    Tech Talks are in-depth technical discussions.

    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 specifically for Scala.

    Denys Shabalin is a Research Assistant at the EPFL and the primary creator of Scala Native. In this episode, I interview Denys about the motivations behind the Scala Native project, how it was implemented and future directions. He also briefly touches on how Scala Native made cold compilation times of Scala code twice as fast. If you are interested in functional programming, compiler design, or want to learn some interesting tidbits about garbage collector design and trade offs you will like this episode.

     

    Show Notes
    • Scala Native
    • Scala Goes Native Talk
    • Bootstrapping the Web with Scala Native
    49 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