I am a programmer. That’s not all I am but it’s definitely the headline. I started doing system administration in high school, then floundered around for a while wondering what I could do for a job that involved computers. Then– like the smart-ass kid I was, I got a System Administrator job at my junior college by telling the head of IT the admin password for all the school computers.
After a while it seemed like the most fun part of doing System Administration was writing scripts (still one of my great passions) because every time I wrote a script it meant that there was another boring thing I didn’t have to do anymore. It turned out that there was a job that was just doing that all day and it paid better. Some people call that job Software Engineering, some people call it hacking (although I guess that’s a bad word now that sketchy people who do bad things use it to describe themselves), a friend of mine calls it “artisan keyboard mashing.” Call it what you will, it’s automating things that are super boring and/or stressful to do by hand.
With that figured out I went to a real college to get a fancy degree so I could get fancy jobs. While I was there I actually learned some stuff too. Like how Operating Systems work, they’re basically accountants cum kindergarten teachers. They just maintain a bunch of tables and lists to keep track of what programs are using what physical resources (memory, CPU time, etc) so that it can keep programs from running into each other or doing mean things on the sly. I learned about algorithms too, it turns out that over the years a lot of really smart people have figured out good general ways to do some surprisingly hard things very efficiently and often very beautifully (don’t believe me? look up a visualization of Dijkstra’s algorithm sometime).
After my first semester at college I figured I was basically amazing at everything so I got a job at IBM that wound up lasting until 3 months after I graduated. My first boss was the best boss I have ever had, he looked at an angry kid with a lot of issues and saw someone who would work hard and do good things if dealt with gently. While I was working for him I automated a release process (by writing a transpiler in bash), a source code license updating problem (by writing an Ant script that wrote an Ant script and then executed it), and a number of other smaller tasks. Then IBM started going through a reorg (reorginization to those lucky enough to be unfamiliar, it’s where a company fires people, then decides who should manage who now that there are less people and if you’re now a manager your first job is to fire some more people, three years later this particular reorg is still ongoing) and I stopped feeling like I was getting away with murder. I was doing less work (indeed for a few months I was doing literally no work) but it felt like the money wasn’t worth sitting on my hands for 8 hours a day.
Around this time I was living in a hacker house in San Jose (with 8 other people), drinking a lot and watching a lot of Silicon Valley. It seemed like start-ups were the hot thing to do, and if you had good ideas and were willing to work hard you could do great things. So I joined a start up that you’ll never hear about unless its bankruptcy case sets some kind of record. I was almost immediately put in charge of the indexer, a word that still makes my heart pound just a little harder. It was a program that was designed to look inside files as they were added and modified to see what was inside them. At first the company was into encryption, so the indexer’s job was to determine how those files should be encrypted based on the content of those files, which I thought then and think now is the future of security. Then that wasn’t making money so the CEO decided that we should just sell the indexer as a sophisticated nanny-cam. I did it, and I did some of the best technical work of my life, but a lot of engineers that I admire left when the CEO made that decision and I often wonder if I should have left too.
When it became clear that the company was not long for this world I left for greener pastures. I could spend– and have spent, entire days dissecting just exactly why the company failed. Was it all my fault? There were 20-30 other people at the company and I had gotten out of college 3 months before I started, so it probably wasn’t all my fault. I was there and I was a significant part of the company so I’m definitely inculpated. Ultimately that question is moot. It did fail, so now I have to learn all I can from the experience and move on. Now I work at Rubrik Inc, where we sell backup and recovery. It’s not glamorous work, but it’s morally justified and there are plenty of boring and stressful things that need automating.