Column 5

: So You Wanted to Be a Computer Programmer…

For as long as you can remember, computers and electronics fascinated you. Your future as a computer programmer seemed fated by the timing of your entry into adulthood. The first Internet gold rush was in full swing and all around you nerds were being touted as heroes of the New Economy on the covers of Fast Company and Wired, and they were making money hand over fist doing what you loved to do.

You dropped out of college and started looking for a job at a startup. Leaving school to launch the next big thing was a rite of passage rooted in the mythos of geek icons like Steve Jobs and Bill Gates. Companies were hiring anyone with a basic grasp of Boolean logic and the hunger to create, and college dropouts seemed more willing to go the extra mile for less pay as long as there were stock options involved.

You landed a job with an e-commerce site that sold computer parts that they sourced from wholesalers and drop-shipped to the customer. You were right in the thick of the dotcom boom working at a company that embodied all that the era stood for:

• Find a quasi-legal niche that probably doesn’t actually exist • Exploit people who want to be on the bleeding edge • Profit, however briefly (optional step) • Sell or otherwise disband company • Repeat as desired or until the government catches on

Your major project was to create an algorithm for the website that would mark up prices based on shipping options. This was your first clue that things weren’t necessarily on the up and up. Your second clue might have been the raid by the Department of Justice, were you not out interviewing for a better job that day.

It turned out that the company wasn’t actually shipping anything to anyone. They would sell the merchandise on the website and collect the money, but not actually place an order with the supplier unless someone called up threatening to sue. Given the times, this was actually a sustainable business model, you know, minus the parts that were illegal.

When you came in to work the following day the office was deserted save for the copy room where the CEO had his shirtsleeves rolled up and was feeding an industrial shredder with the ease of a man that has some experience in that arena.

Your next job was developing healthcare software. It seemed like a more legitimate business and you were excited to work on products that would actually have a tangible impact on people. You were told you would be working with cutting-edge web technology to deliver a next-generation electronic health records platform. You came to work on your first day excited to dive in and write some code. Instead, your schedule looked like this:

9:00 AM – 10:30 AM Product Development Committee status update meeting

11:00 AM – Noon Team Scrum status meeting

12:30 – 2:00 PM Product demo and architecture meeting

2:00 PM – 3:30 PM Halo 3 tournament

4:00 PM – 6:00 PM Skype video chat with Bangalore team

Each day thereafter progressed similarly. The expected lifestyle of a programmer at a startup was to burn the candle at both ends, really buckling down to get some work done late into the evening, until your desk couldn’t be seen through all the Mountain Dew cans and Hot Pocket wrappers. You pressed ahead, cranking out feature after feature, trying each day to outdo yourself at the product demo. At midnight on New Year’s Eve you cracked open a Pabst Blue Ribbon, gave a salute to nobody in particular, and put your face back into the glow of the monitor. You had to ship. It was all about shipping. Nobody had actually defined what, overall, you were trying to ship, but the hope was that if you cranked out enough features somebody would come along and put them together into a saleable product.

Three years passed as if they were one continual day. Holidays and weekends, even nights, were artificial constructs of time that only had meaning to other people. You were 25 pounds heavier and one girlfriend lighter, and neither of those things caused so much as a ripple in your work. You took it upon yourself to make sure this company succeeded, your bevy of stock options pushing you beyond what is reasonable to give of yourself to an employer. Future riches and recognition were worth the effort now; at least that’s what you told yourself.

The day finally came to launch the product but there was no fanfare. No big payoff. No feeling of fulfillment. It was merely a quiet launch with one beta customer. You didn’t know what to do with yourself so you sat there all day refreshing a view on the database to spy on what they were doing. Answer: not much. The things they did do, they did wrong. They found bugs. They found ways to circumvent all of your carefully constructed system rules and validations. Not because they were master hackers or brilliant technicians…but because they were just stupid. They clicked on things they shouldn’t click on. They typed things in that they shouldn’t type in. They didn’t read simple instructions. They didn’t listen in training. They were personally insulting you by being terrible at using your software.

In a field labeled “Enter the number of specimens:” they typed “five specimens.”

In a field labeled “Social Security Number:” they typed “he doesn’t have one because he is an illegal.”

Instead of using the button labeled “Create New Patient Record:” they kept changing the information in a single patient record over and over and saving it.

Then the calls came in from the sales team demanding to know why the system was broken and why you had taken so long to develop something that clearly didn’t work.

There was nothing you could do but respond to the bug reports and issue system patches that added no value other than handholding people through the software. You wondered aloud how these people had managed to survive this long without drinking bleach by accident. As new clients came on, you hoped that the work you did with the first one would mean they would successfully use the system.

No such luck. They were all stupid in subtly different ways. Edge case upon edge case piled up and your life was soon consumed with making ever more specific and annoying changes to your beautiful system until it began to take a form you didn’t recognize anymore. You hated your users, even though revenue was beginning to flow in and everyone was seeing tangible results from the years of work. You wanted out—wanted to do anything else but this; but you were stuck. The money wasn’t great, but better than what you could get elsewhere. You would lose the stock options if you quit, making the effort seem meaningless, and you wouldn’t be able to awkwardly flirt with the pretty sales engineer that you were secretly in love with anymore.

You stayed there maintaining the software you had grown to loathe for users you wanted to physically harm. The pretty sales engineer got engaged and moved away. The options vested with a strike price higher than the share price, and stayed that way. After a decade you ended up managing a team, no longer able to spend time on the one thing you wanted to do most: writing code. Your job became taking young programmers who love what they do and extracting their souls, motivating them to follow the same path you did. You hated yourself and your job every day, but figured you were too old to do anything else. You acquired a taste for whiskey and began to work earnestly on your retirement plan: hoping the cirrhosis takes you before you’re forced to retire and work as a grocery bagger.