RSSAmplifier

Blog

Alex Yorke

Personal website of Alex Yorke. Writing on CI/CD, testing, reliability, shell tooling, and functional programming.

alexyorke.github.ioRSS feed ↗10 posts

Latest posts

How I escaped decision hell by using a 1972 cognitive theory

Explains Elimination by Aspects (Tversky, 1972) as a practical way to make engineering decisions quickly by filtering options with must-have criteria.

Monads in C# (Part 2): Result

Build a small Result type in C# and use `Map`/`Bind`/`Match` to compose short-circuiting workflows with explicit failure values.

List is a monad (part 1)

An approachable introduction to monads via List: Map vs flatMap, sequencing, and the monad laws, aimed at OOP developers.

Embracing Functional Programming Principles in OOP with Static Factory Methods

How to bring FP-style 'make invalid states unrepresentable' into OOP using static factory methods and validated value objects in C#.

What -Ops are there?

A data-driven survey of '-Ops' terms mined from 360GB of journal article keywords, with a curated table and links.

GZIP exceptions, but only on hot or rainy days

A debugging story about a mysterious C# gzip decompression exception and what actually caused it, with investigation steps and lessons learned.

How to change GitHub cache action compression level

How to change GitHub Actions cache compression by setting ZSTD_CLEVEL, including an experiment showing real size differences.

Quickly estimating unused filesystem blocks

How to estimate deleted-but-not-overwritten data by scanning unused filesystem blocks, with an XFS example and recovery-tool walkthrough.

Automatically expanding code review scope with suggested non changed files

A technique for expanding code reviews beyond the diff by suggesting related files that usually change together, using commit-history correlation.

End to end tests

How to get Angular end-to-end tests running in GitHub Actions, including setup gotchas and tips for dealing with slowness and flakiness.