On Hiring Procrastinators

The work ethic that you have is likely a carryover from how you were in school. Some of us might be labeled as procrastinators – not out of laziness, but out of a misalignment of goals. In school, high leverage tasks (as teachers and the department viewed them) were tests, homework, and classwork. They assumed that […]

Open source actually hinders teamwork

One of the things that I’ve noticed for the past year is the difficulties that open source development introduces in creating a collaborative team. More specifically, folks who contribute to open source have a tendency to be talented, but need help breaking habits to make them better teammates.

JavaScript: Knowing which apps you’re breaking using static analysis

This post was featured in JavaScript Weekly #213. When you join large projects and fix bugs or build features, you typically rely on senior (in terms of time at the company) engineers to say “don’t forget to test feature X (that you probably didn’t know existed).” Being new, you have limited knowledge of the entire architecture. Our tools […]

JavaScript: Squeezing performance out of Dependents

I’ve been spending quite a bit of time working on Sublime Dependents: a free, Sublime Text 3 plugin that helps you navigate front-end codebases. The plugin was built for large, production codebases (originally built for use at Bēhance). As such, performance is a priority. In this post, I’ll talk about some performance optimizations (in the […]

My talk at the FullStack Conference in London

I was in London in October speaking at the FullStack conference. I gave a talk on using static analysis to give build tools like Grunt, Gulp, and Broccoli the ability to figure out how to generate their own configuration files based on what we’re doing/using as we build front-end applications. You can find the recording […]

My talk at the Powered by JavaScript conference at Strangeloop 2014

I was in St. Louis in September speaking at the Powered by JavaScript conference. My talk was about reducing boilerplate and avoiding build tool configuration files by extracting a core set of processes into an adaptive tool that generates and maintains your configuration. The talk touches on the basics of Grunt, Static Analysis, and techniques […]

JS: Auto-generate Grunt tasks using Static Analysis

If you’ve been around modern tooling in front-end web development, you’ve likely run into task runners like Grunt and Gulp. Grunt uses a declarative way of defining tasks via a large configuration JavaScript object that gets fed into the Grunt engine. Gulp takes the more programmatic approach, using JS stream-centric code to define tasks. The […]

JavaScript: Mocking an npm install for your tests

I’m writing tests for a node.js tool that I’m working on and hit a snag in trying to mock (i.e., simulate) a dynamic npm install of a module within a subdirectory. I tried a bunch of ideas and ended up with a simple, perhaps not ideal, but effective solution.

Technical interviews are actually good for you

Programmers, both new and experienced, have a hard time getting away from technical interviews: the “large-company” style of interview where you’re asked to work through an ambiguously-stated programming question with an interviewer who already knows a wide-range of solutions to the problem. There are pros and cons to this interview style; I personally don’t like […]