Eric Kennedy Great Wall

Eric is a Senior iOS and Full-Stack Developer who has completed 3 marathons and an Ironman

Previously, Eric was CTO at RealSelf.com


Popular posts:

Facebook, the Hacker Way, and Microsoft

Stories about the early days of new companies are fascinating. As an 8th grader in 1994, I was leaning toward skipping high school with a 1-year University of Washington Early Entrance Program.   (I wasn't attracted to girls and knew 4 years of high school dances and sexual repression was not going to be fun or beneficial.)

Then I read Gates, the gripping biography of Bill Gates' introduction to computers at the private Lakeside School in my hometown of Seattle. Lakeside was one of the only schools that had access to a computer in 1968, and Bill Gates learned how to code and met his future cofounder of Microsoft there. It was an inspiring story, so I chose Lakeside.

I graduated 20 years after Bill Gates, and his class was having a 25th reunion in the same room as my 5th reunion. A few people from my class started talking with Bill and he regaled us with the wilder stories of his youth. Bill was so much more interesting in person that I didn't think other people would believe the story, so I asked him to sign my business card:

Then Bill started talking about how fascinated he was by a rapidly growing social networking site.   The site was the main topic of conversation for an hour, and the following day he left a note of one of my classmates' profiles. (I took a screenshot of his profile – which had the 1978 group photo of Microsoft as his profile photo  -- but sadly it died when a worm exploited a buffer overrun in Windows 2000 server and took over the whole server. Firewalls aren't just for paranoid companies...)

Since Bill went to Harvard before starting Microsoft, and Facebook launched at Harvard, one would think he was taking about Facebook.

But this was August 2003 and Facebook wouldn't launch for another 6 months. Bill had discovered Friendster and was genuinely excited. Friendster's growth was more than even its servers and Java software could handle, and it became unusably slow under the crushing load.

Bill was so enthusiastic about the potential that it was inevitable that Microsoft would launch a competitor. And a few months later, Wired noted Microsoft was working on a social network named Wallop.

I had a lot of respect for Microsoft, yet the processes that had served it well as a shrink-wrapped software company developing Windows and Office made rapid prototyping and experimentation painfully slow for web applications. It took two years for Wallop to appear in user trials, and more than three years from Bill's initial excitement before it was finally launched.

Thankfully, Facebook has shown that there is another way, and Mark Zuckerberg highlighted it Facebook's S-1 IPO filing:

The Hacker Way

As part of building a strong company, we work hard at making Facebook the best place for great people to have a big impact on the world and learn from other great people. We have cultivated a unique culture and management approach that we call the Hacker Way.

The word “hacker” has an unfairly negative connotation from being portrayed in the media as people who break into computers. In reality, hacking just means building something quickly or testing the boundaries of what can be done. Like most things, it can be used for good or bad, but the vast majority of hackers I've met tend to be idealistic people who want to have a positive impact on the world.

The Hacker Way is an approach to building that involves continuous improvement and iteration. Hackers believe that something can always be better, and that nothing is ever complete. They just have to go fix it — often in the face of people who say it's impossible or are content with the status quo.

Hackers try to build the best services over the long term by quickly releasing and learning from smaller iterations rather than trying to get everything right all at once. To support this, we have built a testing framework that at any given time can try out thousands of versions of Facebook. We have the words “Done is better than perfect” painted on our walls to remind ourselves to always keep shipping.

Web applications could be updated early and often because customers didn't have to install a new version, allowing companies to release simple versions of features and only enhance the features that were frequently used.   However, many web companies in the early 2000s still operated as though they were selling software the old way. In the days before the Lean Startup, marketing people would create a long list of features that they thought were necessary, fight over the features with the development team, and 6+ months later some features would be finally released, often as part of a 24-hour deployment. I was shocked to see such a heavy process at Expedia. When Barry Diller decided to merge the Expedia Hotels team I was on with his other company, Hotels.com, it was clear the situation was only going to get much, much worse. When my former manager (then at Harvard Business School) suggested I join a newly-funded startup in Seattle, I jumped at the chance to get back into the startup world where I had worked for 5 summers.

Jobster 2005 launch Unfortunately, starting a company with a bunch of employees and investors from Microsoft meant a similar heavily engineered codebase.  I joined Jobster in July 2004 and the first version of the software wasn't released until 8 months later. The CTO and developers choose Java on Windows NT Server, a combination that Paul Graham correctly noted would deter great hacker programmers and bog down the development process.

Reid Hoffman, LinkedIn's founder, is right when he says, "if you're not embarrassed by your v1 product, you waited too long to ship.”  The founder of Jobster had a similar idea of improving the recruiting process through online networking, but LinkedIn had a public site launch more than a year before Jobster received funding.   (LinkedIn was an invite-only service, and I didn't find out how big LinkedIn's lead was until after I resigned and my boss sent me a LinkedIn invite.)

Yale Freshman Facebook 1998
The original "The Facebook" in 1998

For market research, I joined all of the new social networks in June 2004.   Thefacebook.com was just a simple social network with a directory of profiles where members could write on each other's wall, send messages, and of course, poke each other. It broke from other social networks by requiring members to use their real names and limited profile visibility to friends and people within each school network. The site was sprinkled with irreverent quotes like “too close for missiles, switching to guns.”  The “Mark Zuckerberg Production” footer and his “I'm the CEO… bitch” business cards made it look like more of a hobby than a serious business. As The Facebook Effect explained, Zuckerberg had switched focus to file sharing during that summer of 2004 while Dustin Moskovitz kept improving the site.

It didn't seem like Facebook would turn into a real company until mid 2005 when Matt Cohler left his VP role at LinkedIn for Facebook. LinkedIn had a commanding lead over Jobster, so the only logical conclusion was that Facebook must be poised for success for Matt to give up half his LinkedIn stock options. Since Matt was in the Yale network, I should have sent him an email to find out why he would leave LinkedIn and what he thought of Jobster's chances. Jobster had raised more money than Facebook or LinkedIn by that point, and with a team of really smart people who would go on to start Fab.com, Urbanspoon, and Bacon Salt, it seemed like they would eventually pivot to a successful strategy. Yet, as my boss from a startup in the 90s warned me, most people who leave Microsoft fail with their first startup before they succeed because they must un-learn the techniques that only work within Microsoft.  Zillow is the exception that proves the rule since it had seasoned founders who managed Expedia to profitablity in the aftermath of 9/11, and yet even Zillow had 25% layoffs.

At the time, it wasn't clear how Facebook was different from the cube farms software companies typical of the Valley. It was only in January 2007 when the Jobster team I was on visited Facebook's offices to launch one of the first Facebook applications on what was later called the Facebook platform.The API team was just a few super-smart hackers, and features were being deployed on a daily basis. Facebook's open layout was a bit similar to a sweatshop or a college computer cluster, depending on your point of view. I was still not ready to leave Seattle, especially for a suburban town like Palo Alto, so even though Jobster laid off 33% of the company (all in-person sales and marketing staff), I didn't seriously think about leaving until a colleague from Expedia contacted me about co-founding RealSelf.com.

The contrast between Facebook's Hacker Way and Microsoft's Program Manager + Developer model could not have been greater. Developers on most products at Microsoft had so much work dealing with the complexities of the giant C++ source code and the limitations of shipping shrink-wrapped software that they had little opportunity (or encouragement) to hack together prototypes. So if you wanted to create products with prototyping, being a Program Manager seemed like a better fit. Similarly, if you are passionate about building design, it makes more sense to be an architect than a structural engineer. (There are aren't that many Santiago Calatravas who are both, either online or in the built enviornment.) At the time Facebook was founded, if you were a computer science graduate in Seattle you had to choose between being a developer or a program manager if you wanted to work at Microsoft, Expedia or Amazon.

When Google opened their first Seattle-area office in 2004, startup developers in Seattle felt empowered to ignore program managers. Google's founders felt, effectively, that structural engineers can do the architectural work if you keep the overall look stark; they didn't think that program management or writing specifications was useful. Facebook placed more emphasis on trying new features quickly than building a cathedral of code. As long as a feature worked it could ship even if wasn't the best-engineered version or was coded by someone without a university degree. Performance bottlenecks are usually confined to a small percentage of code, and pre-mature optimization is usually a waste of time. Hack first; engineer later.

Facebook's proselytizing of the Hacker Way is it's biggest contribution to young tech entrepreneurs since it encourages them to strengthen the skills needed to identify, design, build, and ship new innovations. The problem with working in a traditional startup with millions in VC funding is that hacking seems like the wrong approach. At Jobster, the developers were adamant about keeping business logic out of the presentation layer and even spent a month switching the database from Microsoft SQL Server to Oracle.   Two years later, that proved to be an expensive mistake and they started migrating over to MySQL, which is what Facebook had been using all along.

As Eric Ries has pointed out with the Lean Startup movement, until you know that you are solving real customer problems, speed of iteration is more important than a heavily engineered codebase.

As Facebook prepares for its IPO, it is very significant that it still advocates the benefits of the Hacker Way when all previous software companies at that stage felt that hackers needed to be replaced with engineers. Paul Allen describes Microsoft's early hacker culture in his memoire, yet he left 3 years before Microsoft's IPO. Facebook has helped re-define web software development roles and has encouraged a generation of tech entrepreneurs in a way that Microsoft or Google never did. And that, I like.