Harry Semple, a programmer at Codemasters, talks about the multi-disciplined aspect of his job and the importance of tenacity when you interview for a similar role.
What is your role and how would you describe your typical day?
I’m an experienced programmer in the gameplay feature team, and I’ve worked at Codemasters for a little under two years. Being part of the feature team means a variety of different activities day to day, which makes it engaging and challenging. A typical day for me starts with getting the latest build and checking what’s new, then a gym session with the on-site personal trainer. After breakfast, I’m ready to start my day’s work.
On any given day, I could be adding new gameplay features such as a variable weather controller, adjusting and changing game modes to better represent the motorsports we offer, building menu screens to guide players into the game, fixing bugs that have crept in as a result of other changes, or creating designer tools to reduce workload. These can all involve meetings with designers, production, and artists, in order to build the best experience for the player.
Being in the feature team is a multi-disciplined job, so you’re having to stay on top of many different areas of the game in order to best tackle your workload. The team is also very collaborative, so we often chat about best practices, ways to approach problems or fix tricky bugs together. We also conduct code reviews, so we can all share knowledge and improve our skills every day.
What qualifications and/or experience do you need to land this job?
To hit the ground running as an entry level programmer, we at Codemasters expect at least a Bachelor’s degree, ideally in a computing related discipline, such as Computer Science, Computer Games Programming or Computer Games Technology, or a strong computing background. As we use a proprietary game engine, we’re interested in people with good C++ knowledge, up to C++14. In general, you need to be able to use logic and reasoning to solve interesting and tricky problems, while balancing a variety of factors such as performance, memory, and parallelisation.
If you were interviewing someone for your team, what would you look for?
If your skills are solid with a great CV, the application process has three stages: a telephone interview, an online coding test, and an on-site interview, involving some whiteboard programming and problem solving. The questions we ask will assess key topics of C++ knowledge that we require at a minimum to understand the game engine, along with some problem solving and algorithmic questions. During the interview, we’re not looking for immediate perfection in answers, but rather that you understand the problem you’re trying to solve. Even if you’re not sure, tenacity is important, as you’ll get some prompts to help you find the solution. This is very much the ethos at Codies: teamwork and getting great results.
What opportunities are there for career progression?
Career progression at Codies is fluid, as you can ask to move to other departments if that’s your interest. Advancing from entry-level involves being comfortable with areas of the engine, so that you can add to existing systems under your own steam. When starting, it can be a steep learning curve, but with the knowledge and experience in the studio, you’ll learn more in three months than in a year of university tuition. Staying on top of new techniques and language features is an everyday occurrence.
Personally, joining the studio was the best way for improving my programming and confidence. As you learn more and improve, the scope of what you work on will increase, so you’ll find yourself being the owner of existing or new tools, or systems you’ve been able to design yourself. Taking the initiative, being passionate and enthusiasm will always help, as taking that extra step to do something more will get you noticed and respected amongst your peers and your superiors.