Show contents

How to do anything

Many people, when faced with doing something new that they know nothing about, won’t ever get started. The project seems too daunting and they don’t have any context for even where to begin. In fact, in the very beginning, Justin.tv was exactly this type of problem.

When we first conceived of Justin.tv, it was simple to explain: we’d have a live streaming video feed of our exploits in San Francisco broadcast from a camera in real time to many viewers simultaneously watching on the web. It wasn’t as simple to figure out how to make this a reality, in fact, Emmett and I (it was just us at first) didn’t know the first thing about online video protocols, servers or infrastructure, cameras, or mobile network connections. At that point, we were simply two web developers with a year of experience building an AJAX calendar app. To us, the whole project appeared to be one big black box:

  1. Build Justin.tv

However, we could break this down:

  1. Figure out how to build a mobile camera that streamed video to one server
  2. Figure out how to ingest a video and stream to multiple viewers from our server

Going further:

  1. Talk to an expert in hardware devices
  2. Research available mobile data transmission technologies
  3. Talk to a startup we’d recently met who was doing live streaming (to figure out what tech they were using)
  4. Investigate using a Content Delivery Network for streaming

I’ve found that when faced with a set of seemingly insurmountable challenges, the first step towards making it easier is to break things down into as large a set of small individual tasks as possible. In this case, our list of to-dos was broken down further many times. #1 lead us to Kyle, who became a cofounder and built the first streaming device (a computer that encoded video data from an analog camera). We learned that EVDO Rev A was coming to San Francisco, enabling us to send data at reasonable speeds over the cell networks (#2). Following up with #3 lead us to learn about streaming server options, and eventually choose #4 (paying someone else to stream our video for us). Six months after we first began working on the Justin.tv project full time, starting from a place with zero knowledge, we had a mobile streaming hardware device that sent video to multiple viewers, and launched our show.

This process is simple to apply to any set of challenges, from the fantastic to the mundane. Make yourself a list of what must be done and go through that list. For example, if you need to graduate from university and get a job so you can take care of your family, that probably entails a large set of smaller, more manageable things: getting decent grades in each of a set of credits, creating a resume, applying to jobs, practicing interviewing, etc. In turn, each of these things can be reduced to a set of smaller tasks that will seem more accomplishable: getting a decent grade in a class turns into a set of tasks including studying, writing term papers, and preparing for an exam. Often times, the first step in accomplishing your goals might be as simple as buying the assigned books for a class.

I recall a disagreement I had with a friend many years ago. My claim was that anything I set my mind to was achievable; he thought this idea was ridiculous. The point came up because he thought the idea of private spaceflight orchestrated by individuals would never work. Looks like I was right. You can achieve anything you set your mind to; doing so is just process of reduction.


If you are of a like-minded attitude, come build things at Exec.

 
1,860
Kudos

Set good defaults

Setting up good default behavior is very important. In fact, most people never change the default settings for the things they use. For software designers, this means investing time thinking about what you want to happen if nothing changes. For example, this is why Google pays to be the default search in mobile OSes and browsers, and why Google invested so heavily in a mobile OS (Android) where they would automatically be the default search: most users will never change their browser to default to another search engine.


At Exec, we spend time thinking about default behavior. Here’s one simple example; this is the first step of our cleaning booking process.

This is what it looks like the first time:

Exec Cleaning Booking Second Use.png

This is what it looks like after you’ve used us once:

Exec Cleaning Booking First Use.png

The difference is pretty obvious: the second time you use the service, we default to the home you’ve already cleaned. Most people don’t have multiple places they want cleaned, and so we save an extra 10 seconds for the vast majority of our users.


At a meta level, I’ve spent some time thinking about what things make good defaults for a company.

One of the things that almost every company in Silicon Valley seems to buy into is providing lunch (and often dinner). Having meals show up every day around noon means that team members are much more likely to have the default lunch at the office with their coworkers. In turn, this behavior has benefits like serendipitous discovery and collaboration, increased group cohesion, and cost and time savings for the employees and company.

Recently, along with a few coworkers, I’ve replaced my sitting desk with a treadmill desk to try to stay healthier.

treadmills.jpg

I discovered pretty quickly that walking 8 miles a day (at 1 mph) while working wasn’t something I was going to do. However, the thing I appreciate the most about having a treadmill desk is that even if I don’t turn it on once during a day it still functions by default as a standing desk, which is already way better for you than sitting!

What other possible default behaviors can you change in your work environment?


If you are reading this from the Bay Area, consider checking out our San Francisco house cleaning service for yourself.

 
455
Kudos

Exec Cleaning, or the challenges scaling a real world businessArticle permalink

We’ve just launched our new cleaning service for the rest of the Bay Area. It’s been several months of work to make our software robust enough that it can survive the real world.

Some of the things I’ve learned about building a technology business that touches the offline world with Exec:

These lessons in mind, it is still imperative to move as quickly as possible. As with any startup, you are still racing to determine if your business ideas is even at all viable, and every moment you aren’t gathering data is a moment wasted. The trick is to figure out the quickest ways to address the problems above.

Here are the areas we now cover in the Bay:

Exec Cleaning San Jose San Jose, Exec Cleaning Palo Alto and Exec Cleaning Mountain View are coming soon.

 
101
Kudos

My entire entrepreneurship story in 10 minutes

I had a fun time filming this interview (except for the part where our site went down momentarily, that wasn’t fun at all). This is probably the first quality edited recording of the entire story of my career as an entrepreneur.

Hope you like it. They cut out most of my flippant comments.

 
1,246
Kudos

Divine Inspiration Fallacy

When you first start creating products it is easy to succumb to divine inspiration fallacy. For many first time entrepreneurs, it is easy to think that you uniquely have had a one-of-a-kind product idea. You wake up one night with a crystal clear vision for a product and exactly how your future customers will use it. You think that the product spec comes from the mouth of God directly to your mind, and from there directly to the web. Write it out, build it, ship it, done.

When you think you already have the perfect solution to a problem, your mindset changes from “how do we discover what our customers want?” to “how do we get as much day one leverage as possible for our product?”. After all, it was quick for you to build it, so now it’s a race to capture as much of the market as possible before a competitor comes along and creates the same thing. Unfortunately, this leads many entrepreneurs to invest heavily in large launch campaigns, paid media and other excesses before they have discovered if their product actually fulfills a customer need. See Airtime and Color for recent examples.

While externally other companies appear to operate this way, few products created like this survive in the wild. You and I are not Steve Jobs and this is not Apple, and even Apple does iterative prototyping for during product development. A priori you do not know what people want, nor will you be particularly good at guessing when you are just starting out.

The first version of Exec was a text input on the web that would send an SMS, and we built it in week. After releasing it, we built things only things that solved a customer problem that multiple customers had. Customers wondering where their Execs were? Added the live map feature. Customers didn’t want to be bothered with phone calls? Added messaging in the app.

Do the bare minimum to prove your hypothesis. That doesn’t mean do shoddy work; that means knowing what the bare minimum is. If you are testing whether great design will inspire more customers to engage more with the product, well then, you need to actually put in the work to create some great designs. If you are testing whether customers will use a new billing interface, perhaps the first version doesn’t need the best design.

Some experiments will work, and some will not. You will likely need to do many experiments to solve even a small problem.

Invest in growth once you have external evidence that something is working. Before that time, keep as small of an overhead footprint as possible.

Remember, everything you are building today will be killed or iterated. The former is more likely than the latter. Great products are created by many incremental improvements.


If this seems like the way you would develop products, we’re hiring iOS and Android engineers to join the Exec team.

 
348
Kudos

The First Time I Used Programming At Work

It turns out you don’t have to be employed as a programmer to use programming at your job. When I was a college student, I spent a few summers working at a law office as a file clerk. Basically, the job was as boring as it sounds: get requests for files from the file room, physically sort through boxes, pull out said files, deliver them. Occasionally rearrange the entire file room to accommodate more boxes.

Because there was a full time file clerk as well as myself, there wasn’t really enough for two people, so I also spent part of my time as the assistant IT guy. That was also as boring as it sounds, and much less technical: reinstall copies of Windows 98 for the lawyers, hand them new keyboards, etc.

At one point a particularly terrible task came at hand. In order to make exhibits for a certain case the firm had to lay out and print literally thousands of photos. For God knows what reason, the software they had been using to do this was Microsoft Excel. They would actually make a spreadsheet and individually import each photo and then drag it to the right place so that there would be six photos per page when printed. This task fell to the woman who ran IT, which was promptly kicked down to me.

Imagine importing and dragging one-by-one thousands of photos into an Excel file. Even worse, the task got increasingly slower over time as the individual XLS file consumed more and more of the system memory. I used the first 10 minutes of the task to calculate the rate at which I was making progress, and realized that this would take me some 3-4 days to complete. 3-4 days of doing the same, monotonous 45 second task.

Well, fuck that. After 20 minutes I wanted to end my own existence. So, instead of actually continuing, I opened up the Excel macro editor, and started trying to figure out how to automate some part of the process. After about an hour, I had something that read parts of the file system looking for the appropriate files. Hooray, progress!

I excitedly told my boss that I thought I could automate this painful and tedious process (which had to be done several times a year). I can’t remember her specific words, but she basically told me to stop working on that and just do it the way they had been: she didn’t believe it was going to work and thought it was a waste of time.

Well, double fuck that. A couple more hours of applied effort and I had a macro that looped through all the images in a directory tree and laid them out in Excel. I spent the next four days surfing the web and handing out files.

This is why I encourage everyone to learn some basic programming.

 
1,589
Kudos

The New Bing

The New Bing

A pretty cool detail: Bing special cases self searches (i.e. me searching for “Justin Kan”) and lets me customize how I appear. Self searching is a hugely common behavior on Google. Cool idea to piggy back on searchers' ego stroking.

 
155
Kudos

Socialcam #1

#1 baby

Socialcam, our spin off company from Justin.tv, just hit #1 on the App Store Free charts. For those who don’t know, Socialcam is the easiest way to customize and share your videos from your iPhone.

18 months ago Michael, my Justin.tv cofounder, saw that there would be a need in the market as smart phones began to replace all your other electronics, including your hand held video camera. After skunkworks-ing Socialcam internally at JTV, we spun it off as a new company with founders Michael, Guillaume and Ammon.

Michael had a strong conviction around building products by designing experiments, looking at the data and iterating. He also had a vision around unlocking the video camera that exists in everyone’s pocket today. It’s awesome to see that passion and dedication to process pay off today. I couldn’t be more proud of the team.

 
458
Kudos

The Startup Resume

Having recently read through the hundreds of applications for YC’s Work At A Startup event, I have a few tips for programmers who are applying to work at a startup. Here they are:

Overall, startups are looking for employees who are exceptional in the one key thing that they will be doing, whether it is scaling the backend system or doing the visual design. In your resume you need to 1) demonstrate that you are exceptional at the thing you do, and 2) not be disqualified by seeming crazy or imbalanced. A simple rule: if something on your resume isn’t achieving one of the aforementioned two things, leave it off.

I know all these rules don’t apply to hiring at big companies. You should tailor your resume to the positions you are applying for. Also, even more important than a resume is a putting into your email specific reasons why you want to work at the startup and are a good fit for that specific startup. Nothing is better received by a founder than reading about someone being passionate for his or her project.

 
1,015
Kudos

Maybe we’re in a bubble but it doesn’t matter

What should you do?

Lots of people are saying we are in a bubble. The IPO market caps for Groupon and Zynga are too high. The purchase price for Instagram is too high. Early stage valuations are too high, no thanks to that darn Y Combinator.

We are definitely in the growth phase of a cycle. I personally believe that we still have a ways to go before a retraction, but that is not the point of this post. I am writing this post for all the aspiring tech entrepreneurs and programmers out there who hear bubble and wonder whether jumping off is the right decision, and all the college kids wondering if a CS or engineering degree will pay off. To those readers: we might be in a bubble, but for you it doesn’t matter.

The reality of the world is that software, specifically Internet enabled software, is becoming a part of every business. Marc Andreessen said “software is eating the world,” and by that he meant that as time goes on, every industry is becoming a software industry. Old incumbents in retail, service industries, medicine and every other industry are being or will be disrupted by software companies created by younger (at least in mindset) entrepreneurs that have a better grasp of the implications of a world where every human being has an Internet-connected computer in their pocket. Here are some examples:

The truth is that the technology sector as a whole over any length of time is a positive-sum game even if the economy doesn’t grow at all, because it is taking business away from other industries (i.e. those other industries will experience negative gains adjusted for population growth; that is, they are shrinking in relation to everything else). A retraction of investment interest in this will slow but not stop the disruption.

As a programmer or technologist, this is good for you. The world is being bifurcated into two classes: high skill knowledge workers and creators (programmers, designers or those who otherwise contribute to a technology organization, finance, a few lucky enough to work in the creative class) and everyone else. The good news for programmers is that while CS enrollment has increased, it hasn’t increased nearly enough to support the demand for engineers and software product people.

For everyone else, this is bad for you. Most people aren’t self aware enough to realize what is happening that is making their jobs disappear: a strong trend in software automation to make business processes more efficient. Instead of stocking DVDs at a bunch of retail outlets, why not just store them in central locations and ship them on demand? Costs go down; head count goes down. Better still, forget the DVDs and just stream the movies over the Internet.

Where once you would have an army of data-gatherers map every street to make a city map, instead now we just have a few people drive around a car that gets even more data than the data-gatherers could, and we have the software to turn this into beautiful and usable maps. Pretty soon, the cars will drive themselves.

These low and middle skill jobs are going away and aren’t coming back. I have no comment on the morality of this trend. As a society, because of the trend towards winner take-all economics, we will see a continually increasing disparity of wealth. We will have to decide if that is a society we want to live in or whether we figure out new ways of redistributing that wealth.

Anyone who tells you that you shouldn’t be in tech, or that the current market situation will create an oversupply of people in tech, is doing you a massive disservice. You should be in tech if you can stomach it at all. Furthermore, “technology” has tentacles that are beginning to reach into every industry (fashion, journalism, medicine, manufacturing, etc), and thus there is almost certainly something for you to be interested in regardless of what you do. Yes, in the event of an investment down cycle it will be harder to find a job (or get funding for your company), but it is just as likely that you won’t even have a job in another industry, because that job will be being done or made irrelevant by someone else’s software.

People will draw parallels to the finance industry bubble and burst and what happened to all the finance jobs in 2008. Tech in 2012 is not the same as finance in 2008, and here’s why:

Finance firms in theory create market liquidity for assets (making things more efficient) and provide financing for businesses (allowing new businesses to get started). By the mid-2000’s, we had an oversupply of talented people in finance, and the marginal gain from adding more talented people to the industry wasn’t growing the total value created by the finance industry. This is not the case in technology today: we are nowhere near that saturation point yet.

In the past couple decades we’ve had the phenomenon of the big box retailer that comes to a town and can use its’ massive economies of scale, distribution and brand to offer an irresistible combination of prices and service to drive all the other stores out of business. The technology industry is like that, but for all business in all vertical industries – companies with traditional distribution and marketing can’t compete. Internet software benefits from massive economies of scale and network effects previously unknown to the world. Games with virality built in can touch significant percentages of the world’s population in a matter of weeks. 20 years ago, if you wanted to distribute a game to millions of people, you’d have to package and ship the boxed software to thousands of outlets. Today, you just push a binary build to the Apple or Google website.

You want to be in the tech game, because in time it will be the only game in town.


If you’ve read to the end, then you might want to check out my new startup, Exec. At Exec, we are redefining and disrupting the traditional concept of a job through technology. I think the most interested and unsaturated vertical in tech is online-to-offline technologies that affect the real world, and we are right in the heart of it.

 
607
Kudos