The JavaScript Event Loop

March 22, 2019

A wild JavaScript code snippet appears!

const log = (output) => { console.log(`--${output}--`); };

log("first");

setTimeout(function fifth() { log("fifth"); }, 500);
setTimeout(function third() { log("third"); }, 0);
setTimeout(function fourth()

Waiting on Multiple Callbacks

February 18, 2019

First, a refresher on asynchronous functions utilizing callbacks:

setTimeout(() => {
    console.log('One second later');
}, 1000);

The above code will log One second later to the console after at least a one second delay (timing isn’t precise in...

Extracting Functions and Shifting Left

February 06, 2019

Let’s take a look at our example from last time:

const get = require('./get'); // get(url, callback)

const githubApi = 'https://api.github.com';
const githubEventsUrlFor = username => `${githubApi}/users/${username}/events`;
const githubRepoUrlFor

Grokkable Concurrency in JavaScript

February 03, 2019

NOTE: This is the first post in a series on Concurrent Programming in JavaScript.

Introduction to the Problem

Callback Hell is something you’ll hear many JavaScript developers refer to, and not endearingly. It is a very real place, and is to be feared...

Loss and Meaning

April 28, 2018

I started writing pieces of this down a bit over a week ago, sitting alone in a calm hospital cafeteria of an out of town. My wife was waiting on her dinner in her room, and I was slowly and distantly chewing on my dinner.

At this point it had been...

Taking a Step Back & Scratching an Itch

August 14, 2017

I’ve been spending the past two weeks adjusting to working at Auth0. Thus far everything’s been great. The domain is interesting and challenging, the problems are fun, and there are a lot of smart people working here. While I’ve been getting up to...

Compiling ES2017 with Babel for Node

August 07, 2017

A long time ago I swore off compiling code I intended for NodeJS. I had originally done this with some production CoffeeScript code back in 2013 and it brought on a number of headaches — harder debugging, incompatibility with modules, and extra indirection...

The End of an Era

May 30, 2017

tl;dr

My team at TTM was awesome, but due to acquisitions and reasons we are disbanding/disbanded. By October I’ll be out of a job, but will always be grateful for our team.

In the Beginning

Sometimes you find a job where everything feels right...

ActiveRecord and the Beauty Lost in Translation

September 12, 2015

The Endless Fight

Sometime in 2014, PHP-land started to debate whether Active Record was a tolerable ORM pattern, and whether one should use Active Record or Data Mapper ORMs. In PHP, this comes down to something like Laravel’s Eloquent ORM as an...

Code Review Processes

January 09, 2015

Pushing code to production without a review process in place, to me, feels like a game of Jenga. The code could be completely fine, but there’s also that chance that someone’s going to move the wrong piece and everything will come crashing down. ...

Updates

August 22, 2014

Editor Survey Discontinued

As you may have noticed, I have discontinued my editor survey series. It was consuming a lot of time and I had taken on a new screencast series so it just wasn’t a good fit. If visitor interest had been higher I may have...

Light Table Part 2: A Retrospective

June 16, 2014

Start from Part 1: An Introduction

First Impressions

Light table seems interesting upon first opening. It greets you with a brief splash-screen style intro before loading the “Welcome” tab which will give you some basic information on where to find...

Light Table Part 1: An Introduction

June 08, 2014

Continue to Part 2: A Retrospective

Light Table

My text editor journey began with Light Table. It’s not my first experience with the editor by a long shot, but this was the longest continuous streak I’ve spent exclusively editing with it (okay,...

The FOSS Text Editor Tour

May 26, 2014

One of my buddies likes to give me a hard time about my constant tinkering with new or different text editors. I’ve always had my preference of editor, but I love to see how others implement various concepts and what different ideas each one may have...