Benjamin Johnson Software engineer. Learning every day, one mistake at a time. You can find me online at benjaminjohnson.me.

Stories by Benjamin Johnson

Refactoring legacy code with Jest snapshots

Dev

Snapshot testing is immensely popular for testing React apps or other component-based UIs. However, it’s not exactly drama-free — many people looooove […]

Benjamin Johnson
Mar 26, 2019 ⋅ 6 min read

3 ways everyone breaks their website’s focus state

Dev

No mouse? You’re in serious trouble. Like many things that are incredibly important, accessibility is by no means easy. Not because […]

Benjamin Johnson
Jan 15, 2019 ⋅ 6 min read

Adding pipelines to JavaScript

Dev

Pipelines enable clean chaining of operations, but they’re not quite ready just yet The usage of pipes to transport water, air, […]

Benjamin Johnson
Nov 19, 2018 ⋅ 6 min read
What Makes ReasonML So Great?

What makes ReasonML so great?

Dev

What exactly is ReasonML? ReasonML is a syntax extension for the OCaml language created by Facebook. Rather than creating an […]

Benjamin Johnson
Sep 10, 2018 ⋅ 8 min read

How CSS works: Creating layers with z-index

Dev

Introduction This post is the third in “How CSS Works” — a series where we dive deep into the fundamental building blocks […]

Benjamin Johnson
Jul 2, 2018 ⋅ 5 min read

How CSS works: Understanding the cascade

Dev

A few weeks back I got to start a short series on CSS fundamentals. If you’re in the front-end web […]

Benjamin Johnson
May 29, 2018 ⋅ 5 min read

Using trampolines to manage large recursive loops in JavaScript

Dev

I vividly remember my entrance into the world of functional programming. Ironically, I was learning about class-based JavaScript in ES5. […]

Benjamin Johnson
May 14, 2018 ⋅ 4 min read

How CSS works: Parsing & painting CSS in the critical rendering path

Dev

https://platform.twitter.com/widgets.js CSS often feels like this mysterious, whimsical force governing everything that we see on the web. It can be […]

Benjamin Johnson
Apr 10, 2018 ⋅ 6 min read