It's midway through the year 2000. I'm 28 years old. Heather and I have been married three years. Rachel turns two this year. Our daughter Esther was just born. My dad is dying of cancer. He's still talking about living to be 100, but the odds are so ridiculously long that I hope he's just keeping up a brave face and a positive attitude and not in open denial. Or maybe he’s just kidding. It’s always hard to tell what's really going on in that maddening, muddled head of his.
He's never been very fond of going to the doctor, and by the time he got around to having himself checked it was years too late. They're apparently calling it “intestinal cancer”, but the mass itself is a sprawling and ambitious thing that's glommed onto his liver and a few other organs during its long and greedy lifespan. My brother explains all of this to me on the phone. I’m 600 miles away in Boston.
Living in Boston is not working for us. I'm feeling restless and missing my parents and siblings. We don't have a lot of friends here. Since we only have one car, Heather is usually trapped in our little condo with the kids all day. I got a raise when we moved here, but it wasn’t nearly enough to cover the massive spike in cost of living between Pittsburgh and Boston. The dot-com bubble is just now starting to pop, and Boston is a ridiculously expensive place to live. Like a lot of young couples, we're making the mistake of throwing unexpected expenses onto a credit card until we have the money to deal with them. While the numbers zigzag up and down, on balance these expenses build just a bit faster than we pay them off.
My health is bad. Something around here is inflaming my asthma. I’m pretty much always experiencing a low-level blockage of my airways. My breathing is heavy. The doctor puts me on steroids, which diminishes the asthma problem at the expense of making me perpetually hungry. I’ve been gradually putting on pounds for the last decade, but now I’m getting huge. At this point it’s entirely possible that some of my oxygen shortage is weight-related.
Also, the drugs are putting me into a constant state of agitation. My default mood is sort of “mildly pissed off”. That’s how I feel. All the time. Every day. When things actually go wrong, my temper is explosive. I growl and cuss and lose the ability to think straight. This makes technical work kind of challenging. I manage to keep my temper bottled up at work by grinding my teeth and muttering at the computer, but I’m always on the verge of slamming my keyboard into the monitor. It’s not that my job is stressful. I mean, it’s technical work and sometimes technology breaks, but this rage isn’t really instigated by my job. It’s bad medicine, bad health, and bad lifestyle. The job is just the catalyst. If I was unemployed, I’d spend all day at the home being mad at the furniture or the stuff in the fridge.
I can tell this anger is irrational, but that doesn’t make me stop feeling it.
Even ignoring the misery of working on the virtual mall, I really hate working in an office. My bosses are fine and my coworkers are fine, but it's just so dang uncomfortable. The constant screen glare. The distracting chatter. The ringing phones. The dress clothes. How can anyone be creative and productive in a place like this?
I spend all day talking, so by the time I get home I have no more words left for my wife. We're turning into the classic couple where the wife has a pent-up need for conversation and the husband has nothing but nodding and grunts. She's burning to get out of the house, and I don't want to do anything but sit still and be quiet. We compromise by going out occasionally, but it's not enough. I'm still going out more than I'd like and she's not going out nearly as much as she needs.
After months of unhappiness a few key ideas begin to crystallize. Didn’t I TAKE this job because it was fun and interesting? How did this go so wrong? I’m not getting any joy out of it because just about every other aspect of my life is dysfunctional. I’m taking drugs that are bad for me so I can work in an office I hate where I don’t make enough to pay the bills at the condo that’s too small for the family I don’t have time for. Meanwhile, my Dad is running out of days and I’m not spending any of them with him.
This is crazy. I need to get out of here. I need to move back to Pittsburgh.
I plan to tell my bosses that I want to work from home again. I know this is a good job, but I'm willing to give it up if that's what it takes to get out of this madhouse.
I tell my bosses I need to talk to them. They say they need to talk to me. They tell me they want me to move to working on programming full-time. I tell them I need to move back to PA. They are not crazy about this. I’m so desperate to escape Boston and the virtual mall that I blurt out that I’ll continue making what I’m being paid as an artist, rather than seeing what they offer. I’m going to kick myself for this over the next ten years. They just got themselves a very cheap programmer.
Two weeks before the move I get the call. Dad is gone. I move back to my hometown in Pennsylvania.
Put me in, Coach. I’m ready!
Once I’m home, I end up in a three-way conference call. Lead programmer Roland has finally gotten wind of my promotion, and he’s not happy to have me jumping into the codebase. The call consists of my two bosses in Boston, Roland on the west coast, and me in Pennsylvania. Roland patiently and methodically runs through his objections:
- Shamus has never collaborated with other programmers or worked on a large codebase. (I say nothing. He’s right.)
- Shamus doesn’t have a degree. (I dislike the emphasis on a degree over accomplishments, but that’s a philosophical debate for another time. I stay quiet.)
- If we really want another programmer, we can go to the resume pile and find a dozen guys with more education and experience. (Again, I can’t really argue with him.)
- The tricks Shamus pulled adding visual effects to our software might look cool, but they’re not technically challenging and not a good indicator of skill level. (I’m tempted to quibble with this. Being able to spot high-yield, low-cost improvements is itself a skill, even if implementing those changes isn’t particularly hard. But this doesn’t feel like the right time to have that argument, so I keep quiet.)
- If we need graphical effects added, we have two programmers capable of adding them. The lack of graphical improvements thus far isn’t about programmer skill, it’s about management being willing to spend the time. (I slightly disagree with this, but I don’t say anything. I think the existing coders have shown a certain reluctance to embrace graphical upgrades. I believe they’re capable of doing them, but for whatever the reason they don’t see graphics as a priority. I think we can get huge visual gains for a small cost in man-hours, but right now I’m the only one who sees this opportunity. In any case, the question of “What features are most deserving of our limited programmer hours?” is a separate issue so I don’t say anything.)
- We have a system for how features get added, and if we turn Shamus loose on the codebase to add random things then everything will be chaos. (Here I finally jump in and assure him that I’m not about to go crazy adding unplanned features to the software. I’m prepared to work within the existing system.)
Roland makes his objections, and he’s overruled. He doesn’t like it, but I’m now on the coding team.
And from this point onward, it never comes up again. You’d never know he opposed my promotion at all. When I make a mistake that causes him problems (and I make plenty) he doesn’t run to my bosses and say, “See? This guy is a screwup just like I said!” Instead he calls me in private, talks about how I messed up, and offers a few tips on how to avoid the same pitfall in the future.
He often reviews the code I check in. Sometimes he finds something that could be done better. The easy thing would be to fire off an email telling me to fix it. The self-interested thing would be to tell the bosses. The expedient thing would be to fix it himself. But instead he does the more troublesome thing, which is to write me an email explaining what he saw, what he thinks is wrong, and how the problem probably should have been solved. Then he lets me fix it myself. This is the most trouble for him and the maximum benefit for me.
When I come up with something clever, he’s always happy to say so. We have a lot of energetic conversations about graphics tricks. After a few release cycles he’ll come to appreciate my ability to get big graphical improvements out of small changes. I’ve gone from being an artist-coder to a coder-artist, and it turns out that’s a pretty powerful combination. He’s always viewed graphical upgrades in terms of huge engine overhauls, and the stuff I’m doing shows that you can get a lot of bang for your programming hours if you know where to spend them.
When I have questions, he’s generous with his time, even when he’s got lots of his own work to do. Sometimes I get lost in the weeds of quaternions and transformation matrices and he’ll step in to help me out.
He is the best boss I’ve ever had, and – barring a miracle – ever will have. But maybe it’s unfair to call him my boss. Our working relationship is nothing like the other supervisor/minion situations I’ve been a part of. He outranks me, sure. But I follow his lead because I respect and trust him, not because his name is higher than mine on the org chart. For his part, he never pulls rank on me and insists on his way, but instead prefers to discuss things until one of us is persuaded.
I’d always planned on thanking him for his support and knowledge. I waited too long. In June of 2015, He was struck and killed in front of his Oregon home by some teens street racing their sportscars.
But what about The Virtual Mall?
Now that I’m off the art team, the task of completing the mall falls to the rest of the artists. They’re good friends and I hate to see this mess dumped in their laps. Mike – who will be leading the project from now on – dismisses my apology. He doesn’t mind at all. He wasn’t at the meetings and so he’s not soured on the project. We spent a lot of time shaking our heads over the “Can of Beans” design and making fun of the more absurd design decisions, but he sees the project as a goof and not as a Kafkaesque nightmare.
In fact, Mike is pretty happy I’m moving to the coding team. Being an artist and a gamer, he’s been campaigning for ages that we need more graphical tools, better lighting, and more features to make worlds look better. He’s happy to see me switch to programming if it means we’ll get more features that are important to us.
Still, our company is somehow attached to this mall in a financial sense, and nobody knows how it’s going to turn out…
Secret of Good Secrets
Sometimes in-game secrets are fun and sometimes they're lame. Here's why.
In Defense of Crunch
Crunch-mode game development isn't good, but sometimes it happens for good reasons.
The Game That Ruined Me
Be careful what you learn with your muscle-memory, because it will be very hard to un-learn it.
The Loot Lottery
What makes the gameplay of Borderlands so addictive for some, and what does that have to do with slot machines?
Video Compression Gone Wrong
How does image compression work, and why does it create those ugly spots all over some videos and not others?