Skip to main content

Joining Mashery

Last week, I started a new role as a UI designer and front-end developer at Mashery. They help companies build and manage their APIs. I’m the guy who builds out the developer.your-company-name.com sites.

Briefly, here are three reasons why this job is so kick-ass:

  1. APIs will be an integral part of the web as it increasingly becomes something we access in more than just a browser—in apps, on smart devices, and through non-visual interfaces (like Siri and Ok Google). I’m pumped to be part of that.
  2. This is a hybrid role. In the past, I’ve been asked to choose whether I want to design things or build them. At Mashery, I don’t have to. I get to translate business goals into device-agnostic web experiences, and then build them. I even get to help educate customers, clients and other developers on modern web best practices. Awesomesauce.
  3. It’s 100-percent remote. I get to role out of bed and start making awesome stuff, and structure my work around the way I work best. It’s a recipe for awesome.

I’m thrilled to be part of Mashery, and grateful that I work in an such an exciting industry.


Climbing up and down the DOM tree with vanilla JavaScript

On a recent Javascript project, I needed to climb up the DOM tree looking for the first element that had a particular class, ID, or data attribute.

This is really easy to do with jQuery, but today I wanted to share some simple vanilla JavaScript methods to duplicate jQuery’s .closest(), .parent/s(), and .find() APIs.

Read More…


Ditching jQuery

About a year ago, I wrote an article documenting my move away from jQuery in favor of modern, native JavaScript (aka vanilla JS).

Since that time, my approach has changed quite a bit. This article details how I write scripts today, and includes a growing collection of native JavaScript equivalent’s for common jQuery tasks.

Read More…


Farewell Constant Contact

Today is my last day at Constant Contact, a company I joined just four short months ago.

I’ve never felt more at home professionally. Constant Contact is filled with geeks with social skills—some of the most amazing, quirky, and friendly humans I’ve ever had the pleasure of knowing and working with.

But my daily commute is about three hours long. The summer disappeared. I’m missing some of the best moments of my son’s life. And I’ve been offered an amazing opportunity that allows me to work 100% remotely, on my own schedule (more on that some other time).

I struggled with this decision. Not only are the people amazing, but it has an insanely strong learning culture. Lunch and learns, conferences, memberships, outside speakers—and of course the informal stuff I’ve picked up from the other talented people I work with.

Leaving that behind, and so abruptly, is hard. But missing out on my life is harder. And I’m both fortunate and grateful to work in a field that affords me plenty of options and opportunities that other people in other industries don’t have.

So a very big, heartful thank you and goodbye to my friends at Constant Contact. I’ll truly miss you guys!


Humans Need Not Apply

C.G.P. Grey’s latest video, “Humans Need Not Apply,” is a pretty radical departure from his normal style of video. At 12 minutes, it’s much longer than his typical video. He talks much slower, and instead of his normal animations, uses lots of video clips.

In my opinion, it’s the best video he’s ever produced, and reminds me very much of the Everything is a Remix series (while still being uniquely Grey).

A few thoughts…


Responsive sticky footers

If you have footer content on a page with little body content, the footer may end up floating in the middle of the page on taller viewports.

Most of the solutions you’ll find on the web require you to apply a fixed height to your footer (see here, here, and here), or apply the display: table property to your content. Of course, if your site is responsive, the height of the footer will vary by viewport. And telling a table-less layout to behave like a table just feels wrong.

Today, I want to share my simple technique for responsive, sticky footers.

Read More…


Function.prototype.bind and Opera Mini

Last week I discovered that a few scripts that should work in Opera Mini were not. And they weren’t just failing to work. They were passing the mustard test, so important content was getting obscured with no way to access it.

The problem turned out to be with Function.prototype.bind, a late addition to the ECMAScript 5 standard that is missing from some otherwise compatible browsers (like Opera Mini). Fortunately, there’s an easy fix.

Read More…