Thank you, Bill Campbell.

I haven’t blogged in a while (a LONG time), but I just came from Bill Campbell’s memorial service at Sacred Heart in Atherton this morning. In brief, it was amazing. Literally thousands of people came out to remember and to celebrate him. Stories were shared that, frankly, weren’t at all surprising. And I realized why: I really barely knew Bill but I knew him. Those brief encounters while working at Intuit, those board meetings for Homestead and Curious, those were filled with Bill as he actually was. He was warm, caring, encouraging, loving, feisty, and (like his service) amazing.

Honestly, I know that I’m barely in Bill’s circle, if at all. We shared a board meeting every 1-2 months, and he knew my name. There are stories everywhere of how he made everyone feel special, everyone feel included, everyone feel like part of his family, and I’m no different. He always greeted me with a warm hug and a friendly laugh, and gave me crap because my red Vans clashed with my orange shirt. I do feel truly fortunate that I had even those few moments with him, as I’m positive everyone who spent time with him feels.

While sitting at his memorial with the thousands of people who came to say their good-byes, I was stunned by how this one man touched so many people positively. I reflected on how I was touched by him and wondered how I could carry the best parts of his influence on. One of the eulogists said it best when he said (I’m paraphrasing) that we can’t even dream to do all of what Bill did, but we can all emulate the best parts of Bill.

(Here come the bullet points.)

  1. Resilience
    When we shared poor numbers in board meetings, or biz dev deals that fell through, or delayed product launches, he was always ready to pick us up. But it wasn’t bland platitudes; he’d take the time to get in one swift kick at us while we were down, but then build us back up. He knew what we needed to hear, and we got it: we did something stupid and got knocked down but we have to get off the mat.

    In one board meeting (probably in several), after sharing some disappointing results, Bill let us know the stupid things we did, then just as quickly turned the corner. “But look where you are; you have this, and this, and this. This is going to be a billion dollar company. Don’t fuck it up.”

    Keep getting off the mat, and we’ll be fine…

  2. Energy
    Every meeting was met with Bill’s amazing energy, all the way to the last board meeting we had with him last month. One frequent joke at the memorial was that he was always late, and he was, but we all knew that it didn’t really start until Bill showed up. He would come in like a tornado, spinning up a whirlpool of hugs, curse words, insults, and stories of his meetings with the tech aristocracy.

    Good? Good. Now everyone’s properly pumped up to get the best we can out of each other.

  3. Faith
    Bill was a man of religious faith and I am not. But he also had faith in people, and we could all use a little more of that. He believed people have the capacity to focus on their ambitions, to work very hard, to do great things. That’s what coaching is, and that’s why he’s the Coach of Silicon Valley. He always believed in you and that gave you the faith to believe in yourself. He always made me believe I could do it, and I can’t imagine he knew me much at all, but I can say it bolsters my faith in what I’m doing when I know Bill Campbell’s in my corner.
  4. Empowerment
    Bill was never about the ideas, really. Many times, he’d say something like “I don’t know what the answer is, but…”. He knew he didn’t really understand technology, social media, or mobile devices. But he knew people, and he knew that smart, ambitious people needed to be empowered to do the best they can do. Bill pointed you in the right general direction and gave you a swift kick in the pants.
  5. Humility
    One of the eulogists also touched on this; Bill shied away from the spotlight. In a valley filled with larger than life personalities and where success is often measured in stories and buzz before it’s measured in actual results, Bill was mostly out of the media’s view until the deluge of tributes this past week. I’ve never seen him take credit in a board meeting. I’ve never seen him say anything like “I told you so” when we’d finally come around to his way of thinking on an issue.

    Even when he was talking about other companies he advised, their successes were their own, never due to his advice or coaching. But I’ve been lucky to be in many board meetings with him; I guarantee that he’s responsible for at least some of the successes of the companies he advised.

I could go on. There’s so much more, but I’m gonna wrap it up with this.

Thank you, Bill. Thank you for your spirit, love, and faith. I’ll try not to fuck it up.



I’m a bad, bad, bad person

I’m a startup CTO in Silicon Valley. At least that’s what LinkedIn and the About page says.

I’m supposed to be worried about security and privacy, and for our users, I am. But for myself, I gotta say, it’s awfully cozy living with your head nestled in the warm, loving, all-knowing sand.

I just got a refurbished Nexus 5 for free from Google because my last screen cracked. I already have “love feelings” for Google over the free replacement phone and, shockingly, how easy it was to get someone on the phone and get them to send me a new phone. But it only gets better.

I pulled my SIM card out of the old phone, then slid it into the new phone. A couple swipes later, I was asked a question similar to “Do you want to let your future drone overlords know more about you than you know about yourself and use that information to make as much money off you as they can?”

Sand, head. Head, Sand.


And just like that, my new phone was set up with my email addresses, calendars, photos, settings, etc. Right now, it’s downloading all of my apps again.

Seamless, slick, simple, scary. And done.

Should I be worried that Google has my whole life? Probably. How can I sleep at night knowing that I’m giving up my privacy for unnecessary conveniences? Very well, thank you very much. At least until Google Now decides to wake me up.

Like I said, I’m a bad, bad, bad person.


The Trouble with MOOCs



OK, just to get it out of the way: is not a MOOC (as you think of them) and is not competitive with MOOCs. We have lessons on crocheting a chunky cowl (I learned what that is!), bike repair, how to bluff in poker, and even more stuff than you can shake a stick at (if you’re into shaking sticks at things).

An article just came out describing the struggles the MOOCs you know about (Coursera, Udacity, etc.) are having getting students to successfully complete their courses. Very (in)famously, a pilot program between San Jose State and Udacity spectacularly crashed and burned.

So what’s all the anxiety about? I think it’s two things: a lack of imagination and some unrealistic expectations.

A lack of imagination

You see, the first courses on these sites were direct translations of college courses onto the web. It started with a camcorder on a tripod in a lecture hall, and assignments uploaded to the server. I get the thinking: “We have an articulate professor! And a camera! Let’s go!”

The problem is the standard 10-12 week college course (1-2 hours of lecture a week, some assignments and office hours) probably isn’t even the optimal way to teach on a college campus, let alone online. At a college, you have a captive audience of people who have years of I-must-go-to-college on their brains and $10,000s of skin in the game. Online, you have the competing distraction of exploding coffee creamer.

Seriously, you gotta check that video out. I’ll wait. (I originally had the note to check out the video in a parenthetical, but it’s so important, it got its own paragraph.)

Since then, the video production has improved dramatically and online assignments are better, but there’s a LONG way to go before you can make 100 hours (10 weeks x 10-12 hours/week) of Computational Methods for Data Analysis palatable to most people online.

Someone’s gonna figure it out. There’s enough buzz and momentum around MOOCs that someone’s going to figure it out, but we’re going to have to be patient.

But this difference between the standard in-college student and the online student is why we have…

Unrealistic expectations

Did people really think we’d have even remotely similar successful completion rates online? The article says 4% of users who registered completed their course. Let’s see: 4% of online users who registered for a free possibly-100-hour course completed it? That’s actually incredible by online standards.

This is an industry where if you can get 10% of your visitors to give you an email address, you’re doing really well.


I don’t think MOOCs are doing that poorly, really. It’s really early and the companies, investors, and media are still trying to figure out what it’s all about. Ultimately, I’m bullish on the whole thing. College courses are way too expensive and inaccessible; the current system is unsustainable. Eventually, product innovation will improve registration and completion rates, and all the hype will be replaced by reasonable expectations of what will probably still be a really large online industry.

And after that, it’ll be all rainbows, unicorns, and lollipops. Just in time for me to not have to sell my organs to educate my kids.

The internet is killing the middle class?


, ,

Ya know, it’s great to be mentioned in major publications like Newsweek. For a young startup, that’s really what we work hard for, to be part of the conversation, to have an impact on the world.

But killing the middle class isn’t the impact that I (and we at Curious) want to have.

Kevin Maney wrote today that is going to create a small number of winners and a whole lot of losers. About Curious:

Great concept. So, if takes off, it could create a class of teaching superstars. A few global guitar teachers become fabulously wealthy by vacuuming up mid-level demand. Serious students still go to the best teachers in person, but mediocre teachers watch their incomes dry up as amateurs find better lessons for less money online. Guitar teaching in the 21st century would become a two-tiered world: the best, who make a lot of dough—either online or live—from top-tier students; and the rest, who have to live on the scraps. In other words, the rich get richer while the poor get poorer.

The thing is, I don’t entirely disagree with him. As much as our objective is to empower anyone with a passion to be an online teacher, we know that the majority of the money will be made by small minority of the teachers. Just like in the app stores: for every Angry Birds, there are thousands of money-losing apps. There’s no surprise there. The real question is whether Curious’ impact (and the impact of the internet as a whole) actually hastens the wealth disparity or not.

That’s Kevin’s point: the relentless advancement of technology will only serve to accumulate wealth in fewer bank accounts.

But let’s dive into why that is. Wealth accumulates because it is investment capital. And those who have access to the capital (i.e., the wealthy) can use that capital to create more wealth. And to Kevin’s point, yes, technology follows where the capital is. If someone invents an incredibly effective new oil drilling machine, who can leverage that technology? It’s not John Q. Public with $500 in his bank account. It’s SuperMegaGlobalCorp with a multi-billion dollar R&D department. Follow that to its logical conclusion, and yes, wealth accumulates.

(Of course, then there’s the finance industry where you generate capital by just moving capital around. It’s incredibly “elegant” and scary its ability to concentrate wealth.)

But there is another kind of technological advancement: one that democratizes access to something only the privileged few had access to before. Obviously, that’s what we hope Curious is. We allow teachers to post video-based lessons and charge students for access to the content. There’s nothing new there; people have been doing that for years. But in the past, posting and charging for videos on a website may have required paying a web developer thousands of dollars; now, we hope to make it easy for any one to do it, with no expertise and no capital. Our technological advances are ones that actually lower the reliance on capital for a teacher to make money online.

Take, for example, online publishing, like blogging. The ease (both technical and financial) with which you can publish stuff online has led to an explosion of sources of information and news. No longer is all news distributed by a few sources, centrally controlled. Gone are the days that we’d see a behemoth the likes of Hearst publishing. Instead, while there is still concentration, because of the incredibly low capital requirements necessary to start a blog, to publish a video, to release a song, to post photography, etc., there will be more people able to do these things, and so more people able to make money doing these things.

That’s what we want Curious to do for teachers: to make it easy to share your knowledge and make money doing it. Instead of Rosetta Stone enjoying a monopoly of foreign language dollars, there will be 50 Spanish teachers who are reaching students they never thought they’d reach. Maybe for every 50 Spanish teachers who can quit their day jobs, there are a few hundred who can’t, but that is still 50 Spanish teachers who can now quit their day job. And that’s powerful.

Kevin’s concern is spot on; I share that concern. Wealth is concentrating quickly and it’s only accelerating. If Curious slows that at all, I’d be exceptionally proud. Our strategy to get there is to make the tools to reach students as easy and cheap as possible. And to work really hard at it. So we can have an impact on the world.

Update: Justin’s (Curious CEO) post on Kevin’s post.

Teaching advice from Disney World

(This was originally posted on the blog.)

I just came back from nine days at Disney World with my family. Now, I’ve been to Disney World before and to Disneyland many, many times, but The Mouse* never ceases to impress me. It does so many things well, with an attention for detail that is simply astounding. And this comes from someone who isn’t even really a Disney fan, but someone who just appreciates incredible execution.

Overall, they are really good at what they do: making and keeping kids happy. There’s a lot we could learn from The Mouse, and a lot that I think would be useful to Curious teachers:

1. Keep them engaged

When you think of Disney World, you do not think of subtlety. We stayed at the Art of Animation Resort where a 40-foot plastic sea turtle watches over your children. The splash area has plastic sea creatures spitting at your children because, apparently, it’s fun to get spit on by plastic sea creatures. And you know what? It’s awesome.

That doesn’t mean there’s no room for subtlety in Curious lessons. But you can keep the information coming, and you can keep it coming fast. It’s one of the benefits of Curious: students can easily rewatch sections of your lesson if they missed something. So if you keep throwing things at them, the students and the kids stay engaged.

2. Make them feel progress

This is something Disney does really well: they make waiting in line (almost) fun. For instance, my favorite ride (the best ride anywhere) is the Hollywood Tower of Terror, based on the timelessly fantastic Twilight Zone. They easily could have the line snake through the zigzag of bars and lead you to the elevators, but instead, they break it up. After you wait in line, you’re lead into a “dusty, old” library where an old TV shows Rod Serling introducing you to the ride. And after that intro? You’re waiting in another line.

And it’s still great. You’re still waiting in line for the actual ride but you’re now one significant step closer. You’ve engaged your brain a bit (watching Rod Serling) and the wait feels a lot shorter.

We encourage teachers to do the same thing by breaking up their lessons into short sections and engaging them with exercises. The students will feel they’re making progress on the lesson with every little bit of knowledge they pick up.

3. Prepare for failure

Disney knows its target demographic really well: parents who want to see their kids have a good time. And to that end, every cast member carries Disney character stickers and offer them to you or your kids if they look unhappy, hot, bored, annoyed, concerned about fighting in Syria, or even if they’re happy. Who doesn’t love a free sticker? If you play it right, you can cover your kids in stickers and save on sunscreen.

The best teachers I’ve ever had know the problems their students tend to have. They not only explain how things should be done, but also explain common mistakes that people make and explain why those are wrong. They’re prepared for the inevitable failures of the learning process, like Disney is prepared for the inevitable meltdowns of the vacationing process.

4. Have a good time, or at least pretend you’re having a good time

At Homestead, I ran the annual talentless Talent Show where I forced employees to do unspeakable things in front of their friends and families. And the one piece of advice I gave to everyone was this: Look like you’re having a good time, because if you look like you’re having fun, they’ll have fun.

Whether it’s the chemicals in the water, or fear of termination, or maybe, ummm… enjoying their job (?), cast members at Disney World are all smiley. They look like they’re having fun and that’s contagious. And students want to see the same thing: teachers who love their subject and can share that joy. And teachers who can genuinely express that joy on video are the best teachers on the web.

Now, the kids already want to go back; frankly, they want to live there. So now all I need is a Curious lesson that can teach young kids to plan, pay for, and take a Disney World vacation on their own, and I’m good to go. Anyone?

* I use “The Mouse” like they use “The Company” in the Alien movies: with respect and a healthy dose of fear. They’re not reading this are they?

Launching a new startup


, ,

Today, we officially launched the new startup I’ve been working on for over a year. was born from sunlight-fueled conversations with Justin and John, then nurtured by some of the best people I’ve ever met. This could be a post about how you should launch a startup, or how you should coordinate a PR launch, or what tech stack you should use, or how awesome cloud servers are (answer: incredibly awesome).

But this post is none of those things.

This post is about what makes working way too many hours at a startup worth it.

This post is about the people who could go home, but choose to stick around to give you support.

This post is about the people who know that even under tight deadlines, you have to take time to play ultimate frisbee.

This post is about the people who are always ready with a smile and an answer even when they know that that will just lead to more questions.

This post is about the people who jam on Rock Band with you while waiting for the build to deploy, and more importantly, the people who are OK with you playing Rock Band while waiting for the build to deploy.

This post is about the people who help in any way they can because they know job descriptions don’t matter.

This post is about the people who want to come in at 5am for the PR launch even though they don’t have to.

Startups claim all time that they have the smartest people (and we’d claim the same thing). But this is a post that says we have the best people, in all senses of the word “best”.

So to the team at, congratulations and thank you!

Startup Stories: Don’t hire for Now


, ,

If you’ve ever hired someone under pressure from someone above you, you know exactly what I’m talking about.

“We need an iOS developer! We need a Rails guru! We need one more Java developer and we’ll get the launch out on time!”

And you know exactly what the result of this is: you get a hired gun who might know the technology or skill you want, but doesn’t jell with the team. Or you switch technologies and that hire isn’t happy to work in the new stack. Or after a while, you don’t need as much of that skill any more and you end up with layoffs (or downsizing by attrition) that leaves everyone unhappy.

Despite these obvious results, it still happens all the time. You can see the effects everywhere: standard job requests have slots for “Skills required”, and recruiters use resume filters that look for specific acronyms.

Worst of all, candidates think they need to learn certain technologies to get hired (because, most of the time, they do). They focus on becoming an expert in a particular technology and then walk into interviews firmly set on working in that technology. You’ve no doubt seen these candidates before: they focus solely on the benefits of whatever technology they know. They subconsciously defend the technology and pooh-pooh others because they have so much sunk cost into the tech. It’s a vicious cycle. There’s almost no way to end an interview with me faster than saying that your career goal is to become an expert in a particular technology (even if we happen to use it).

The reality is none of this matters. Really strong engineers can learn a new technology in weeks (if not faster). We even had undergrad CS interns with no Rails/JS experience this past summer who became productive members of the team in just 2 weeks. Hiring for experience in a particular skill is really just judging a book by its cover, assessing a candidate by one of the most shallow criteria possible.

(Now, some might say that a candidate with Rails experience demonstrates a forward-looking, cutting-edge engineer. I do agree about that in part, but then you should consider Django engineers, too, right?)

What really matters? The two A’s: Attitude and Aptitude.

You want team players who believe in your company’s vision and culture. You want someone who will stay loyal to the team when the numbers aren’t growing as fast as you want. You want someone who will help their neighbor with their work, instead of worrying about getting all the credit. You want someone who will help further the company’s goals even if that means doing work they don’t like to do.

You want someone who can learn new things quickly. You want someone with strong fundamentals (those things that are really hard to teach). You want someone who can grasp abstract concepts quickly that aren’t always well explained in documentation. You want someone who can creatively see how different APIs can fit together to make a fantastic whole.

So hire for attitude and aptitude. And stop hiring for acronyms.

It’s a lot more work (more interviews) but it’s worth it. You’ll be hiring for The Future instead of hiring for Now.

Startup Stories: Healthcare Insurance for your startup


, , , , , ,

If you hang out on Techmeme or Hacker News, you’ll get your expected flood of startup stories about funding events, new tech wizardry, and product launches. When we started our startup, the thing we needed was… healthcare. I (was) volunteered to be HR, and so the journey began. Here are the hard-earned drops of knowledge that would be helpful to any startup looking to offer medical insurance in California.

First things first: Why should we offer healthcare?

You’re not legally obligated to provide healthcare, so why bother? When we started, each person was on still on COBRA from our previous company, Intuit (if you don’t know, that means we were paying out of pocket for the entire health insurance premiums for same plan that we had while at Intuit) or had their own individual plan. So what’s the benefit of the company offering medical insurance?

  • Cheaper premiums: Intuit basically offered only high end plans (no deductibles, cheap prescriptions, etc.) because they use good medical benefits as a recruiting tool. So now that we were paying out of pocket, we were paying the high premiums that went with it. If your startup can choose your own health care plans, you can choose from any plans the insurance carrier offers, including the (much, much) cheaper plans.
    • But… the premiums are not necessarily cheaper than individual plans. A couple brokers told me that at a small group size, the rates are basically the same. We knew we wanted to offer a group plan at some point, so we just bit the bullet now.
  • Guaranteed coverage: The main difference between an individual plan and a group plan is that a group plan has guaranteed coverage; i.e., you can’t be denied for preexisting conditions.  In fact, if you have an employee with a serious (i.e., expensive) preexisting condition, a group plan might be cheaper because your rate is (basically) determined by your age and gender, not your medical history.
  • It’s the right thing to do: I was going to write something about the sad political environment we live in, blah, blah, blah, but ’nuff said. We’ll move on.

Can we offer health care insurance?

Luckily, a group plan really only requires the minimum number of people that would define a “group”: 2 people. After that, it gets a bit complicated:

  • You need to have at least 2 “eligible” employees to qualify for a group plan. An “eligible” employee is one who is working full-time, which is defined as at least 30 hours/week for minimum wage ($8/hr in California).
  • To prove that you’re a real company, you have to have those 2 “eligible”, paid employees on payroll for at least 6 weeks in the quarter prior to the quarter you’re starting coverage. E.g., if you want to start coverage on April 1, you need to have at least two employees on payroll February 15.
  • Only people “associated” with the company can be offered health care from the group. The easiest way to associate someone with the company is to pay them for full-time (minimum 30 hrs/week, $8/hr). Basically, the insurance carriers don’t want to open up group policies to everyone so you don’t just add your Aunt Mildred with her needs-to-replaced hip even though she has nothing to do with the business.
    • But what if you’re not taking salary (which happened in our case)? Owners of a company are associated with the company, but to prove you’re an owner takes documents stamped by the state and possibly proof that the owners are making income (i.e., share of profits) from the business. The threshold of proof varies for the different carriers. If you can’t meet the threshold of documentation, that employee will have to find an individual plan, or you have to put that employee on full-time payroll. Note: unpaid employees, like owners, do not count toward your 2 “eligible” paid employees from the first bullet above.

What can we offer?

Only some insurance carriers will offer policies for really small companies. Some require a minimum of 25 or 50 employees. Some only have competitive rates at those higher numbers. Our broker gave us quotes from Anthem Blue Cross, Blue Shield, and United because those were the best options for a group our size (4 employees at the time of quote).

Each of these major carriers require a minimum percentage of a small business’ eligible employees to enroll with the carrier, and that percentage is greater than 50%. And that means… do the math… you can only offer one carrier.  So you’ll pick one.

The exception is Kaiser Permanente which does not have a similar requirement (or the minimum percentage is much lower). In the end, we’re offering one major carrier and Kaiser.

Once you’ve selected an insurance carrier, you can (basically) offer as many of their plans as you want to your employees. It doesn’t cost you any more, but it’s just a management headache offer 30 plans. We chose a decent mix of low, mid, and high end plans, in both HMO and PPO varieties.

How much does it cost?

We don’t have a lot of cash (what startup does?) and we don’t intend to use “Great Benefits!” as a major recruiting tag line (we just want to do really important stuff with really cool people). So we wanted to keep it inexpensive to the company; we can always increase our contribution the better we do financially or the more important benefits are to retention and recruiting.

The cost to the company doesn’t actually have to be that much. The minimum employer contribution is 50% of the employee’s cheapest available premium or $100/month (details of that rule vary slightly for different insurance carriers but that’s basically it).

For example, let’s say you offer three plans and Joe’s premiums for just himself on this three plans is $200, $300, and $400/month. Regardless of which plan he chooses, the company’s minimum contribution is 50% of the lowest plan, so $100.  Let’s say Joe has a family he wants to insure, so his premiums are $700, $1000, and $1300.  The company’s minimum contribution is still $100 because the minimum is based on just the employee’s portion of the premium, not the spouse or family.

Of course, you can offer to pay for more than that, based on any formula you want. We chose to pay for 100% of the employee premium.

So you can reduce the minimum employer contribution by offering the lowest package possible. But don’t be a jerk; pick a lowest package that someone would actually take.

We chose not to offer HSA-based packages or other really low end packages, but we still offer a pretty cheap plan (along with the higher end plans).  Our employee premium is ~$250/month/employee and, again, we chose to pay for 100% of it. The rates were based on the fact that we’re a group of 30-something males in the California Bay Area.

All the caveats you can think of apply when you see prices on the Internet; your mileage may vary.

What do I do?

OK, if you’re like me, you probably don’t want to talk on the phone with people more than you have to when buying something.  You want to fill out a form online, get a page of options, select some, put in a credit card or account number, and be done with it.  So if you want, you can sort of do that.  You can go to each of the insurance carriers’ sites and do it.  Or you can go to eHealthInsurance and fill one form to get multiple quotes.

Don’t bother. Get an insurance broker. Why?

  • It’s no more expensive. Either the broker gets the commission or the carrier keeps the commission.
  • You get to deal with one person instead of different sales contacts at different carriers.
  • The health insurance is still all about forms, signatures, faxes, etc. You don’t want to deal with that.  You have a business to run!

What did I look for in a broker? Remember, regardless of the broker, your premiums will be the same, so pick someone you can work with.

  • Responsiveness, responsiveness, responsiveness. Duh.
  • Tech savvy enough to deal with emails, scans, pdfs, etc. Even with online fax services, who wants to deal with that?
  • Experienced in small businesses in your industry in your area.  Brokers don’t make a lot of money from commissions on small group policies, so many don’t bother with them; they’re hoping to make more as your company grows. Also, I didn’t have to explain why multiple employees in the company are taking no salary and why we have no revenue or income.  They get it.

I just Googled around my area for insurance brokers, sent emails to a few, then spoke to a few on the phone. Only one called me back regularly and sent me emails to remind me to send in my forms. And we had a winner!

But wait, there’s more!

There’s a lot of I’ve learned in selecting and signing us up for medical benefits, but this post is too long already.  I’ll cover more in follow up posts, including: dental/vision/life insurance coverage, worker’s comp, health statements, etc.

(photo by Adrian Clark)

All big technology companies should be structured like Amazon

I read Steve Yegge’s rant on Amazon and Google and, like everyone else in the tech world, thought it was fascinating. But the really interesting thing is Steve’s description of how the different groups at Amazon work together through services. It’s the most succinct and argument I’ve seen for diving fully head first into a complete SOA model.  And not just technically, but fully as a business.

The key to Jeff Bezos’ mandate was that the services would be designed from the ground up to be externalized. With that key requirement, you’ve suddenly gone from a simple API to an API with full documentation, full security, full SLAs, full Dev and QA environments, full versioning, etc.

I’ve only worked in one reasonably complex organization, and that was Intuit for three years after the acquisition of Homestead. While I was there, I saw the technical group at Intuit struggle with the problem of scaling their development community, and I think it was heading down a fairly common road: standardization on technologies and libraries (at every level of the stack feasible) to increase buying power, increase code reuse, and decrease training overhead.  But the result was also fairly common and predictable: central core groups struggling to enforce mandates while client groups try to work around the system.  There was (and probably still is) a move philosophically toward SOA, but even then, use of that SOA was often done when organizationally required as opposed to technically prudent.

In my opinion, Steve Yegge’s description of Amazon’s model is how any company of any significant technical complexity should work (including Intuit), and the benefits are profound.

  1. With full documentation, security, SLAs, Dev and QA environments, versioning, etc., you remove much of the bureaucracy (i.e., meetings) that surround creating technology together. If you implement an SOA in name only, like just an API (which I’ve seen a lot because it’s considered just a technical concern as opposed to a full business concern), then you’ve just replaced an architectural design meeting with an API design meeting and not made any progress toward more loosely coupled technical teams.
  2. In defining your service interfaces at a business level (including SLAs, etc.), client tech groups will be able to compare the internal service with external services.  For example, the company should encourage client tech groups to compare between AWS and corporate IT, and the client tech group should pick the best service provider for their needs.
  3. The ultimate result of #2 harsh but true: if the client tech groups predominantly prefer AWS, the company should figure out how to satisfy their clients better or get out of the business of corporate IT. That is, you’ll find out very soon which of your technical projects have value and which don’t.  And I bet most of them will end up going away.
Think of it this way: in our startup, of course, we’re really trying to build and own as little technology as possible and almost any service you can think of is available out there right now. And the reason one service often wins out over another is a “good enough” feature set and great developer tools/documentation. And if a company can’t compete with that internally, they really just shouldn’t do it.

A Brand New Startup’s Tech Stack

Update: It’s been over a year, so I’m back to update the list of what we’re using…

Launching a startup is incredibly fun: everyday is dreaming, everything has infinite potential, and you get to leave behind all the baggage of the past. John Tokash and I recently enjoyed the party when we decided on what tech products/services to use. (Props to Nat Friedman for his list which gave me the idea to share our choices.)

We had some general, unstated criteria that guided us:

  • Community is incredibly important: In most cases, use what most other companies are using because you know it’ll be around, and there will be people out there to help you.
  • Be cheap, but not too cheap: We have to run a tight ship, but where it helps productivity, pay for it.
  • Lean towards what you know: We have to focus on the business, not on learning the tools.
  • Cloud, when you can: It might be cheaper to host things yourself, but we don’t want to be IT guys and we want to work on the fly from any computer.
  • Don’t waste too much time thinking about it: Just do it. Sometimes, you gotta just go.
And away we go:
  • Web framework: Ruby on Rails. This was a tough one. We argued long and hard about Ruby vs. Python, Rails vs. Django. Both communities are strong, and depending on who you ask, both argue that their community is stronger. Both have their technical trade-offs. I will be the first to admit that after learning some RoR, I’m incredibly disturbed by the “magic” in it (if you name this method in this way, magically this property will be attached to this other thing). But then one day, we just turned to each other and said: “Let’s just call it. Ruby. Done.”When it came down to it, there were three deciding factors: 1. we happened to know more people who know RoR; 2. we happened to start learning RoR first; 3. we didn’t want to talk about it anymore. C’mon, we have a company to build here.
  • IDE: Aptana RadRails.  John’s a big TextMate fan, so that’s what he was using, but I decided to take a tour around the options. MacVim: didn’t want to invest the time into learning all the key commands. Komodo Edit: had crashing problems. NetBeans: dropped official support for Rails and I couldn’t get the community Rails plugin to use a specific version of Rails. Aptana did it all cleanly, with autocomplete, decent project management, integrated terminal. We haven’t lived it with it very long, but it looks good so far. Update:  So we have a split jury here now. A few of us are on RubyMine, a few are on Sublime Text, and a few are on TextMate. RadRails died a quick death.
  • Source control: Github. Never really considered anything else. Cloud all the way, baby.
  • Database: Though we haven’t actually created any databases yet, I’d be surprised if we don’t do MySQL.
  • Hosting: Undecided. We haven’t really addressed this yet, though we’re considering Heroku and Rackspace, among others. We’re not IT guys, and we don’t want to be, so we’ll definitely be looking for a lot of support. I imagine that if we end up going with Heroku, we’ll move off with any reasonable success. We also know that Heroku uses PostgresQL, so given our leaning to MySQL, we’ll have to figure this out later. Update: AWS all the way! AWS is simply amazing (though it could be simpler to manage). Fortunately or unfortunately, we’re bought in hook line and sinker with EC2 with EBS, S3, RDS, Route 53, ElastiCache, pretty much everything. They make it, frankly, incredibly compelling.
  • Analytics: Google Analytics. We haven’t even started plugging this in yet, but this is clearly what we’re going to do until we run into problems. I have experience with Omniture and while it’s powerful, it’s very expensive and a bit of a pain to integrate. Maybe later.
  • Wireframing: Omnigraffle (Mac only). We tried Balsamiq first and we liked it quite a bit. I even liked the commune, hippy vibe of the company. Unfortunately, we actually outgrew it pretty quickly, even before the trial ran out. The biggest slam against Balsamiq for me was the rather sad collection of community widgets/stencils available. Omnigraffle kicks its behind in that area and in advanced features (layers are really nice to have).
  • Email, Calendar: Google Apps. We never considered anything else. Really, who wants to run Exchange anymore? The key reason is that a Gmail account has become the de facto standard email account for integration into devices and other services. I expect that we’ll end up using Google Sites for intranet, but we haven’t really run across that yet.
  • Documents Sharing: Dropbox. We considered Google Docs, and we’ve even used Google Docs to collaboratively edit documents, but at the end of the day, Dropbox is just so much easier. Update: With the release of Google Drive, we moved over. I love the seamless integration with Google Apps (which we use for tons of stuff) and that the fact that file storage only counts against the quota of the file owner. With Dropbox, every file hit everyone’s quota. Sucks. Like a Hoover.
  • Office suite: Microsoft Office. Yeah, that may seem obvious, but I really wanted to like OpenOffice or LibreOffice. I used them both, for a long time, and they kind of worked. Then, after some particularly frustrating lost formatting in their PPT knock-off, I downloaded the trial for MS Office and it was, frankly, beautiful and painless. Sorry, open source fans, it’s not even close.
  • Group Bookmarking: Diigo. We discovered early on that we were sending a lot of links to each other with posts, sites, companies that we want to share with each other. I really wish had private group bookmark sharing; unfortunately, it doesn’t.  We’ve settled on Diigo, but the UI is too clunky for what I want it for.  Hopefully, something better will come soon; I’m not happy with this one yet. Update: We don’t use Diigo anymore. Just too clunky. I haven’t found anything better: we just end up emailing links back and forth. Then you have to search back through your email to find the link someone sent you. Not cool. Isn’t there a startup out there who wants to fix this?!
  • Project Management: Basecamp. We actually didn’t default to Basecamp; we went around and looked at many competitors, including ManyMoon (it has a Google Apps plugin), Apollo, and Trello. We ended up with Basecamp because it was fully featured for what we want, but wasn’t cluttered a lot of things we didn’t want (time tracking, proposal creation, etc.). After playing with Trello though, Basecamp’s UI feels dated. I’m thinking we could end up switching if something better comes along. Update: We went around and around and ended up with Planbox for sprint planning and Assembla for bugs. I then mandated that we use only one system for both and went over to Assembla. And you know what? Yup; we’re still unhappy. This sucks. Where is there a good combined sprint planning/bug tracking system? Help!
  • Messaging: Google Talk with Adium. Amazingly, we’re using an AOL product. But it practically doesn’t matter; we just happen to all have AIM accounts. I believe we’re all using Adium clients, but the protocol itself doesn’t matter. Definitely a case where it’s not worth even looking around for anything else.  Update: We switched over to use the Google Talk protocol with our Google Apps domain accounts, but still using Adium. Primary benefit: we can stay logged out of our other instant messaging accounts so we’re not pinged when we don’t want to be.
That’s it for now. I’ll keep this updated with the changes and other decisions we make. Of course, I’d love to hear if we’re missing out on something; a lot of these decisions were “path of least resistance” choices (as they frankly should be). But if we’re totally missing the boat on something, let me know!