Note: I am not currently available for speaking engagements.
The following is a list of talks I’ve given over the years. This list is not complete, but is a good-faith effort to record my various speaking engagements.
Browser Wars Episode 1 devLink, Chatanooga, TN, August 2013
Progressive Enhancement 2.0: Because the Web isn’t Print Netflix, Los Gatos, CA, May 2, 2011 (Slides) (Company event, not open to the public.)
Accessibility on the Yahoo! Homepage CSUN Accessibility Conference, San Diego, CA, March 2010
Test Driven Development with YUI Test Yahoo! Front End Engineering Summit, Sunnyvale, CA, March 2008 (Video)
Accessibility on the Yahoo! Homepage
Accessibility isn’t hard, and contrary to popular belief, doesn’t take a lot of extra effort. Learn how the Yahoo! homepage team built accessibility into the product development cycle with the goal of providing the best possible user experience to everyone. Using a combination of progressive enhancement, ARIA, and a little ingenuity, even the most complex and dynamic features on the new Yahoo! homepage’s are available to everyone in interesting and fun ways.
Learn the tips, tricks, and techniques that allowed large sites such as My Yahoo! and the Yahoo! homepage to continue to grow, scale, and change over time without throwing away previous work.
- Stoyan Stefanov on DOM Scripting – building responsive UIs by understanding the price of DOM access, updates, reflows and repaints
- Ross Harmes on Ajax – A quick introduction to Multipart XHR, it’s strengths and it’s (possibly fatal) weaknesses.
- Matt Sweeney – I’ll be introducing the Tools chapter, which walks through a suite of tools to help developers identify various types of bottlenecks in their system.
Performance on the Yahoo! Homepage
The new Yahoo! homepage, released in 2009, had a high bar to meet in terms of performance. The classic version of the page, a mostly static one, set lofty expectations for the newer version. Even though the new page has more options for customization and personalization, as well as being far more interactive, the performance goals remained the same. The team planned for performance from the beginning, laying groundwork that would allow us to avoid common performance pitfalls.
The team scoured Yahoo!’s Exception Performance guidelines and went beyond them, coming up with several twists that introduced incremental performance improvements. Every byte was counted, everything measured, to ensure we could meet the previous version’s metrics.
In this talk, I’ll go over the tactics that we took and the performance differences we made. Some of the topics include:
- How we decreased the average time to open up an application from 7 seconds to less than 2.
- How lazy loading of resources sped up the user experience.
- How we progressively trimmed kilobytes of data from the initial payload.
- How we changed our page flushing strategy to alter perceived performance.
Progressive Enhancement 2.0: Because the Web isn’t Print
- Managing scope learn why scope is important and how to manage it for optimal performance.
- Flow control – learn how to use if statements and loops efficiently.
- Avoid long-running scripts – learn what causes the browser to stop executing your code and what to do to avoid it.
YUI Test: The Next Generation
setTimeout() and setInterval() are part of every web developers’ toolkit. Many use these timers for animations and for deferring actions until later, all without really understanding how timers work and their performance implications.
This talk explores the browser UI thread and how timers influence it. You’ll learn how timers actually work, why they behave the way they do, and whether you’re using them in the most efficient manner possible. Learn how timers affect power consumption (especially important on mobile devices and laptops) and how the way timers work has changed over the years to address today’s power needs.
You’ll also learn how you can use new W3C Performance APIs, requestAnimationFrame() and setImmediate(), instead of timers to get better performance and battery life.