Hey dames 'n' fellas. Been a while. I imagine you're wondering where I've been.
Long story short, I got fired from my job three weeks ago, a month before my evaluation period was up. Went home and slept for a week; emails piled up, phone calls went unanswered. Fell into some sad times.
Short story long? Here goes.
So. First established game industry job, right? Wasn't working on a game. The market for small-budget games in NYC is unreliable at best, so my employers sometimes did interactive iPad apps for healthcare industry ad agencies--"PowerPoints on steroids," my boss called them--in order to secure funding for their own game projects. They put me on one of those. Seemed like a pretty good deal at the time--they'd hire me as an independent contractor to do a dull, easy project, and if they liked what I've did after three months we'd have a meeting and talk about whether I'd be a good fit for permanent staff.
They showed me some PDF mockups the ad agency had sent--about twenty slides, eight of which had bar graphs, maybe five or six which had unique features like videos and animated content, with a note saying that more slides were coming soon. The higher-ups at the ad agency hadn't approved the art yet, but they had sent us some placeholder graphics so I could get started before then. According to the impenetrably marketingspeak-dense timetable document the project deadline was May 31. Definitely looked doable to me.
So I hit the ground running and churned out a pretty little tech demo by the end of the first week, with skeletal implementations of all the major unique features, and even some minor miracles like a clever solution for iPad 1 support for external monitor mirroring (a task far more difficult and complicated than Steve Jobs's presentations make it seem), and everything was good for a while. I made brisk enough progress that my boss and co-worker let me take a little time out each day to join their design brainstorming sessions for future game projects, in which I had the time of my life coming up with new gameplay elements and modeling tactical situations with toy soldiers and coming up with player decision trees and systems for balancing risk-reward and all the other things real designers do. I was doing both my job and the job I wanted to do; I was making up for lost time in a hurry. And I don't know what my boss thought of my abilities, but he was certainly impressed by my enthusiasm and my extraordinarily broad knowledge of game mechanics--not a day went by, it seemed, when I didn't astonish him. By the end of the first month, he'd already picked out the game project I'd be working on after my evaluation period was up. It looked like I had more than already proved my worth.
And then the final art came in, a month and a half before deadline. Along with thirty new slides. Some of which showed different images and bar graphs depending on choices the user would make in an interactive segment in the middle of the presentation.
Okay, I thought. I can still do this. I'll have to redo my bar graph class, and do a lot of the bar graph slides individually by hand (I have no idea why some artists insist on making very subtle aesthetic changes to each of two dozen bar graphs, so that no two are alike--it means the difference between two hours of work and two weeks), and tear out each of the slides I've done already and redo them according to the new designs, but if I put in some extra hours it should still be doable in the 90 or so days I have left. So I started working longer hours, coming in at nine in the morning(everyone else began their workday at like noon) and leaving at nine at night, copying and pasting placeholder graphics from the Photoshop for the bits I hadn't gotten to animate right yet. There was a lot more to do than I had originally scheduled for--more than double, in fact, as the ad agency had decided to make a lot of the slides I had already finished much more complicated--but I was still working quickly and none of the slides were technically challenging. I was making good progress. It would be tight, but with a bit of a sprint at the end I was still going to make it. It was hardly impossible.
And then, at the beginning of the seventh week, my boss said, "So, you're basically done, right? We can send them an alpha by next Monday?"
No. Of course I wasn't "basically done." I was about 60% done, since we were just barely less than two thirds of the way through a three month project. But, of course, I didn't tell him that in so many words. I showed him what I had, and what I expected to be finished by the end of the week, and he seemed pretty satisfied with my answer.
I worked over seventy hours that week.
It started off pretty reasonable. Monday I stayed until eight, which is no big deal since most of the stuff I like to do in my off time starts around then anyway. Tuesday I realized this wasn't going to be enough, and I stayed until ten. Wednesday I stayed until midnight, Thursday I stayed until 2 in the morning. Friday, figuring I didn't need to get up for work the next day, I worked until the sun rose at 5. And then I kept working until 8, just to make it an even 23.
When most people work those hours they are slacking off. Nuh-uh. The commit log does not lie. I've never been so focused in my life--and I will never, ever think of myself as a lazy, all-talk-no-action slacker again.
By next Monday we had a second tech demo. I'd made progress, in leaps and bounds, but it wasn't alpha. Not even close. I was stuck on some of the bugs in the bar graph class--remember, I'd only started programming for iOS in earnest several months prior; I had to pick up subtleties like function arguments in local versus global coordinate systems and the relationship between bounds and frame rectangles during the project--and my boss had expressed dissatisfaction with the fidelity of some of the visuals in previous slides to the mockups the ad agency had sent, so much of the time I'd planned for fixing bugs went into tweaking color values and adding drop shadows. My boss was slightly displeased, but far more alarmed by my behavior--he noticed that I was really nervous and high-strung, and asked me to chill out. I explained that I was nervous and high strung because I had worked 23 consecutive hours Friday-Saturday getting this done and it still wasn't finished to my satisfaction.
His reaction: "Jesus Christ, Kevin! Don't ever do that to yourself again."
My other co-worker, the marketing / amateur genius lead coder, raised en eyebrow, less nonplussed but still somewhat disturbed. "It's just work," he told me. "You're not even working on a game."
I smiled. It's good to unexpectedly see your hard work appreciated. But the simple truth was that there was no way this project was going to completed in twenty eight-hour days--even if I worked my fastest, there were far too many slides left to implement even if all the technology behind it was complete and problem-free (which it wasn't). At my current rate, with the overtime, I could finish maybe two or three easy slides a day. Of the fifty slides we had to do, we had maybe a dozen, all of which needed to be redone--and a few of the ones we hadn't even started yet had animated content that would take about a workday each to finish.
I told my boss this at lunch, and he nodded gravely and said, "I believe in you, Kevin. You can get this done."
Of course, confidence had nothing to do with it. But how was I supposed to tell him that? I racked my brain for ways to automate the process, improve my efficiency, cut technical corners without affecting the aesthetics--computer science is, after all, the science of saving work--but I could come up with nothing. The designers of each slide had been careful to make each slide totally unique in some way, preventing any sort of template or factory class from being useful. (Even the colors and font sizes varied subtly from slide to slide, and, well, we weren't being paid to make something almost like what they gave us.) Worse, as this was a traditional print media agency with little understanding of technology, they had paid meticulous attention to the layout and formatting of all the text in every slide--despite my boss's assurance, for some reason, that we'd read in all the text from XML so they could localize it. (Any experienced web designer will tell you that XML and the art of layout are two things that just do not mix. Not to mention that things like superscripts and copyright characters in XML, which our mockups were riddled with, turn out to be things iOS handles very, very clumsily.) Copying and pasting text from labels in the Photoshop files the ad agency had given us yielded lots of unprintable characters, meaning we had to either run every bar graph label, every disclaimer, every header and subtitle and bullet through a script to strip them out--or retype all the text in 50 slides by hand. (The latter, ultimately, was what my poor co-worker ended up doing. But I'll get to that later.)
This was a mountain pretending to be a molehill. We'd been door-in-the-faced at the halfway mark. I had misjudged the size of this project. My boss had misjudged the size of this project. My co-worker had misjudged the size of this project. We all did. But, at this point, it seemed like I was the only one who understood by just how much we had misjudged.
And I couldn't help but think, given my inexperience, that maybe my boss hadn't misjudged at all. Maybe this is how big their usual projects were, and I was just pussying out because I'd never worked on a project on this scale under this deadline. Maybe this was not an unreasonable task for an experienced, capable worker. Maybe this was a test to see whether I could handle it. And maybe I was falling behind not because the project was too big, but because I wasn't good enough--I wasn't fast enough, smart enough, experienced enough. Maybe it was not the time to throw up my hands and say "fuck this," but buckle down and tattoo "OR DIE TRYING" across my forehead.
Sure, this situation was a bit of a clusterfuck. But maybe that's just what software engineering of any stripe is--one big clusterfuck. And if I couldn't handle a clusterfuck in a three-month pimped-out PowerPoint presentation, how could I expect to handle a clusterfuck in a two-year triple-A title?
I already know I'm not the world's best programmer. Not the world's worst, either; not by a long shot. But I don't have the ego, the mathematical ability, the coolness under pressure, or the sheer genius resourcefulness that typically drives programmers to greatness. What I do have--my sole natural talent--is stubborn, bullheaded perseverance.
Might as well play to my strengths.
So I cancelled my commitments for the week, stocked the office minifridge with caffeinated soda and TV dinners, and redoubled my efforts. I let the emails pile up in my inbox; I left 30 Facebook notifications unread. I stopped reading webcomics, abandoned all my monsters on Castle Age, cancelled all my pending dates on OKCupid. Anything that could serve as a distraction was put aside. I left the office at 9 that night, 11 the next, 4 in the morning the next. I was like the Minecraft guy in his Global Game Jam video. I ate, slept, breathed Objective-C; my dreams were arranged in confusing, exploding view hierarchies that never quite seemed to be where their X and Y coordinates said they should be.
In the middle of the week my boss and co-worker pulled me aside to perform an intervention. "You're freaking us out," they said. "You're no good to us dead."
I wanted to tell them, "Look. I was unemployed for two years before I started working with you. I've been rejected by all 34 game companies in New York. Yours is the only one to give me a second chance. In the past four weeks I've been rejected by two grad schools, one MFA program, one summer workshop, three literary journals, the GDC volunteer program, and four women. Showing myself I can do this is all I have left." But what came out was, "I guess I have a lot to prove, huh?"
The next week--first week of the final month--an email from the ad agency arrived in our inbox. Paraphrased: "We have decided to push forward the deadline to May 21 in order to give the presentation time to clear health approvals in Europe. Please send the completed presentation to us by Wednesday for our final internal review."
My boss was livid. "Final internal review?" he bellowed. "It clearly says on the timetable, 'Development phase concludes on May 31!"
"And before that, it says, 'Internal review and approvals,'" said our marketing guy irritably. "If you had actually read the timetable, you would have known that 'development' means something very different in marketing than it does in engineering. They want the final month for us to make final changes as approved by the regulatory agencies, not rush the first draft out the door."
I was, by this point, far too tired to be upset. After all, I'd crunched through all of the previous two weeks under the expectation of an early May alpha. This news changed nothing for me except for the stakes.
"How much do we have left," said the boss to me. I told him.
He threw up his hands. "Let's just get this done," he exclaimed boldly. "Tonight. All three of us. Let's power through this entire thing and get it done and over with tonight."
I wanted to say, "You've got to be fucking kidding me," but I knew better than that. I knew if I said that, he'd think I was saying it because it meant we'd have to work through a grueling crunch. I didn't care about that--I was already in the middle of a grueling crunch. I knew there was no way to explain to him that there were literally not enough hours between that day and the next to deliver a finished copy to the agency. Not even close. So I said, "Fine."
Then I excused myself, went out to the emergency stairwell, and threw a furious, screaming fit. And then I came back, struggling to preserve a cool, professional calm, and we worked on the blasted thing together until two in the morning.
Did we get it done? Of course not. Not even close. When we went down to the agency's offices on Wednesday to show them what we had they were quite disappointed. In part, of course, because they had no idea how it is that we did what we did. I have a feeling they thought we had some kind of machine that magically changed Photoshop PSDs into interactive animation, and that we had been sitting on our asses for three months playing video games instead of remembering to put their mockups in the paper tray. "Why don't you add a Gaussian blur over the text layer, maybe a color filter," one of them suggested. "Why did you make this text Helvetica Neue plain instead of Helvetica Neue Condensed? In our mockups it's Helvetica Neue Condensed. Can you change the kerning on this paragraph here?"
I held my tongue the entire time, letting the other guys speak unless it was a grunt of approval or an explanation how a certain feature was implemented, because otherwise I would have answered every complaint with, "Look, you're not paying us nearly enough, or giving us nearly enough time, to implement Microsoft Word on top of Photoshop in iOS from scratch. This isn't print. You can't just pull down a menu and have all that happen magically. iOS doesn't do any of those things. It'd take a week apiece for us to fake each of those features ourselves, and a month to do them properly."
(iOS doesn't even let you have bold and italic text in the same label--you have to create separate rectangles for each part of the text that has different formatting. Don't even ask how we ended up faking the superscripts for the presentation's many footnote citations.)
After the meeting, our liaison talked to our boss about future projects, and said, "I keep telling my superiors to put you guys on our interactive stuff, but they won't listen. This is why we need a game company like yours. We're not paying to train contractors. We need veterans. We need people who already have experience doing interactive, who know exactly what they're doing and can just sit down and get it done. Fast. We can't afford to let people learn on the job."
"Well," said the boss, smiling embarrassedly.
"Well," he repeated.
We went back to the office and worked 28 hours straight. Then we all went home, slept a bit, came back, and did it again.
By this point I was beyond burned out. Not to the point where just looking at a computer monitor causes your stomach to tie up in knots. Not to the point where you freak out in the middle of an empty office and make weird sobbing noises and then start laughing uncontrollably. Not to the point where you wake up, your face sore from the pockmarks the keyboard has made from you inadvertently using it as a pillow, in the wee hours of the morning, babbling a nonsense proposed algorithm for an impossible problem in an imaginary programming language. Wusses. That's undergrad stuff, the kind of thing would-be CS major dropouts experience after pulling two or three all-nighters to finish a three-week term project they put off until the final weekend. No. This was the point where I had to squint at the monitor to even read the words on the screen because my vision had gone so blurry, the point where I had to look at an eighty-character plaintext text string four times to transcribe it from memory. This was the point where when I finally staggered home I'd vomit nothing into the toilet bowl, long dry heaves, despite not having had a drop of alcohol for weeks.
And yet, I'd still play with the toy soldiers before I left work. I'd position them on the hex grid in the visitor's lounge, imagining tactical situations, flanking mechanics, mentally drawing up relative attack and defense charts, dreaming up grand battles between exotic, never-seen-before unit types…
Naturally, the hours just got longer and longer, and my productivity got worse and worse. It took me a full eight hours to do what at the beginning of the project I could have done in twenty minutes. My boss and co-worker, now finally appreciating the sheer scope of this workload, nonetheless grew immensely resentful of me. Neither of them were programmers by training (though they were both quite skilled by experience), and I don't think they'd ever seen that degree of burnout before--I doubt they even knew what it was. I imagine they must have thought, "So this is what Kevin's been doing, working late all these hours? Staring at his screen like an idiot, whining about how tired he is, getting nothing done? God, no wonder we're so far behind. What an incompetent jackass." Their words were polite, but their tones grew snappier, more irritable. They'd jump in their seats at the sound of my voice, no matter how much I sieved the stress out of it. And I didn't take it out on them, and they didn't take it out on me, but something was clearly very, very wrong.
This is a team that, by their telling, had seen and fired a fair number of programmers who didn't work hard enough--stoners, lazies, complainers, suicidal folks whose heart wasn't in it anymore. I don't think they knew how to deal with a new hire who was literally prepared to work to the death. Maybe they didn't have the legal resources to deal with a karoshi. Maybe that was it. Who knows?
At around 9 PM on the Friday night before client review--the biggest of a series of big deadlines, as this was when, in their quaint print-media way, the client was going to put our app on an iPad and mail it--in an envelope--to their guy in Switzerland, I ordered a sandwich from the local pizza place and stayed late, struggling to work in corrections the agency had given us a few days before. It was a task that should have taken me five minutes, but in my current state it had taken me three hours. My boss asked me what I was doing, and I told him, and he told me to finish up what I was doing and send it to him. I did, and he handed me a little slip of paper. It was my last paycheck.
There was a long pause, his face stretched in a mix of furious anger, regret, disappointment, bitterness, and resentment, and finally, he said forcefully, "This isn't working out. Give me your keys."
I was too tired to protest. "I'm sorry I let you down," I said weakly, and gathered up my stuff and left.
I liked that job, despite what I put myself through to keep it. I liked my boss and my co-worker. I was so close, so close, to what I've wanted to do my entire life. And here I was, walking out the door after two months, not even at the end of my evaluation period, with a black mark on my professional reputation and not even a spot of relevant game development experience to put on my resume.
No one had asked me to put myself through all that. It was all my doing, my choice, to work those ridiculous hours, to bite off more than I could chew and then attempt the impossible in a vain attempt to save face. And even then, in the end, after having done my best, it wasn't enough. I could point fingers all I wanted, claim the project was impossible, blame my boss (it wasn't his fault), blame my co-worker (it definitely wasn't his fault), blame the agency (they didn't even know what they were doing), but ultimately what it boils down to is that I told them I could do something they thought I could do, something not totally unreasonable, and I couldn't do it. So the blame, no matter how you frame it, rests with me. I was the weakest link. Goodbye.
I spent a good part of that night on a bench in a park five blocks from the office, feeling pretty much exactly like the Bulletball guy. Enthusiasm and hard work are one thing, but, well, if I just don't have what it takes, I just don't have what it takes. I'd always had to work my ass off to accomplish what other programmers seem to be able to do effortlessly. Maybe, like the proverbial surgeon with the wobbly hands, I'm just not cut out for this kind of work.
I called Lisa, who struggled through the Oberlin CS program with me and now works at Sony ImageWorks, bought myself a bottle of Red Stripe, and went home, lying awake in bed, wondering if this was the end of my game development career. What an anticlimactic finish, if it was.
Guess what? It isn't. I haven't lost everything yet. Not by a long shot.
But I did lose something very important--my biggest career motivator up to this point, which has time and time again brought me to the brink of annihilation. My deathwish.
I have decided that, if I can help it, unless someone else's very life depends on it, I am not going to die at a desk.