Moving …

I’m moving my long-form blogging over to here:

And plan to start using tumblr for what it was intended for - a tumblog. Expect to see more short posts here, and long posts over on the blog.

Writing an Instagram Web Client

This post is about why I created the Instagram web client Hiverly.

I Follow Tony Conrad on Twitter

It all starts with Tony Conrad (waves at Tony). You can read all about him on his page.

Blame France

There is a sequence of events that has played out every week or so in my office. Twitter tells me that Tony has posted a new Instagram picture. It is frequently a picture of France, one of my favorite places in the world. I click the link, sigh, and hope that I’m not missing any more pictures from France that Tony is posting.

I didn’t follow Tony on Instagram at the time, so I would never really know. It’s an easy problem to solve, but I never seemed to do it. To follow him would require me to track down my phone, run Instagram, find the user search feature, search for him, and follow him. I never had the energy for it.

What I wanted was a web app where I could navigate around, find Tony (or anyone else), and click “follow”. I wanted to do it on the web, right at the moment I was staring at another picture of Paris.

I didn’t find a website like this, so I wrote this one using the new Instagram API. I had a simple goal. Find Tony, follow him, and see his pictures show up in my feed. 

It Works!

It works even better than I expected. I follow Tony now (along with about a dozen other people), and I still don’t know how to follow people using the Instagram application yet. You can check it out here:

Next up, using the Instagram API from javascript.

The Search for Meaning

I’ve been struggling to write down some version of my philosophy and observations on leadership and management. I’ve given up. I’m just going to write short posts on related topics and see if I can roll it up into something coherent later. This is part one.

The Search for Meaning

If you want to be an effective leader at any level of an organization, you absolutely must respect the deep human need to work on things that matter. One of the most powerful tools that you can develop as a leader is the ability to articulate why your company matters, and how each person in it is contributing in ways that matter.

This type of communication sounds simple, but it doesn’t come naturally to everyone. This is a learnable skill, but it requires you to think on a whole number of different levels. You need to consider aspirational goals as well as specific “right now” goals. You need to be able to think deeply about your company, your team, and each individual on your team.

A Few Simple Questions

If you haven’t done this sort of exercise before, here is where to start. Ask yourself these questions:

  • What is my company trying to achieve? (your aspirational goal)
  • Who will care and why will they care?
  • What is my company working on right now?
  • How is that helping advance the cause?

If you struggle to find answers to these, you should stop here and re-evaluate. You may have bigger issues …

Assuming you do have answers, ask those same questions about your team and the people on your team. Your answers should be congruent. If they aren’t, then something is screwed up and you should figure out what it is. Maybe you have people working on things that don’t matter?

What you are looking for is a narrative that every member of your team can follow (and ideally internalize) that starts with what they are working on right now, and leads naturally to the aspirational goals of the company. Hopefully everyone is incredibly psyched about those aspirational goals.

What You Get for It

This narrative does three really important things. 

1) It actually validates that everyone is doing work that matters.

This sounds so obvious, but in practice most organizations have people working on things that don’t matter at all, or which don’t matter right now. It’s a waste of resources, and a waste of the time and energy of your staff. In a way, it’s sort of disrespectful of everyone involved.

2) It sets the expectation that everyone’s work should matter.

This is hugely empowering. You not only want your team to be doing things that matter, you want them to make a lot of noise if they feel like they aren’t. You want them to aspire to make a difference, and in fact you want them to aspire to making the biggest possible difference they can.

3) It’s hugely motivating to the people involved.

You are showing real respect to the people on your team by asking them to do things that matter. You are giving them tools to describe how their work makes a difference. You are surrounding them with people who also deserve respect, because their work matters. Done right, this should make every individual more motivated and productive, and it should also help produce a high level of respect between people.

Measure Retention

I was re-reading some notes I took around the time that 1000 Markets was sold to Bonanza and came across this one.

"Making something people really care about is hard, but without that, you really don’t have any chance at all."

A startup is all about building something people care about, and then scaling that up. Scaling is hard, and building is hard, but nothing is as hard as figuring out what you can deliver that people will care about. 

The thing is that the steps aren’t all that complicated.

  1. Figure out a real problem that afflicts a lot of customers
  2. Actually solve it
  3. Learn how to communicate
  4. Go out and get more of customers

It’s really easy for startup founders, even ones who have been around the block a few times, to start with (1) and really never look back. They take it as a given that they understand the customer and their problem. The thing is, if you are wrong about that, you’re screwed.

Most startups don’t fail in steps 2-4. Most startups have people who are masters of execution, great communicators, and who have a nose for finding customers. But that’s all useless if you aren’t solving a real problem for real customers. All that time spent in implementation, communication and traffic driving goes to waste.

It reminds me of Monty Python and the Holy Grail…

"… Launcelot, Galahad, and I, wait until nightfall, and then leap out of the rabbit …"

Sales and marketing folks really live to work in (3) and (4). They want to craft language, work on branding, naming, and logos. They want to start exploring and measuring acquisition channels. I really can’t blame them.

This stuff is fun, and at some point in a company life cycle it’s important. It’s also super rewarding in the short term. New users come in. You get compliments on your brand. You have numbers you can measure and tweak. It’s addictive, and easy to deep end on. Tech people are guilty of the same sort of behavior, but usually in different realms (in my case - premature optimizations for scale and a weakness for no-sql databases).

Back to Retention

Do you have a real problem, and are you solving it? How do you know? Customer feedback is really useful, but not entirely reliable. Customers will frequently tell you what you want to hear. 

You should measure retention. I suggest measuring a really simple version of retention “did the user return and perform {key action} in the last N days?” If you don’t have this information for your site, you should be a little bit embarrassed. Go get it. Then go look at your numbers.

Let’s assume, for the sake of argument, that they aren’t what you were hoping for. There are a few possible reasons:

  • You have been attracting the wrong people to your site
  • You have the right people, but your solution isn’t complete / easy / cheap
  • You aren’t actually solving a problem people care about

The first two are solvable (probably). They require execution skills and small pivots, which require skills that most startups have in spades.

The third one isn’t as easily solvable. It represents more of an existential crisis. Most people try to avoid existential crises because they hurt a lot. They also can produce paralysis, and there’s nothing a startup founder hates more than that. But getting a positive answer (and pivoting until you have a positive answer) is key to understanding your business, and putting yourself in a place where all your execution skills can be put to good use.

So go your measure retention rates. Measure them weekly. Do cohort analysis (meaning - measure group your users by when they signed up, and measure retention rates for each group, to see if they are improving). If your retention rates aren’t what you want, figure out what is wrong, and go fix them.

Know early that you are making something people really care about. Do it because, while it is hard, without it, you really don’t have any chance at all.

My Identity Problem

I’m working on a side project, and part of that project includes one really basic social features - Follow. For one user to follow another, they not only need some discovery mechanism, but they also need some concept of the identity of the people they might choose to follow.

It’s not hard to code. It’s just a simple profile: user name, real name, picture, and a short bio. I bet most web developers have done this a dozen times. 

But it sucks. It creates a crappy user experience, and it feels completely redundant. As a user, I already created a profile in Facebook, Twitter, LinkedIn, and Gravatar (for pictures at least). Heck I think I filled one of these in on Quora. Oh, and too. I bet I have a dozen more out there that I’ve lost track of.


Why is my identity intimately tied to my social graph? Or my work history? Or a question and answer site where I browse the answers of more skilled writers? Or a place where I have a big vanity picture in which I look vaguely awkward? This feels completely lame.

I am not asking for Open ID, or single sign on, or anything like that. All I want (as a user) is to be able to give a website my email address, and let it find those core profile elements all by itself. I don’t want to have to traipse through a dozen services to change my profile image. I don’t want to hand a service the keys to my social graph either. I just don’t want to have to upload another profile image, and enter my bio.

I understand the barriers here, but really … Is this too much to ask?

Standing at Work

A tweet from @busterbenson linked to this post Why and How I Switched to a Standing Desk. It reminded me that I had started the standing desk experiment, but never really followed up. After about 8 months, I think it’s an unqualified success for me.

The Motivation

I was pretty motivated. In the past I had experienced numbness in my legs from sitting too long, and back pain as well. It seemed like a no brainer to at least give it a try. Also things like this recent article were hitting the news even back then:

The latest findings, published this week in The Journal of the American College of Cardiology, indicate that the amount of leisure time spent sitting in front of a screen can have such an overwhelming, seemingly irreparable impact on one’s health that physical activity doesn’t produce much benefit.

The study followed 4,512 middle-aged Scottish men for a little more than four years on average. It found that those who said they spent two or more leisure hours a day sitting in front of a screen were at double the risk of a heart attack or other cardiac event compared with those who watched less. Those who spent four or more hours of recreational time in front of a screen were 50 percent more likely to die of any cause. It didn’t matter whether the men were physically active for several hours a week — exercise didn’t mitigate the risk associated with the high amount of sedentary screen time.

(From, via Matthew Yglesias,

Starting Out, and The Routine

I spent days making small adjustments to my setup and routine. Height adjustments, screen angle, posture, when to take breaks, etc. It hurt for a few days, and there were lots of times where I was worn out at the end of the day from standing. Other than minor knee pain from standing with my knees locked, I felt it most in my calves, which were sore almost every day. A soft carpet and soft shoes help a lot. Also, I was starving hungry by the late afternoon for the first few weeks.

After a while I found a posture that worked for me - knees slightly bent, legs slightly apart, and the weight on the balls of my feet. I am on the phone and skype often enough that I was able to take relatively regular breaks from standing, and would instead pace around. I also pace when I’m thinking. This break from standing still helps a lot.

For long coding spurts, this starts to break down. I forget to move, and I notice after a while that I hurt from being basically motionless other than furious typing. So I code, when I get uncomfortable, I move to the couch for 20 minutes, then I’m back up standing again. My couch produces really rotten posture, so it’s easy to get motivate to stand again.

The Setup

Here’s a picture of my setup. It’s pretty simple.

I had a tall filing cabinet, and just added and removed books until it was the right height. The cost was $0.00. The carpet and pad under where I stand is a huge help, and I wear thick socks and slippers for those times when the floor is cold or my feet start to hurt. I was thinking I would use this as a test and then buy a desk, but this has been great for 8 months, so I’m not terribly motivated to spend the money on a desk at this point.

Is It Worth It?

I’m a fan, and I think everyone should at least try it if they can. I have to believe this is better for my health than working in my cheap $80 office chair at a poorly designed desk, that’s for sure.

Jumpstarting the OODA Loop with Hypothesis Driven Development

@swombat has a blog post up called How to evaluate and implement startup ideas using Hypothesis Driven Development. It’s a great post. You should read it.

We applied a quick and dirty version of this strategy during a period late in the life of 1000 Markets, and we learned a ton from it. If you aren’t doing this for your business, I highly recommend it. The tl;dr version is this:

  • Meet weekly (or more often if you can manage it)
  • Identify the single most important question facing the business
  • Break it down into parts that feel answerable
  • Figure out how you can get answers (or partial answers) quickly
  • Get those answers before your next meeting, then repeat

We were in a customer development phase of our business at that time, so the questions we were trying to answer were things like “people see X as a real pain point” or “people will pay to have the pain of X taken away”. At a different place in our business the questions might have been things like “if we offer free shipping, our conversion rate will increase by a meaningful amount” or “we can acquire traffic through Google ad-words at $X CPC and it will convert at Y%.”

The strategies for getting answers to the questions we had almost never involved writing code. When this happens, it can be deeply frustrating for your team, because it seems like you aren’t making progress on a product. We recognized that this was a false trade-off, but in a less functional organization, I can easily imagine discussions like:

tech guy: We can use phone calls and surveys to get this information in 48 hours.

business guy: Can’t we just code it and see what people think, then we’ll have real product?

tech guy: Why code something we won’t end up wanting? It would take longer, and we can make phone calls today.

business guy: So you’re saying the engineering team won’t make any progress on the product?

tech guy: *sadness*

This wasn’t us… but in a different organization, I can totally imagine this.

This exercise is a fast way to jumpstart your way into the OODA (Observe Orient Decide Act) Loop. It can be hard to figure out where to enter this loop and this approach is a solid way to get started. For more information on OODA and Lean Startups, check out this blog post from Eric Ries - Principles of Lean Startups

Marketplace Revenue Models

For most startups, a complex business model is a waste of time. It is too hard to create, and it doesn’t help you learn or take action. But that doesn’t mean you shouldn’t have a business model. You need to document and validate your assumptions about revenue and costs, track progress, and know where you should push.

A marketplace website is by nature a complex business. There are a nearly endless number of possible revenue streams to consider – You can charge a monthly fee to be on your site, a listing fee, a percentage of each sale, premium placement on your home page or search results, and more.

But there’s a simpler way to look at a marketplace business that can help you make decisions, see where your problems are, and let you know when you are succeeding or failing. It requires only a few simple assumptions and some basic math.

Visits                 100,000
Conversion Rate              1%      Assumption #1
Transactions             1,000
Average Checkout           $20       Assumption #2
Total GMV              $20,000
Marketplace “Fee”           15%      Assumption #3
Total Revenue           $3,000

Starting at the top – Visits is (of course) visits to your site. Your conversion rate tells how many of those visits turned into transactions. The average checkout is the average size of each of those transactions. Total GMV is the Total Gross Merchandise Value sold (so the total of all sales on your site over the time period). That “marketplace fee” is how much you earn, represented as a percent of the transaction.

About that Marketplace “Fee”

The marketplace fee can come from charging a percentage of the checkout, or it can come from charging sellers to list items, or from a monthly fee you charge just to sell in your marketplace. You can charge for premium placement on your site, like the home page, or top of search results. There are lots of options for getting your sellers to pay you.

But it doesn’t matter where the money comes from, because in this model, we just assume that you are extracting some money from your sellers for helping them make a sale. If we divide the total amount you are charging your sellers by the total GMV, then we arrive at a nice percentage which is great for modeling, and useful for you in making decisions.

How big should that number be? Well, your sellers aren’t stupid. If you extract too high of a fee to make a sale, then they will leave. You don’t want to be stupid either. If you extract too low of a fee, you will go out of business.

Look around at other sites, choose a target number that makes sense for your business, and then figure out how to get to that number. You can use whatever charging mechanism makes sense to you and your customers, and you can improvise and pivot along the way to reaching your target.

Backwards from Revenue

Suppose you want $12,000 – That’s enough for you to cover your server costs, pay your accountant, and leave something to keep you upbeat when you are answering customer support emails late at night instead of sleeping.In the first example we turned 100,000 visits into $3,000 in revenue by moving down the list of steps, but you can also work back up the list. Ask yourself – How much do you want to earn every month in net revenue?

Total Revenue         $12,000
GMV Multiplier            6.6       (1 / 15% Marketplace Fee)
Total GMV             $80,000
Average Checkout          $20
Transactions            4,000
Visit Multiplier          100       (1 / 1% Conversion Rate)
Visits                400,000

There is your sanity check. Can you generate 400,000 visits? Do you need to charge a higher fee to achieve your revenue goals? What assumptions are you making? If your goals require you to charge your sellers 150% of GMV, that may not be sustainable…

Keeping it Simple

This model is really just a basic retail revenue model. The difference is that for marketplaces, the marketplace fee ends up typically being so much smaller than gross margin in retail. As a result, the volume of transactions and visits needs to be higher to make the same amount of money.

Whatever model you create for your business, try to make it obvious how the things you are doing in your map to lines in your model. In this model driving more traffic affects visits, doing A/B testing of your checkout sequence affects conversion rates, upsell in the cart (“you may also like …”) affects average checkout, and charging for premium placement affects your marketplace fee. You can set goals, take actions, and see whether you are moving the numbers you intend to move.

Having a business model doesn’t mean you have a business. You can be right about your assumptions, and wrong about the opportunity for your overall business, or your ability to move your numbers, or your costs, or any number of other things. But it’s a start.

App Store Predictions

There is a question on Quora asking How will the Mac App Store change the technology scene? that made me want to put my predictions down in print.

This is how apps will be bought in the future

The app store solves a real problem for consumers of desktop applications. The old method of discovering apps (go hunting, or wait for someone to tell you about an app) stinks. This is much much better. I don’t have to go to a store, or hand my credit card to yet another random website, and I have this vague sense that Apple has vetted the software so that it won’t install viruses or otherwise break my computer. As a consumer, my life just got a lot better.

For app creators, there is an easy path for users to discover your software, for distributing updates, and for receiving money from sales of your software. I win as a developer too.

I expect Microsoft to create a similar online store for Windows applications. I think that in three years, this is how apps will be bought, for all platforms (desktop, mobile, pad, whatever) and that it will seem completely normal to everyone involved, and that while other avenues will continue to exist for app distribution and discovery, they will be marginalized.

There will be viral apps on the desktop

Some mobile apps have been scraping the users address book to create social connections inside the application. I think this is brilliant. Sneaky, but brilliant. We will see this on the desktop as well. Free applications, with the trust created by the app stores, combined with quick and easy access to the users social graph seem like really interesting enabling technologies for viral apps.

This will make my app using experience better for any application where a social connection adds value. I suspect we will quickly start to see locks on things like the address book, similar to what exists now in a desktop setting when an app attempts to access restricted resources.

Websites will release apps, for a better experience

Twitter already has one (and I like it better than the site). I’m surprised that Facebook doesn’t, since I think my experience would be a better one through an app. Other services like Daily Booth or Instagram seem like they are begging for a really great desktop app.

Desktop applications will become another part of the puzzle that web services need to figure out how to work with. This means an environment where you have web, mobile, and desktop app to deal with as a developer. This will be painful as a service provider, but when it works well, the user experience is likely to rock.

One side effect I think we will see is better apps, and weaker websites. I’m not a user, but from what I’ve read and seen Instagram has a workable website, but the really great user experience is in the mobile app. Moving to a desktop app might allow them to create a similarly great user experience outside of their website.

Users will increasingly have “first experiences” with a website via an application

This happens now with mobile apps - users download an app, sign up, and then find the website side later. I think we will see this on the desktop as well, particularly with any sort of viral application where the app download is the users action related to the service.