Recent Posts

Maintainable Node.js JavaScript: Avoid process.exit()

I’ve spent the last few months digging into Node.js, and as usual, I’ve been keeping tabs on patterns and problems that I’ve come across. One problematic pattern that recently came up in a code review was the use of process.exit(). I’ve ended up finding several examples of this, and I’m prepared to go so far... […]

Private instance members with weakmaps in JavaScript

Last week I came across an article1 by Nick Fitzgerald in which he described an approach for creating private instance members for JavaScript types using ECMAScript 6 weakmaps. To be completely honest, I’ve never been a big proponent of weakmaps – I thought there was a loss of fuss about nothing and that there was... […]

How to be a mentor

Mentorship tends to be a hot topic at any company that cares about its employees. I’ve experienced a variety of mentorship approaches in my career and learned one important lesson: very few people are taught how to be mentors. There are no good guides, no classes, and typically little organizational support. Yet that won’t stop... […]

On interviewing front-end engineers

There was a really nice article written by Philip Walton last week1 regarding his experience interviewing for front-end engineering roles at various companies in San Francisco. To summarize, he was surprised by the types of questions he was asked (mostly having to do with computer science concepts) and the types of questions he wasn’t asked... […]

Now available: ESLint v0.1.0

It was four months ago when I announced the start of the ESLint project. My initial goal was to create a fully-pluggable JavaScript code quality tool where\ every single rule was a plugin. Though I like and appreciate JSHint, the inability to be able to define my own rules alongside the existing ones was keeping... […]

The problem with tech conference talks lately

I’ve spoken at my fair share of conferences over the years, and I used to get very excited about attending them. Lately, though, I’ve found myself more disappointed in conferences on a more frequent basis. Leaving aside the social aspects that have been increasingly under fire, I’d like to focus my attention squarely on the... […]

The best career advice I’ve received

I recently had an interesting discussion with a colleague. We were recounting our job histories and how our, shall we say colorful personalities, could have negatively impacted us long term. The truth is, I was kind of an asshole coming out of college (some would argue I’m still kind of an asshole, but that’s beside... […]

Node.js and the new web front-end

Front-end engineers have a rather long and complicated history in software engineering. For the longest time, that stuff you sent to the browser was “easy enough” that anyone could do it and there was no real need for specialization. Many claimed that so-called web developers were nothing more than graphic designers using a different medium.... […]

Understanding ECMAScript 6 arrow functions

One of the most interesting new parts of ECMAScript 6 are arrow functions. Arrow functions are, as the name suggests, functions defined with a new syntax that uses an "arrow" (=>) as part of the syntax. However, arrow functions behave differently than traditional JavaScript functions in a number of important ways: Lexical this binding –... […]

That time the lights went out at Etsy

I was preparing for my talk at Etsy’s Code as Craft series this past Tuesday. The room was starting to fill and we had about 10 minutes before I was to start. I took out my laptop and found, much to my dismay, that it wouldn’t work with the projector. For anyone who’s done any... […]

Copyright © 2004-2016 Nicholas C. Zakas. All Rights Reserved. All code examples on all pages, unless otherwise indicated, are BSD licensed. Blog Feed