Recent Posts

Performance Tooling

I gave this presentation at Akamai's Edge conference and NewRelic's FutureStack (with slight differences); it's about what tools I use to measure the impact of web performance work I do.

The slides are built in Reveal.js, and are available at

Click inside the presentation, and then either use your arrow keys, the arrows on-screen, or if on mobile, slide. You can also hit 's' to bring up my speaker notes which contain more information.

Gild and the Commoditization of My Information

I was recently contacted by a recruiter who told me she was looking for a frontend candidate and was impressed with my Gild profile.

"Gild profile?" I asked myself. "What is a Gild?"

My thoughts immeditely went to such websites as Coderwall, LinkedIn, and GitHub, where I opt-in to provide my information in return for professional connections with other engineers. Of course, this ends up a valuable tool for recruiters as well. "Perhaps," thought I, "this is like Klout, scraping public information." Weird, but not a big deal. So, I did a quick search and found

Gild is none of these things. Gild is a company which scrapes public information- such as that in my open source commits- and compiles a private profile so it may sell my email and accumulated information in a package to recruiting firms.

The problem with this is that there is no way to know that you're listed in Gild, and the attempts I have made to remove myself have thus far ended in "please call us to discuss how to advance your career" and "we can discuss what information is in your profile on the phone."

Here's a list of the emails that have been sent thus far regarding this matter:

Hi Jack,

Thanks for reaching out to us!

Gild gathers its information from public data found on sites like Github, StackOverflow, LinkedIn, etc. I understand that you might have concerns about the data we have and how we collect it. If you'd like, we can hop on a call this week and chat through Gild Source and I can answer any of your questions. I'd also love to hear your thoughts on how Gild can better serve you in terms of your own career progression.

Let me know if you have some free time - I'm pretty open this week from 10-5 p.m PDT.

Thanks again for reaching out!

Thanks, Swapna

To which I replied:

Hi Swapna,

I suppose my primary concern is that you're taking public data and hiding it; and I, as the subject of a hidden profile, am neither aware of its existence or what's in it. A long-term plan for you may be to have an "employee" view whereupon one can see one's own profile and limited information on others.

Making it super clear on your website who to contact and where to get a copy of one's own information and where to opt out would be a great first step. There's nothing in your privacy policy about those whom you collect on that I could find. Every person who I talked to was somewhere between shocked and outraged that this exists, and that there's no way to see in without paying. I specifically was miffed because, while I don't really take action to hide things like my email address, it's used within the context of things like open source software development and isn't really meant to be used for recruiter spam. (That's what my LinkedIn account is for.) While all of the information you have has indeed been publicly provided by me, the context in which the information is used is lost when it's compiled into a single profile, and allows individuals outside who I trust with my information to use that information for marketing / recruiter spam / who knows what.

That said; what's a good way to see what information you have, and what way I could remove myself from your site? How can I validate that I will not be indexed again? (I don't doubt your propriety, but, to wear a tin foil hat and stretch the possibilities, one could even imagine a hidden profile of oneself painted in a negative fashion, thus harming my relationship with potential employers; a blacklist of sorts.)

Thanks, Jack

And then:

Hi Jack,

Thank you so much for your feedback, you have brought up some good points and I will be sure to be pass this feedback along to our team. While we don't have a way for developers to look at their Gild Profiles right now, we're exploring ways for developers to participate and contribute. I'd be happy to talk to you about what's in your Gild Profile and would love to hear your thoughts on what information you would find valuable from Gild as we explore this option.

Please let me know if you have some time next week to get on a quick call so that talk more about the information on your Gild Profile and address any concerns. If after that session, you would like to opt out of Gild, we can definitely do that. We would love to hear your thoughts on how Gild can work along with the developer community.

Thank you and have a great weekend.

Thanks, Swapna

I've replied and asked for a call later this week, and will update as we talk more.

Hackernews discussion

Javascript Testing

I shared a presentation at our engineering meeting this past Friday (at Airbnb) whereupon I discussed how to write clean, fast javascript tests. One can almost always write good tests and achieve high test coverage by simply using unit tests and stubbing out DOM APIs. That isn't to say that browser-based tests aren't useful; it's to say that you can get a great testing ecosystem running without complicated setup. Mocha will also, neatly, allow you to go ahead and run all of these specs within browsers anyway, so if you do find it advantageous, you have that option open to you.

I also threw in a couple slides about how you can use Browserify (or really, any kind of CommonJS-style module system, like require.js) to write all of your code as modules to make both testing and browser asset compilation awesome.

Hopefully the slides are clear without too much explanation or notes, but if they're obtuse, feel free to contact me and I'll add appropriate notes. The slides are built in Reveal.js, and are available (MIT Licensed) at

Click inside the presentation, and then either use your arrow keys, the arrows on-screen, or if on mobile, slide.

Sharing Presentations

I've been using the supremely excellent reveal.js library for all of my presentations in the last year. It's super easy to use, it's very lightweight, and I can build a sharp presentation without having to download or install some 400mb software package on my computer and the computer I'm using to present, if, God forbid, it's not the same as I used to write it.

Also, by virtue of being html, I can write my own theme files in CSS and plugins in Javascript. Some plugins supported include secondary-monitor speaker notes, remote control over mobile phone, markdown, and code syntax highlighting. It can also print all the slides to PDF in individual pages. And, perhaps best of all, you can use gifs as massive background images.

Oh, and if this wasn't already magical enough, I can store all of my presentations on GitHub. That allows for sharing, pull requests, and quick updates through either Vim or the web ui.

That's when it struck me today - not only can I put my slides on GitHub for keeping track of edits and all that Git goodness, but I can create a gh-pages branch, and it will automatically host my slides under my domain name.

But wait, there's more. You don't even have to hop into the terminal to do it. In GitHub, click on the 'branches' button, as shown below; type in gh-pages, and a minute later you're up and running.

Clicking the branch button in a GitHub repository

Check out these examples:

<< View Older Posts