So you’ve been in the industry a few years, maybe even shipped a few games, and you’re thinking: It’s about time I got a promotion. Or maybe you’ve seen a job ad, and they’re looking for a senior in your discipline, and you’re thinking: I could do that.
Well, it probably is, and you probably could. But what does “senior” mean in a job title these days? What do employers mean, what do they expect, when they say that they’re hiring a senior developer?
This post was inspired by a question posted to a mailing list, that asked: “Senior X Developer, what does Company Y expect?”. Also, two of the guys I work with recently got the “senior” promotion. Congratulations to both of them. But anyway, I’d like to try to answer that question for X = Game. I’ll keep the general stuff at the start, so designers and artists can stop reading when I get to the programming specific bits.
Please keep in mind, what is written here is my personal opinion only. I have been on both sides of the interview process, at a few different organisations, but my observations here do not represent the official policies of any of my employers, past or present.
Now, any company worth it’s salt will be looking for the magic combination, so eloquently summarised by Spolsky in his Guerrilla Guide to Interviewing: Smart and Get’s Things Done. That, as they say, is the magic ingredient, but it’s not what makes someone senior. It may be what keeps them in a job long enough to become senior, but it’s not a defining characteristic of seniority.
In the games industry, at least, what is expected of a senior developer is experience. The real question of course, is how experienced. According to the 2010 Tiga Industry Salary Survey, the average length of service for a game developer is between 7 and 10 years. While it’s not impossible to gain the title of senior after as little as 2 years, and one completed project, 4 or more years industry experience, with 2 or more shipped games is more in line what what seems to be expected.
Beyond the requirement of time done, the question then becomes, what will you have been expected to learn in that time, because the value of time accumulated doing the job comes from the lessons learnt, and experience gained.
A senior developer needs to talk-the-talk and walk-the-walk. This means, beyond doing their job, completing the tasks assigned to them by their lead, a senior is usually expected to have a basic understanding of how developer/publisher relationships work, and how the the roles of art, design, programming, & management typically work together to produce a finished game.
A senior developer should have had some experience of a full development cycle, from pre-production, through production, alpha, beta, and delivering a final finished master for publication.
A senior developer (of any discipline) will be expected to have a grasp of what it means to work with a version control system, usually one of P4, Subversion, or AlienBrain.
A senior hire may also be expected to have had some experience with planning & scheduling (at the least, task estimation), producing documentation, and mentoring or lead work.
For programmers (designers and artists can skip to the end now, if they like), seniority tends to imply a greater breadth of experience (unless the title gives specific sub domain, like Senior Physics Programmer, or Senior AI Programmer – that usually just means you can get that specific job done without any hand holding from your lead). A senior programmer will usually be expected to have worked on more than one platform (hardware or middleware), or have shipped games in more than one genre. More than one programming language may also be expected (think, C++ plus one of C#, Java[script], Lua, Python, Action Script, Objective C, a HLSL or other GPU/SPU programming).
So, if you can comfortably tick off most of those expectations, then you are probably ready. It’s time to do it. Go and tell your boss it’s time for that Senior title, or apply for that new job. You deserve it. Do it now. Do it while it still means something.
Photograph (c) Étienne Ljóni Poisson