I Love Startups.

I get asked a lot: Why am I here? Why Startups? Here is why.

Large corporations are built to withstand a few broken cogs in the machine.  Unfortunately, by design, this requires that nearby cogs should overlap and that no cog can be responsible for too many functions (otherwise becoming a single point of failure). For an ambitious and hungry cog, this system is both a safety net and a glass ceiling.

By contrast, Startups, by necessity, have much fewer resources.  They require cogs to have minimal overlap and that individual cogs must be responsible for too many functions (otherwise it won't get done).  For an ambitious and hungry cog, this system is risky but boundless.

No resources, no funding, no large workforce - these constraints force agility, foster creativity, and forge mastery.  Often, a matter of days can mean life or death for the company*.  Startups, on a budget, have to find creative ways of obtaining users and keeping them**.  And, in a consumer web application startup, an average number of users supported per engineer over 500,000 is not unusual***.  

I love Startups. Do you?

 

* In The Paypal Wars, Peter Thiel's ability to make deals fall into place quickly (for funding in a down economy) was key to their early survival.

** Prerna Gupta, CEO of Khu.sh, uses JUST YouTube to get traffic towards her app. The best part? Less than a year in, they're profitable.  [source]

*** Reddit's number is at least 1,000,000,000. Yep, that's a billion users per engineer. [source]

Why I am COO instead of CTO.

As the technical half of my company, it is all too often incorrectly assumed that I am the CTO. 

According to Eric Ries, the CTO's primary job is to ensure the company's business goals are met by the technology strategy. This involves choosing the right platform(s) to build on top of, fully understanding all tradeoffs involved, and ultimately deciding where to focus R&D efforts based on what's best for the company. Spoondate's current full JavaScript stack has been validated by past projects created by me over the last two years as well as by a number of proven, scalable projects from NodeKnockout. The entire system has been designed from the beginning to eventually require no human intervention to operate* - minimal R&D is required if at all. The CTO job for Spoondate is essentially reduced to evangelism - a task where someone more outgoing would be more apt.

The COO's primary role is to collect, dissect, and condense data from the company for the CEO - who ultimately makes decisions from said data.  Trust is a huge factor in this relationship - a malicious COO can distort the data, undermine the CEO, and try to replace the CEO. Raissa, Spoondate's CEO, and I have established a relationship of history of trust and aligned goals. Furthermore, I have a proven track record of providing Raissa with extremely valuable, unbiased data about pretty much everything.  I'm never going threaten her position as CEO (unlike an incoming executive hire).

My background is further advantageous to this position.  As an engineer, my technical skills are invaluable in a business world - I can build my own tools to automate or accelerate almost any aspect of my job.  Personality-wise, I am happiest in roles that don't require lavish attention - when my job is executed correctly, no one should notice a thing. This complements the position well. On the flip side, mistakes inevitably happen and I can resolve them and prevent regressions without overhead or oversight.  

As COO, by design, I have a significantly better capital efficiency - I accomplish more for the same budget.  I have the ideal (and hard to find) COO-to-CEO relationship.  

- Van, COO, Spoondate.com

 

 

* Our codebase supports i18n, feature flags, split testing, continuous deployment, real-time monitoring & analytics, zero-downtime deployments, page speed best practices, (eventually automatic) progressive enhancement, web app security best practices, dynamic asset packaging, and many other production-ready (read unit-tested) features. In the future, we might only need 1 full-time engineer to add new features (or maybe 0!**).

** It is possible! Just means that a non-technical person would be able to add features without code.

***For me, often, zero feedback is a pat-on-the-back.  That means no fires to put out.  

 

Going Lean on a Spoondate

This post was made in response to the AppSumo lean challenge

 At Spoondate, we've been taught and advised from day 0 to be Lean.  We started at Women 2.0 FounderLabs where speakers like Eric Ries and Steve Blank preach about concepts like Customer Development and Lean Startup methodology - we listened.  HARD.

Almost every day, we test features, ideas, or copy in front of at least one random human being (other than us).  Our iteration cycles range from 3 minutes to 3 days. We use the Think-Make-Check cycle - come up with a hypothesis, build a prototype to test, then test and use it to refine a new hypothesis.  

This process has been carried over to every stage of our development thus far - from testing the acceptance of the core concept and branding (ex: logo, catchphrases, and color scheme), to paper prototypes, to digital mockups, and finally to code prototypes.  At every stage, this fast iteration has resulted in thousands of small, incremental improvements and it shows.  

At the concept testing phase, we used Ask Your Target Market.  This allowed us to get opinions from a diverse range of demographics all across the USA.  We identified several "turn-offs", what worked and what doesn't.  Our company name choices were down to BrieHarmony and Spoondate, Spoondate turned out to be more memorable, more unique and much less likely to cause a lawsuit.  A lot of people we meet say they love our brand, this is why it's so polished.

At 500 Startups, we went through the INTENSIVE 3-day Design Bootcamp hosted by Janice Frazier from Luxr (which is AMAZING btw) in collaboration with the Stanford dschool.  From that, we were shown the magical efficiency of paper prototypes.  We built paper versions of our ideal website, people could click on links with their finger and by moving things around and thus the "site" could be interactive. We were able to test our initial prototype with real people this way.  We identified something like 30 pain points for users in the signup flow alone.  The idea of testing our concept with REAL users using JUST paper prototypes was so foreign and impossible to us before this.  Now it is natural and easy. It has saved hundreds if not thousands of development hours so far.

For digital mockups, we started with GoMockingbird.  This allowed us to create clickable mockups that we could share digitally for testing purposes. Digital mockups allowed us to map out all of the interactivity at a larger scale and then allowed us to share with people who weren't physically near us.  User testing extended to anybody on the internet.  GoMockingbird works really well until you need to export to PDF - the interactivity is lost.  For future mockups, we're moving towards Keynotopia - all of the interactivity works even if you export to PDF.  Keynotopia lets you create fully interactive mockups using JUST Powerpoint or Keynote (these mockups work on every platform that supports .ppt including Windows, Mac, all iOS devices, etc).

For code prototypes, our code has been designed from the beginning to be flexible.  Our database is schema-free without side effects - adding or removing fields on production is as easy as adding or removing a line of code.  We're not at 100% unit test coverage yet, but when we get there, Spoondate will be using Continuous Deployment - then, even a VC can push live code.  With everything in place, we can turn on a dime - even at scale!

Here at Spoondate, we don't just read or talk about Lean.  We live it.  

 

Van's Adventures in SF

One week in SF.  A bazillion wacky events.  Here is a small sample of some of the adventures.

 

"Recruiting Stories"

J: Hi.  We have a guy coming in for an interview at noon.  His name is Van.

Security Guard: Ok, what's his last name?

J:  Umm, I don't know.  We met him at a bar last night.

Security Guard: Uhhhhh...

(later)

Security Guard (while I walk into the building):  HEY!!  Hey you!!!  .... Could you sign in please?

 

"How to confuse an interviewer"

Nate (interviewer): I want you to take these two arrays with different IDs and merge them into one.

Me:  Why?

Nate:  Huh?

 

"Anton"

Anton (pointing at my schwag):  What are these?

Me: Github stickers.  This one goes on the back of you MacBook.  Would you like one?

Anton (walking out):  Meh, nah.

Me (holding the door to leave the building): Bye guys!

Anton:  Wait, is that a [github] t-shirt?

Me:  /nod

Anton (BOLTS OUT THE DOOR while i'm still holding it open): I collect shirts.

Bystander: Wait, what just happened?

Me: /shrug

 

"The value of being a MacHead"

(Lunch break between interviews)

Justin: Can you view the source?

Mike: /presses cmd-u (nothing happens)

Justin: Press cmd-u.

Mike:  /pushes cmd-u (nothing happens)

Me: It's cmd-alt-u ... in Chrome.

Mike: /pushes cmd-alt-u (it works, ta-da!)

Justin: See you're providing value already!

Me: /grinning

 

"Keys to the city"

Me: /standing patiently outside the Scribd office waiting

Tim: Did you want to come in? (he lets me in)

Ryan: TIM!!!  NEVER let this guy in the office again!!!

Tim: He had a 'fork you' t-shirt, he couldn't be all that bad.

 

"CraZIES"

Me: Oh yeah?  What are you studying?

Steven: I'm getting a doctorate in forensic psychology.

Me: a what in what-what?

Steven: I get to deal with all the crazies.

Me:  Ohhhh.  Nice.

 

"Tech parties"

Carlo (yelling over loud music): This doesn't seem like a tech party to you does it?  Maybe we're at the wrong place.

Ryan (pointing to the scantily clad female dancers): Or maybe we're at EXACTLY the right place.

 

"Excuses"

Shawn: Did you die?

Me: I've been in SF for a week

Shawn: Good.  That is about the only excuse I would have accepted.

Apple's Secret Weapon: The iPad

Name jokes aside, the iPad has been criticized a lot since its unveiling on January 10, 2010[1].  But people don't seem to realize, even in Steve Jobs' absence, Apple has always been deliberate in its actions in terms of product design and in terms of corporate strategy.  The seemingly poor name choice may in fact be deliberate and revealing.  And as such, we have yet to see the true potential of this device. 

In 2001, Apple opened its first retail store.  Compare with Gateway, which opened its first retail store in 1998[2].  There are now over 294 Apple Stores around the world to Gateway's 0. In 2005, Jobs announced that Apple, Inc. would make the transition from Motorola PowerPC CPUs to Intel chips.  The transition, which by itself has apparently warranted its own wikipedia article, has been extremely successful and well-timed.  Sales of portable Macintosh computers were increasing but not impressively so in the early 2000s.  But, according to the wikipedia article, sales saw a ridiculous upward curve after that.  "In January 2006, Apple's market cap surpassed that of Dell."[3]  Apple's current stock price (as of Feb 8, 2010) is $194.12 per share - not bad for a company that sat at $6 per share in 2003.  In short, with Boot Camp, iTunes, iPhones, Macs, and more recent environmentally conscious actions, Apple takes tremendous care when it comes to its products and to how the world perceives them[4][5].

So why would Apple be so careless?  Within moments of Steve Jobs uttering the product's name onstage, the insults began to appear all over the internet: iTampon, MaxiPads, iPeriod Tracker, and so many more [6].  The iPad is targeted at a specific market and at specific tasks.  Supposedly, the device is much more ideal for browsing the internet, handling email, and reading books than the iPhone or the MacBook or Amazon's Kindle.  And while the world of competitors is already busy on replicating all of the iPad's features, the competitors are likely to be missing out on the iPad's true purpose until it is too late.  The product's name and the target applications are misdirection in Apple's long-running magic show, they are distractions to keep you from looking at what is really going on.

In the mid-nineties, a young Wayne Westerman, a doctoral student at the University of Delaware, suffered repetitive stress injuries to his wrist in response to years of working in front of a computer.  Rather than cope or quit, he fought back[7].  He and his PhD advisor, John Elias, developed what would eventually become the basis for the multi-touch technology found in MacBooks, iPods, iPhones and ultimately the iPad[8].  Their product was a flat keyboard that could support any combination of fingers and gestures - it required almost no stressful force to use and it allowed the user to switch from keyboard to mouse in the same area.   It also recognized gestures like cut & paste using very elegant and memorable movements.  It was an evolved input device.  Just like the iPad.

The iPad is an input device.  That may seem overly trite or uninteresting but imagine a network of machines that you can control while you walk with almost the same typing speed as you could get on a real keyboard.  Or don't walk. Sit, lie down, jump, run - anywhere you want to be.  Sure, you could do these things (or attempt to do these things) with a laptop or a netbook, but neither of those have full screen multitouch that can support point-to-point cut-paste or the ability to turn pages as if you were turning a real page.  The iPad will completely replace the traditional keyboard and mouse interface... at least until Project Natal is finished.  As for the name... perhaps its not as bad as the Wii.

 

[1] (1/10/10) Binary dates are ftw.

[2] Gateway, Inc @ Wikipedia

[3] http://en.wikipedia.org/wiki/Apple_Intel_transition

[4] http://www.hulu.com/watch/94300/macheads

[5] I have no idea where they were going with AppleTV.  I'm going to pretend that doesn't exist.

[6] http://jezebel.com/5458338/that-time-of-the-month-the-best-period+related-ipa...

[7] Now he can cope alright... from inside his Aston Martin.  Tehehehe.

[8] http://en.wikipedia.org/wiki/FingerWorks

 

Thanks to Bao Nguyen, David Chen, and Ryan Richards for feedback on this essay.

Adium Chat Log Sync++ With Dropbox

Summary

If you have trouble getting your Adium chat logs synchronized between multiple computers, I can help.

 

Never forget again.

If you're using multiple computers (i.e. one at home, one at work) and find yourself using the same instant messaging accounts, its helpful to synchronize the chat logs on those accounts so you can always recall what you or someone else said.

 

Secret Sauce

I love using Dropbox for this. If you've googled around for how to set this up, you've probably found articles which describe the process of setting up Adium to use Dropbox for log sync. Unfortunately for me, this process only works on the first machine. As you can imagine, there's no point in synchronizing chat logs between a single machine... Not once have I been able to get it to work the way the linked blog post suggests.

 

Step-by-Step

To get it to work, I use a different process:

  1. In Finder, make a folder in your dropbox folder where you want the logs to be stored. I use
    "/home/%USERNAME%/Dropbox/Adium Logs"
    where %USERNAME% should be replaced by your username.
  2. Right click (or Cmd+LeftClick) your folder and choose "Make Alias"
  3. Hit Enter and rename your newly created alias "Logs" (case matters here).
  4. Open a new Finder window and go to:
    "/home/USERNAME/Library/Application Support/Adium 2.0/Users/Default/"
  5. If you already have Adium chat logs, rename the "Logs" folder in the "Default" folder to something like "Logs.backup".
  6. Drag your alias, "Logs" , to the Default folder and overwrite the old Logs folder.
  7. If you needed step #5, then open your backup folder and select all the inner folders and drag them to the alias from Step 6.
  8. Quit and restart Adium.

It takes a little longer than the other article.. but its worked every time for me. YMMV.