Blog

You can find my latest AI engineering articles on Substack, leadership on LeadDev, or browse my topic guides and personal blog posts below.

Personal Blog

Big news! I'm joining Google.

Some exciting news to share today! I'm joining Google as a Developer Programs Engineer on the Chrome team.I'll be lucky to join an incredibly talented team of developers...

Short Musings On JavaScript MV* Tech Stacks

Lately, there have been a number of developers getting in touch to discuss the tech stacks for their web applications. In this short post, I'd like to focus on the JavaScrip...

Polyfilling The HTML5 Gaps With JavaScript

We all want to use the hot new features being implemented in modern browsers right away, but there's a small problem holding us back: how can we use these great new capabili...

The Smashing Guide To Moving The Web Forward

In this article I’d like to talk about how you can help give back to the Web and a new project that seeks to make this process easier: MoveTheWebForward.org. If you’...

Large-scale JavaScript Application Architecture

Developers creating JavaScript applications these days usually use a combination of MVC, modules, widgets and plugins for their architecture. They also use a DOM manipulation li...

Exploring JavaScript's Logical OR Operator

In JavaScript, logical operators are used for boolean logic where a boolean value may be returned depending on the outcome of an expression. With the || (OR) operator, since val...

More Lessons From A JavaScript Code Review

Before we start, I’d like to pose a question: when was the last time you asked someone to review your code? Reviewing code is possibly the single best technique to improve...

Announcing the jQuery Standards Team

 We all know that web standards are important. They help ensure the code we write works across different technologies, for people of different abilities and most importantl...

Demystifying jQuery 1.7's $.Callbacks

A brand new feature introduced in jQuery 1.7 is $.Callbacks, which we'll be taking a look at today. $.Callbacks are a multi-purpose callbacks list object and if you'...

Essential jQuery Plugin Patterns

I occasionally write about implementing design patterns in JavaScript. They’re an excellent way of building upon proven approaches to solving common development problems, ...

Essential JavaScript Namespacing Patterns

In this post, I'll be discussing both intermediate and advanced patterns and approaches for namespacing in JavaScript. We're going to begin with the latter as I believe ...

Substack

LeadDev

Managing the chaos of context switching

It's time to examine the good, the bad, and the very ugly elements of context switching. Even better, we'll take a look at some strategies for managing it.

What makes an effective software engineer?

Being a good software engineer is not necessarily the same as being an effective one. Here, Google's Addy Osmani identifies the ten key traits of effective software engineers.