For web applications, why does our testing stack change when moving from language to language, when our users are using the same browsers to access them? The Chrome team has done quite a bit of work to make testing in a real browser within reach — and this talk covers how to use it for stable and fast end-to-end tests, executable in any environment.
July 19, 2019 in Kansas City, MO. Slides.
August 3, 2017 in Kansas City, MO. Slides, handout.
November 20, 2016 in Nashville, TN. Slides, video, handout.
October 26, 2016 in Raleigh, NC. Slides, handout.
September 9, 2016 in Barcelona. Slides, video, handout.
August 19, 2016 in Pittsburgh, PA. Slides, handout.
Your website is unresponsive, your cookie size is through the roof. Your competitors have come out with native apps which are flashy and zippy, and they’re eating into your market share. Is it time to drop your website for a native application? Instead of abandoning the web, wouldn’t it be great if you could just spawn a background thread to increase responsiveness, delete some of those cookies and store preferences on the filesystem, and access the accelerometer to get that nifty parallax motion effect — all from the browser? In this talk, you’ll learn to do just that — to spawn threads, save local settings, store your site’s code locally, access a camera and microphone, read accelerometer data, and more! You’ll not only see code samples, but you’ll see working examples designed to get your site off the ground.
June 26, 2015 in Kansas City, MO. Slides.
November 16, 2014 in Nashville, TN. Slides, video.
November 8, 2014 in Washington, DC. Slides.
Ever wonder exactly what combination of Cache-Control, Last-Modified, Expires, ETag, Vary, and Pragma headers will keep your content cached by browsers just long enough? And what exactly is a HTTP 304 anyway? In this talk, you’ll learn the history behind the available HTTP caching headers, what their values mean, and how browsers and proxies react. You’ll learn the best practices on client cache invalidation, the benefits of sending a Not Modified response, and briefly talk about the changes in HTTP 2.0 (SPDY) around caching — and then you’ll put your new-found header skills to the test!
March 28. 2015 in Houston, TX. Slides.
May 17, 2014 in Kansas City, MO. Slides.
As the maintainer of the package, I’ll give a bit of history on the module and talk about why you’d want to use connect-assets in your next web application. We’ll go through the basics of properly serving assets, write (live-code?!) an Express application using connect-assets, and make sure you leave with your questions answered.
November 15, 2014 in Nashville, TN. Slides, video.
May 16, 2014 in Kansas City, MO. Slides.
February 20, 2014 in Washington, DC. Slides.
You’ve seen Chrome extensions in the wild, maybe even installed a few into your browser — but what about writing your own? In this talk, you’ll learn the basics of Chrome extension development (from git init to publishing in the Web Store), how to avoid having your extension automatically disabled when performing upgrades, and some unexpected parts of Chrome you can hook into to take your extension to the next level.
June 26, 2015 in Kansas City, MO. Slides, video.
January 8, 2015 in Sandusky, OH. Slides.
So you’ve heard this buzzword “user experience” before, probably out of some hipster’s beard-mouth. But what does it actually mean? We’ll cover the basics of what it means to design software for user experience, including human factors in design, the user-centered design process, and a focus on human-computer interactions. Spoiler alert: it has very little to do with flashy graphics.
May 3, 2013 in Kansas City, MO. Slides.
March 16, 2013 in Lincoln, NE. Slides.
My first public talk (and without a formal abstract), this talk presents an introduction to KnockoutJS.
September 12, 2012 in Omaha, NE. Video.
August 17, 2011 in Kansas City, MO.
If you’re interested in having me speak at a conference or meetup, or to emcee an event, get in touch and I’ll consider your request.