Trying to prevent errors is good, being able to recover from errors is better

Accept the inevitability of errors so that you can fix them efficiently

Thoughts on onboarding and offboarding

Musings about what I expect when joining and leaving projects and companies

SVG icon sizing and alignment

Tips for making icons look right alongside multi line text or within buttons

Working with constant interruptions

It feels like I don't have time for anything, but I still manage to get things done

How to connect to an Apple Thunderbolt display from Linux

The key is BIOS Thunderbolt Assist Mode and boltctl

The trade-offs of two feature flag implementations

How ease of change impacts testability and where meta-programming can help

Broken video in Safari after DOM change

A workaround for a Safari bug with dynamically created video elements

Github OAuth authorization with serverless functions

I was curious about serverless and ended up learning about cross-site forgery in Oauth and in communication between browser windows

A tale of flaky Cypress tests

I wrote some flaky Cypress tests and learned how to make them deterministic

Decoding disparate JSON fields into a custom Elm type

Define a nice-to-use internal model and leave the clunky API data structures at the program boundaries

Long-lived background Ruby processes

Daemon processes, signal handlers and process identifiers

Keeping Elm JSON decoders in sync with your Rails API

Using JSON Schema and automated tests to ensure that your Elm frontend and Rails backend will understand each other

A Self-Testing Test Library

An exploration of test library fundamentals and self-testing code

Elm Single Page Application Setup

A Makefile for production-ready builds of single page Elm apps and live reloading during development

API Response Serialization with Plain Old Ruby Objects and ActiveSupport

A simple way of serializing JSON in Rails apps