Edge cases

A few months ago, the parking garage at the San Jose airport ate my credit card. There was noone at the exit so I parked and went hunting for someone who could help me. When I finally found someone, they kindly ejected my card and explained that their machines use a light to detect when you insert your card. Since my card is made of clear plastic, the light shone right through causing the machine to think the slot was still empty.

It’s an obvious oversight, but who do you blame? American Express? The company that made the parking garage payment system? I’m not sure, but I don’t use that card in automated machines anymore.

That experience reminded me of the importance of thinking though edge cases. Most people don’t have clear credit cards, but for those that do, it’s important that they work everywhere. A good software developer can build an application that works 95% of the time. A great one will think of all the unique edge cases (like clear credit cards) and build systems that are smart enough to handle them. At Torbit, we automatically transform websites so they load faster. It’s a tricky process and there are hundreds of edge cases that could trip us up. I often get asked how we compare to various competitors. For us, the big differentator is that last 5%. It’s being smart enough to know what to do with broken CSS or how to handle JavaScript that’s missing a very important semi-colon. It means we do the right thing even when you send us a JPEG with a “text/html” content type.

The last 5% is the hardest part, but oftentimes, it’s the most important.


The future of mobile

I’ve been quite intrigued by the conversation that’s been developing about the future of mobile. It started with Fred Wilson’s post about Rethinking Mobile First. As usual, I have my own opinions on the topic. Here’s what I posted in the comments on Fred’s blog:

The future I see is a world where my phone is my laptop. I walk into my office and my phone connects over something like bluetooth to my monitor, keyboard and mouse. Mobile devices already have enough computing power for just about everything I need & that is only increasing. The CPU in my iPhone is better than the laptop I had 5 years ago. In a couple years it won’t make sense to have both a phone and a laptop/desktop anymore. A laptop is just a bulky phone that can’t make phone calls. The part about mobile that sucks most is the interface. I don’t want to stare at a tiny screen. I don’t want to type on a piece of glass. The UI will have to adapt based on the screen site, but we already have everything else we need. Mobile = Desktop. Sometimes I’ll be connected to a screen/keyboard. Sometimes I won’t be.

Or better yet, I hope Brad Feld is right that we’ll all be using Google Glasses instead.



When selling, it helps to tell a story. A story that resonates. A story that is believable. A story that is easy to share. Don’t just tell me what you’re offering. Tell me why you’re different.

Shane Company does a fantastic job at this. Their radio ads are the longest-running continuous campaign in the history of radio. In these ads, their founder, Tom Shane earnestly talks about “your friend in the diamond business”. Not only does Shane sound like a local guy I can trust, but he gives me a plausible explanations for why I should shop with them. He doesn’t say “we’re cheaper”, Shane says “we buy our diamonds direct and pay cash so we get a better deal”. He promises they won’t pressure you and then backs it up by explaining that their sales team are not paid on commission. Shane even encourages me to shop at other stores first so I can compare the difference!

The are hundreds of companies making shirts. Apparel is a tough market and it’s nearly impossible for a new entrant to stand out. But Ministry of Supply didn’t just make a better dress shirt. They made a shirt from outer space. They told a story that grabbed our attention. And thousands of people paid in advance for the chance to get their hands on one.

Walk into a Louis Vuitton store. They’ll tell you the whole story of how Louis Vuitton designed a better trunk with a flat top instead of a rounded one. They will tell you how each product is carefully hand crafted and how their bags are perfect for every occasion. But at the end of the day, they’re not selling bags, Louis Vuitton are selling a feeling. The most important story they’ll tell you is about the feeling you’ll have carrying one of their bags on your arm as your friends watch in envy.

The French Laundry is a restaurant in Napa Valley. Several times, it has been named “the best restaurant in the world”. But the French Laundry isn’t just another fancy restaurant. They have their own gardens where they grow their own vegetables and spices. Every day, they serve two different nine-course tasting menus, neither of which uses the same ingredient more than once. They not only give you a lovely meal, they serve you a memorable story to go along with it.

The best brands and businesses understand how to tell compelling stories. Don’t just tell me what you do. Tell me why.


Err on the side of action

Last weekend I was in Boulder for a wedding. For weeks I’d been looking forward to going climbing while I was back in Colorado. So on Sunday some friends and I headed up Boulder canyon to climb some rocks. We debated before leaving whether the dark clouds were going to be an issue, but we decided to go anyway. As we drove up the canyon, rain drops began to fall on our windshield. We kept driving. We reached the trail head and pulled off on the side of the road. The clouds were grey all around and the rain was light but unyielding. We started discussing whether to hike up to the crag or to go back and play board games or something. Wet rock isn’t much fun to climb, but we were torn. We didn’t want to turn back if there was a chance of it clearing up, but our group was split on what to do. I threw out my vote: err on the side of action.

“Err on the side of action” is really just another way of saying “regret the things you do, not the things you don’t do”. I’d rather get soaked in the rain and have a failed climbing trip than turn back without giving it a fair shot. People tend to overestimate how much regret they will later feel from their decisions. Research suggests that people are remarkably good at avoiding self-blame, and are better at avoiding regret than they realize. Forgetfulness and selective memory are a part of being human and sometimes it can be a blessing. Nostalgia has a way of making us forget the bad. We remember the “good old days”. We remember college as the best time of our lives, or that relationship that seems so perfect in retrospect, even though you had all sorts of problems at the time. Grab life by the horns and don’t worry too much about doing stuff you might regret.

Making the decision to err on the side of action can also be a useful device since there are so many things that are good for you, but you won’t feel like doing them in the moment. Exercise is an easy example. You don’t feel like going for a run, but you’ll feel better if you do it. Perhaps you don’t feel like going out and being social, even though that’s the one thing that would cheer you up. Make the decision ahead of time to say “yes” to the things you want as part of your life. There’s a chance you’ll do something you’ll genuinely regret, but optimizing your life for the least amount of failure or regret is a pretty horrible way to live.

One of my favorite quotes is from Michael Jordan:

“I’ve missed more than 9,000 shots in my career. I’ve lost almost 300 games. 26 times, I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.”

In an interview at New York’s IAB conference, Facebook COO Sheryl Sandberg said “We’re more afraid of losing by standing still”. Big companies often fall into the “safe” position where they feel like they have so much to lose that they don’t take enough risks. It’s neat to see Facebook so committed to erring on the side of action. They admit that they’ll make mistakes, but as Marc Andreessen said “If a company is hitting more than 50% of its goals it’s too conservative”.

I’ve missed a lot of buses over the years. I get impatient waiting for them and just start walking in the direction they are going. I always hope I’ll time it right so I’m within sprinting distance of the next stop whenever the bus finally shows up. It doesn’t always work out for me, but I’d rather be proactive than just stand around.

Don’t be scared to fail. Be proactive. Err on the side of action.


The power of an audience

I know Brett Slatkin from my work on PubSubHubbub back in the day. Brett wrote a great post about why he has his own website. I think it’s an interesting discussion to have in a world where increasingly more content lives on third-party properties like Facebook, Twitter or Google Plus. Brett lists his reasons as being:

1. Having a home

When I want you to know something, I’m going to talk about it here. This is where you’ll be able to find me over time and space. This is my home. People in the neighborhood used to just drop by to see folks and catch up; this site serves the same purpose for me. It’s something we can depend on so we can always be in contact.

2. Expressing myself

This blog is a creative outlet for me. I designed how the pages look and choose the content in each post. If the site is ugly or hard to read it’s my fault, but I’m proud of it anyways. I like that readers get a feeling from my site that’s unique to me. I like that my content and how it’s conveyed are a single package that I’ve created myself.

3. Internet citizenship

We call it the “web” because our sites all interconnect with links. Hyperlinking is what gives the Internet its richness. Following links has helped me learn so much. So I want to give back. I want to cite others and be cited. I want to contribute to the web’s complexity. My own site lets me do that.

Each of his points resonate with me. But for me, there’s one reason that trumps them all: the power of an audience.

I remember showing Twitter to a friend in the early days. Like many people, he told me that he just didn’t get it. Why would anyone care what he was eating for lunch? Later in our conversation my friend mentioned that he was looking for a ticket to a sold-out event that evening. Being one to never pass up the opportunity to show off, I pulled out my phone and promised I’d have a ticket for him in 5 minutes. My Twitter followers came through for me and my friend got a first-hand demonstration of the power of having an audience. He signed up for Twitter that same night.

The fact that Marissa Mayer, Mark Cuban and thousands of other people follow me on Twitter is really cool. So are the friends I have on Facebook. And the people who are subscribed to this blog. Having an audience is an incredibly valuable asset no matter where you build it. It blows my mind that almost half a million people have visited this site. I love the internet. It’s a way for ordinary people like me to have a voice in the world. I don’t take that for granted for a second. As always, thanks for listening and reading along. It means a lot.


Working hard to be lucky but not working too hard

When I was young people used to ask me what I what I wanted to be when I grew up. As a cheeky young lad, I’d tell them “I don’t know. It hasn’t been invented yet”. Little did I know how true that statement would end up being. Technology has evolved so fast. Most of the stuff I do on a daily basis wouldn’t have made any sense if I’d tried to explain it 10 years ago. If I went back 100 years and tried to explain it, people would think I was nuts.

I just read Jud Valeski’s post about his 3 steps to Software. Like Jud, my journey to software began with making little blocks dance around the screen with some BASIC programming on an Apple IIe computer that my dad bought my me. I’ve shared the story of how I became a programmer before and how I too became addicted to building software. There’s something incredibly powerful in building things that matter and having the chance to really impact the world with your work. The amount of influence one man with a laptop can have is mind-boggling. Yep, we’re lucky. I can’t think of a better time in history to be alive.

Earlier today I had the following exchange with Vinicius Vacanti on twitter:

While I’m certainly a believer in hard work and putting yourself in the position to be lucky, I’m not convinced that just working hard is enough. You see, at my last company, I worked my butt off for 3 years. I went 3 years without a vacation, 3 years working nights and weekends to make my dream come true. But in the end it didn’t matter. EventVue failed. Since then I’ve tried to have more balance in my life. I’ve learned to close the laptop and go outside. Today I spent my afternoon rock climbing at Castle Rock and building some new friendships. It was a much needed break after a long week of work.

I have an addiction to building things. I work hard. Although I don’t write code as much as I used to, I still get immense satisfaction from staying up all night cranking out some new functionality for Torbit. I love surprising customers with 5 minute response times to support emails that come in at 3am. Part of the reason I work so hard is I feel like I’ve been handed the best hand of cards I could ever imagine. It feels irresponsible to not make the most of it. At the same time, I’m trying to find more balance in my life. As Micah Baldwin said, I want to make sure I’m running to the right place, not just running hard.

While my search for work/life balance often feels like a losing battle, it’s helpful to have role models to emulate. Brad Feld is a living example that it’s possible to work hard and still find balance in life. Go read Brad’s post about falling into the busy trap if you haven’t yet. Elon Musk is another example of someone doing incredible work. As the founder of both Tesla and SpaceX, it’s hard to imagine a busier guy… except he’s sitting on a beach in Hawaii right now.

If Elon Musk can take a breather, so can you.

 1 comment

I’m a published author!

One of my life goals is to write a book. I recently came one step closer to that goal with a contribution to the new Web Performance Daybook Volume 2 from O’Reilly.

The project started out of Stoyan Stefanov‘s Performance Calendar which was a series of articles from a bunch of us in the performance industry. The articles are now published in one handy collection containing lots of insights from some of the smartest people I know. I was honored to participate in this project and wrote Chapter 7 titled “Automating Website Performance”.

The authors’ royalties will be donated to a Web Performance charity so grab a copy for everyone in your organization (Paperback, Kindle). You’ll be benefiting a good cause and learning at the same time!

 1 comment

We need to end the TSA

I just read a post by my friend Matt Galligan sharing a particularly bad experience he had with the TSA.

One agent began to escort me through the machine, where I assumed falsely that I could just walk straight through. When she realized I was an “opt out”, she escorted me back through. It was then that I let her know of my concern for my materials and I’d appreciate the opportunity to watch over them. Her exact words back to me: “No, no you can’t watch your stuff. You need to go back over there.”

Like Matt, I always opt out of the nudie photo makers at the airport. My experience varies from airport to airport, but more often than not I’m greeted with scowls and “are you sure you want to do that?” While I’m worried about the health issues (it says a lot that the TSA won’t let anyone test them!), it’s my small way of protesting the security theater that inconveniences everyone without making us any safer.

The fact that they don’t let you watch your items while you are waiting for a pat down is unbelievable. Hearing Matt’s story reminded me of the time I walked through for my pat down just in time to catch someone “accidentally” walking away with my brand new mac book air. He apologized and handed it back, but if TSA had kept me waiting even 30 seconds longer it would have been gone.

TSA is a joke and people need to start speaking up if we want things to change.


Torbit demo with Robert Scoble

A few weeks ago I met up with Robert Scoble to chat about what we’ve been building at Torbit. The video he made was published today. You can check it out below.

Thanks again Robert! Rob La Gesse too!

 1 comment

Guest post on High Scalability

I’ve been a long time fan and reader of High Scalability, a blog about building bigger, faster, more reliable websites. It’s a great resource for anyone who cares about building websites at scale.

Yesterday, I had the privilege of writing a guest post for them titled, Averages, Web Performance Data, And How Your Analytics Product Is Lying To You. I wrote about the importance of looking beyond averages when looking at your performance data. I also talked about the importance of using Real User Measurement to make sure the numbers you are looking at are accurate.

For people who care about performance, it’s important to use a RUM product that gives you a complete view into what’s going on. You should be able to see a histogram of the loading times for every visitor to your site. You should be able to see your median load time, your 99th percentile and lots of other key metrics that are far more actionable than just looking at an average.

You can read the full article here.