Type Safe, Composable Promise PoliciesHello and welcome. I’m so happy to bring this to you today as I’ve been trying off and on to come up with what I think is an elegant…May 28, 2020May 28, 2020
Creating a type-safe DSL for filtering in TypescriptIt is common to think of a filter as a function from A -> boolean. Given a value of some type A, return a boolean. The filter function on…Feb 25, 20201Feb 25, 20201
Expression problem related to OO and FPThis was written somewhere else, by someone who probably did a better job explaining it than I’m doing. But I can’t find that link, so…Feb 26, 20192Feb 26, 20192
Solving the Mars Rover Kata with a Free Monad in PurescriptWe want to be able to describe what it means to move our rover without caring whether the implementation is just in memory or there’s an…Jan 25, 20191Jan 25, 20191
Combining Types as Effects to Describe an ApplicationI can only imagine the face I made the first time someone referred to the type of an application. Coming from a Delphi, .NET, and web…Jan 18, 2019Jan 18, 2019
Hidden Algebraic Structures in Everyday Imperative CodeThroughout my time as a software developer one of the things I’ve developed is the ability to identify and find an increasing amount of…Nov 16, 20182Nov 16, 20182
The dangers of returning void — A look at information lossIf you’ve programmed in virtually any mainstream language you might not have considered that there was anything wrong with returning void…Oct 23, 2018Oct 23, 2018
Typesafe, Monadic Parsing with Mapped Types in TypescriptThe process of string parsing comes up pretty frequently in development, but rarely do I stumble upon a solution I like as much as the one…Oct 22, 20181Oct 22, 20181
Domain Modeling with Abstract AlgebraIn this post, we’ll look at several problem domains and see how we can model them with Abstract Algebra. While we’ll look at a few specific…Jun 21, 20181Jun 21, 20181
Creating a more descriptive query model with phantom typesWhen you have a query of some sort it implicitly has a result type associated with it. By using a Phantom Type we can include that type…May 25, 2018May 25, 2018