Loading...

Tag trends are in beta. Feedback? Thoughts? Email me at [email protected]

Firewall rules: not as secure as you think

Software engineers are not (and should not be) technicians

Quality and productivity are not necessarily mutually exclusive

My spiciest take on tech hiring

All error messages are necessarily bad to some degree

All error messages are necessarily bad to some degree

The siren song of domain-specific languages

Unification-free ("keyword") type checking

My views on NeoHaskell

A GHC plugin for OpenTelemetry build metrics

The "open source native" principle for software design

Announcing nixos-rebuild: a "new" deployment tool for NixOS

terraform-nixos-ng: Modern terraform support for NixOS

Nixpkgs support for Linux builders running on macOS

Nixpkgs support for incremental Haskell builds

What does "isomorphic" mean (in Haskell)?

How to correctly cache build-time dependencies using Nix

Probability for Slay the Spire fanatics

nix-serve-ng: A faster, more reliable, drop-in replacement for nix-serve

Stop calling everything "Nix"

Incrementally package a Haskell program using Nix

defaultable-map: An Applicative wrapper for Maps

The appeal of bidirectional type-checking

Generate web forms from pure functions

The golden rule of software distributions

Introductory resources to type theory for language implementers

Worst practices are viral for the wrong reasons (2014)

Worst practices should be hard (2016)

Advice for aspiring bloggers

The "return a command" trick

More →