Law of Demeter Origin Story

The Law of Demeter is important in object-oriented programming. But where does “Demeter” come from? ...

May 11, 2026 · 1 min · Jake Worth

Filled Emoji With CSS

Today I learned how to fill in an emoji with CSS. Here’s an example: .filledEmoji { color: transparent; text-shadow: '0 0 0 #86efac'; } ...

May 8, 2026 · 1 min · Jake Worth

JavaScript Wraparound Index

What I call “wraparound” are repeatable indices on an array. The common use case is a carousel. Here’s how it’s done: const items = ["first", "middle", "last"]; const i = 0; // Our iterable index // "Next" -> const nextIndex = (i + 1) % items.length; // <- "Previous" const prevIndex = (i - 1 + items.length) % items.length;

May 7, 2026 · 1 min · Jake Worth

JavaScript String Concatenation

Here’s a periodic reminder that JavaScript supports string concatenation with a plus sign: > 'foo' + 'bar' 'foobar' ...

May 6, 2026 · 1 min · Jake Worth

JavaScript Spread a String Into An Array

Need an array of letters? Here’s a trick: > const alpha = [...'abcdefghijklmnopqrstuvwxyz'] ...

May 5, 2026 · 1 min · Jake Worth

JavaScript Array Join Comma Default Separator

When you join an array in JavaScript, the default separator is a comma: node> ['j', 'a', 'k', 'e'].join() 'j,a,k,e' ...

May 5, 2026 · 1 min · Jake Worth

JavaScript Bitwise AND

The JavaScript bitwise AND operator (&) can be used for some real-world tasks, like testing if a number is odd or even. ...

May 1, 2026 · 1 min · Jake Worth

Become a Product-First Software Engineer

I think many engineers would be better contributors if they started to think more about the customer impact of their work. ...

May 1, 2026 · 3 min · Jake Worth

Vim :Tutor Command

Longtime Vim users know the vimtutor program, which teaches you Vim in Vim. Vim 9.2 shipped with a new :Tutor command that improves on this. :Tutor ...

April 29, 2026 · 1 min · Jake Worth

On commenting and approving pull requests

After reviewing a lot of pull requests, I’ve settled on a simple default: if my comments are all nitpicks, suggestions, questions, or non-blocking issues, I leave them and approve the PR at the same time. ...

April 22, 2026 · 4 min · Jake Worth