I first met Bill Gates at the age of twenty. He stood in the yard of his Washington lake-front home, Diet Coke in hand, a tastefully small ketchup stain on his shirt, which no one had the courage to point out, and answered our questions, in-turn, like a savant. As a college summer intern, I had planned for a potential encounter and I approached him with questions that interested me but which would be arcane to non-computer mortals. (I asked him about the performance of Microsoft Exchange’s database storage engine as compared to the one inside Microsoft SQL Server, and about NetWare’s newly-announced clustering technology called SST Level 3.)
His answers demonstrated that he was one of the top software experts on the planet and convinced me that I would be wise to start off my career at Microsoft.
Writing software is a craft, like carpentry. While you can read books on programming languages and software algorithms, you can’t learn the countless details of a craft from a book. You must work with experts on real-world problems. Before free software, you had to join a company like Microsoft.
I joined Microsoft in 1993 when it was hitting its stride. It had recently released Windows 3.1 and Windows NT, setting itself on the path of more than a decade of dominance in the PC operating system market, and the many other markets that flow from it. I worked as a programmer for 11 years in a variety of different groups — on databases, Windows, Office, MSN, mobility, and research.
One day it just hit me — I should quit. There were no big reasons, only a lot of little ones. I had just launched v1 of the client and server side of the Microsoft Spot watch, and while it contained sophisticated technologies, I didn’t really believe it would take off in the marketplace. I had gained lots of knowledge yet only understood the Microsoft world. I was making decent money, but had no time to enjoy it. Though my boss was happy with me, I was losing motivation to just keep doing the same thing I had been doing for over a decade. When I looked around the company I saw a lot of ancient codebases and unprofitable ventures.
Like many of my fellow employees, I was only vaguely familiar with free software when I left and randomly decided to check out this thing called Linux. At Microsoft, I got all the software I wanted for free, and I always thought free software would be behind proprietary software. For 15 years I had made it a priority to learn about many aspects of Microsoft technologies, and my office contained rows of books on everything from Undocumented Windows to Inside SQL Server. When running Windows I felt as comfortable as Neo in the Matrix, without the bullets and leather, so while I was willing to look around, I was half-forcing myself and didn’t want this little experiment to mess up my main computing environment.
Every technical decision was big for me: which version of Linux should I try? Should I get an extra machine or can I try dual-boot? Can I really trust it to live on the same hard drive as Windows? I got some tips and assurance from a Microsoft employee who had recently tried Linux, and with that, and the help of Google, I proceeded with the installation of Red Hat’s Fedora Core 3.
While I came to not be all that thrilled with Fedora itself, I was floored merely by the installation process. It contained a graphical installer that ran all the way to completion, it resized my NTFS partition — which I considered a minor miracle, setup dual boot, and actually did boot, and let me surf the Web. I didn’t have a clue what to do next, but the mere fact that this all worked told me more about the potential of Linux than anything I had read so far. You cannot, by accident, build an airplane that actually flies.
Over time, what impressed me the most about Linux was the power of it all. It came with tons of applications: Firefox, OpenOffice, GIMP, Audacity, Mono, MySQL, and many more for me to discover. The UI was simple, responsive, polished and customizable. Installing the Apache web server took just a few seconds and gave me access to a vast world of PHP. Installing the WordPress blog took me 15 minutes the first time, but I knew when I became more proficient at things, I could do it in one. I came to understand that beyond its poorly debugged device drivers, a Windows computer is a sad joke. By mid-2005, I was in love with computers again!
I’ve spent three years in diligent research on the key subjects of this book, talking to hundreds of programmers, attending many conferences, and reading source code, magazines, websites and books. This book isn’t really about the death of Microsoft as much as it is about the Microsoft proprietary development model that has pervaded or even infected computing. I have absolutely zero bitterness towards Microsoft although I now believe they are toast. I loved working there, learned an enormous amount, and enjoyed the privilege of working alongside many brilliant minds. Like many things in life, it was fun while it lasted.