Susan Potter
###

Software development, delivery, engineering, and architecture


2020-10
Software Profunctors for Practitioners: The API (Part 3)

Part 3 examines the Profunctor typeclass in detail: the dimap operation, its laws, and the Strong and Choice extensions that enable profunctors to work with products and sums. These building blocks …

2020-09
Software Profunctors for Practitioners: First Intuitions (Part 2)

Part 1 showed paired operations like encode/decode and serialize/deserialize. Part 2 builds the intuition for why these pairs fit together: one direction produces data (covariant), the other consumes …

2020-09
Software JavaScript objects to TypeScript enumerations, const enums, ambient enums

Learn how to leverage TypeScript's enums, const enums, ambient enums and how they impact generated JavaScript code. Unveil the benefits and drawbacks of using const enums.

2020-09
Software Using three-way diffing context for merge conflict style in Git

It recently came to my attention that not everyone overrides the default merge.conflictStyle git-config setting. So in case anyone here wanted to try something new out that would provide more context …

2020-09
Software Profunctors for Practitioners: Motivating Examples (Part 1)

Software development involves many paired operations: encoding and decoding, serializing and deserializing, encrypting and decrypting. Profunctors capture this pattern. Part 1 introduces the …

2020-08
Software Algebraic Data Types in TypeScript

Note: the code for the TypeScript (to help you follow along) is available here: Encoding Algebraic Data Types in TypeScript code Background Recently I've been reviewing TypeScript code at work. A …

2020-08
Software Algebraic Data Types: For the math(s) inclined

Unlock the mathematical elegance of algebraic data types (ADTs) and revolutionize your understanding of data modeling! Discover how algebraic principles can determine the cardinality of ADTs, allowing …

2020-06
Software Experience report deploying PureScript to AWS Serverless (Lambda)

In this blog post, an experienced software engineer shares their successful deployment of a pure functional serverless function to AWS using PureScript. They spent around $15 per day on API Gateway …

2020-01
Software `any` versus `unknown` in TypeScript: When to use one over the other

Discover the critical distinctions between `any` and `unknown` in TypeScript, and unleash the full potential of static typing. Join this TypeScript journey, where I advocate for stronger types and …

2019-10
Software DynamoDB: The Basics

Dive into the fundamentals of DynamoDB and discover its unique data modeling concepts. This article explores the similarities and differences between DynamoDB and relational databases, highlighting …