After my experience at Compuserve, I moved on to F5 Networks, which was financially very valuable but professionally unsatisfying; they hired me for my Perl and ncurses knowledge, but I was very unhappy dealing with the console, so the less said the better. When F5 rif’fed 20% of its workforce, myself included, I was only half freaked out; I was glad to get out of there. But it was the bad part of the 2000 Internet Bubble, when nobody was hiring.

I found temporary placement at a startup that was, ultimately, a bit of a scam; it was more like a bunch of guys grouped together looking for a project to build. We pitched on-board WiFi to Boeing (in the year 2000!), we pitched WiFi-based workstations for medical devices. At the time, nobody wanted it. Ultimately, the startup folded under circumstances so shady the CEO fled the country.

But while I was there I picked up Webware, an early application server that they had been using. It wasn’t that they wanted to use Webware, they wanted to use a very early experiment marrying Python to Postgres to enable “a true object-oriented database.” Unfortunately, OODBs turned out to be a performance nightmare with very few real-world uses, which was part of our failure. Webware was just the easiest thing for getting to the Python layer.

So when a friend of mine suggested I check out this storage startup named Isilon, I went to the interview with an open mind. They hired me anyway. There was one manager, one money guy, and five geniuses: I was “Employee number 8.” My job was to put a web-based front-end to the Isilon storage system, which was FreeBSD based. I knew the web; I was very comfortable with FreeBSD (F5′s products are also FreeBSD based). I used Webware, shelling out to the developer’s tools they had for getting two storage pools to talk to each other in an early storage cluster. I had gone from having nothing to having a working monitoring and configuration tool in six weeks.

They decided to keep me, too.

The serendipity was that I had just learned Webware. I had just started to master Python. (After getting laid off from F5, I did a Big Switch: I changed from CSH to Bash; vi to Emacs; Perl to Python; and QWERTY to Dvorak. All on the same day. I was crippled for about six weeks, then everything fell into place and my productivity doubled.)

Later, at Isilon, the CEO asked me “Why Python? Why not PHP?” I explained that I wanted a persistent process that didn’t want or need a back-end database, since I would be keeping state with the Isilon kernel, not MySQL. Besides, Python was easier to read and easier to teach to the people who came after me, whereas PHP wasn’t going to ever be a systems-level language. Python had a very nice API for interfacing with C libraries, so I was already writing Python libraries that integrated with libisi.a. The answer impressed him enough that shortly thereafter Isilon settled on C for performance and Python for all scripting.