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

The future of data-binding is Object.observe()

Object.observe() is a proposed mechanism for bringing true data-binding to the browser. It exposes a mechanism for observing changes to objects and arrays, notifying o...

Building WebApps With Yeoman And Polymer

♡ Web Components? I just published a brand new tutorial over on HTML5Rocks walking through how to build webapps with Yeoman and Polymer.Catching up on Web ComponentsNow you migh...

Video: Gone In 60fps - Making A Site Jank-Free

[caption id="attachment_6153" align="aligncenter" width="600"] When scroll is fast your web pages feel "responsive". If janky and scroll feels slow your users may get frustrated...

5 Minutes With Yeoman

I recorded a quick video on getting started with Yeoman for anyone new to the project : ) You might also find building apps with the Yeoman workflow a helpful read.

DevTools JavaScript Memory Profiling

Yesterday I published a refreshed guide to plugging memory leaks over on the Chrome DevTools docs site. It covers the Object allocation tracker, timeline memory, heap profiles a...

Tools for image optimization

As we saw a few weeks ago, the weight of an average web page is now almost 1.5MB (median ~1MB), with > 50% of this being images. It's a harsh reminder that many of our pages on ...

Release the Kraken! Announcing Yeoman 1.0

[caption id="attachment_5645" align="aligncenter" width="703"][A preview of the terminal output after running 'yo'[/caption]Last week, I had the pleasure of 'officially' releasi...

Tracking ECMAScript 6 Support

ECMAScript 6 is being progressively implemented by browser vendors over time and as such there is no ETA on it being available in all environments.Whilst specs and implementatio...

Checking in front-end dependencies

Package management is an important and evolving area in front-end development. It's also a contentious one with some favoring Bower, others preferring npm and Browserify and a n...

Making Maven Grunt.

IntroductionDevelopers working in agencies often tell us that they want to be able to use modern front-end tooling in their workflow. One set of options this manifests as is usi...

Jank Busting With Daft Punk

Yesterday, I looked at the new Daft Punk web experience on Pitchfork. It was visually stunning, featuring rich-animations throughout. I noticed however that scrolling on the pag...

DevTools Extensions For Web App Developers

The past year has seen many leaps made to improve developer productivity through better tooling. We're paying increasing attention to our workflow and many of us have spent ...

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.