Software development, delivery, engineering, and architecture
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 …
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 …
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.
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 …
Software development involves many paired operations: encoding and decoding, serializing and deserializing, encrypting and decrypting. Profunctors capture this pattern. Part 1 introduces the …
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 …
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 …
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 …
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 …
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 …