Environment-specific Builds With Grunt, Gulp or Broccoli
[caption id="attachment_6536" align="aligncenter" width="640"] Image credit: http://www.flickr.com/photos/brianneudorff/9109932159/[/caption]The dev, staging and production vers...
You can find my latest AI engineering articles on Substack, leadership on LeadDev, or browse my topic guides and personal blog posts below.
[caption id="attachment_6536" align="aligncenter" width="640"] Image credit: http://www.flickr.com/photos/brianneudorff/9109932159/[/caption]The dev, staging and production vers...
Human sacrifice, dogs and cats living together... mass hysteria! We’d like to avoid that, right? Well, today we’re going to talk about how to improve the accuracy of your front-...
In the HTML5 Rocks write-up and videos for my talk "yo polymer", I walk through Web Components - an exciting new set of web platform features that will change the way you build ...
IntroductionA trend proliferating amongst prototypers in the Angular community is full-stack JavaScript development via the MEAN stack.The acronym stands for: (M)ongoDB - a noSQ...
I just wrote an article for HTML5Rocks on a new DevTools extension that allows you to use your terminal directly from inside Chrome. This is a huge milestone for in-browser prod...
I recently wrote a guide on tools for synchronized cross-device testing; useful when you’re targeting the multi-device web. One of the tools I didn't come across at the time was...
In my mobile web dev. tooling slides, we dive into the options available today for cross-device development, testing, and performance evaluation of multi-device webapps. Underst...
Chrome DevTools supports some useful keyboard shortcuts for easily incrementing or decrementing CSS values under-the-cursor. Shortcuts are available for both the Sourc...
Miss my workshop at Velocity Europe? The slides are now up!. These days our users expect smooth scrolling, buttery smooth animations and interactions, especially on mobile. We n...
Writing a modern web app these days can sometimes feel like a tedious process; frameworks, boilerplates, abstractions, dependency management, build processes..the list of requir...
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...
♡ 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...
[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...
In this video, I walk through generator-bootstrap - an uber-simple Yeoman generator which prompts you for the flavour of Twitter Bootstrap you would like to install for a projec...
I was asked if it's possible to patch back Chrome DevTools based changes to a DevTools extension. For example, CSS changes made to the Elements panel. The current solution to th...
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.
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...
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 ...
In this quick video, I walk through using Web Components with Polymer covering: custom elements, templates, Shadow DOM and HTML Imports.Note: You might also find the n...
In this quick video, I walk through how to effectively use DevTools Flame Charts for visually representing your app's JavaScript processing over time. This can be usef...
As Mat Marquis recently summarized on SmashingMag, the srcset attribute allows developers to specify a list of sources for an image that are delivered depending on the pixel den...
I'm pleased to present a re-write of the Backbone TodoMVC app using ECMAScript 6 features such as classes, modules and fat-arrow syntax.Check out the literate version of the sou...
[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...
In this video, Paul and I demo a new experimental bookmarklet he wrote for detecting critical CSS for above the fold content.External CSS stylesheets are render-blocki...
Practical strategies for engineering careers in the future
A field guide and why we need to rethink our expectations
Engineering with user empathy is the foundation of great products
How to thrive in imperfect conditions
Navigating comparison with mindfulness
Actionable advice for empowerment
My lessons learned along the way.
Extending your influence past your immediate circle isn't as straightforward as you'd like to hope. But there are a few strategies you can employ to help.
Building a tech strategy requires a lot of moving parts. Learn about what routes to take and whether decisions should be top-down.
With so many developments in the tech world it's difficult to keep up. Here are some strategies to stay on top of your upskilling.
How can you prioritize when everyone's ask is an urgency and you don't have time to fit it all in?
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.
Software engineering teams should focus on outcomes over outputs to deliver the best user and business value.
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.