Liam de Valmency, senior principal programmer at Media Molecule, talks about the importance of communication and a flair for problem solving in programming
What is your job role and how would you describe your typical day at work?
I’m a senior principal programmer at Media Molecule, and a typical day at work can involve a wide variety of things. Generally, I look to be writing code, whether that’s prototyping new features for our players, improving existing parts of the game in some way, building the foundations for future work, or just making the code neater and fixing bugs.
However, a large part of the role of a programmer is also based in communication. This means talking to producers about technical timelines so that they can schedule tasks and releases, discussing the code architecture and potential changes to it with other programmers, working with designers and artists to figure out what features and tools they need to do their jobs best, or sometimes just being a part of the conversation about how things are going in the studio and how they could be better.
What qualifications and/or experience do you need to land this job?
Games programming encompasses a huge range of areas, from physics to rendering to gameplay to code architecture. The sorts of experience and things you’ll need to know can depend a lot on what sort of programming you’re interested in engaging with – there’s something for everybody! With that said, there are some common threads across areas.
A knowledge of 3D maths is incredibly useful, as is knowing the ins-and-outs of your language of choice; C++ is still extremely common, but languages like C# have become much more frequently used. A knowledge of basic data structures and algorithms is a huge asset as well. And personally, I often advocate for taking an interest in design and usability if you’re interested in programming player-facing systems and features, so you can spot those opportunities to add that invisible layer of extra polish and finesse.
You can pick up a lot of this by sitting down and trying to make something! Tackle each problem as it arises, treating each one as an opportunity to learn something new. Search engines are your friend!
If you were interviewing someone for your team, what would you look for?
First and foremost I look for a portfolio, some evidence of something you’ve made. This is a great way to show your interests, design sensibilities, and your technical abilities before you’ve even said a word.
In the interview itself, there are two key qualities to show off: a flair for problem solving, and the ability to communicate your thought processes while you do so.
If you can demonstrate that you can find and discuss potential solutions, weigh up their pros and cons, and even ask for assistance when you’re unsure, you’ll be showing that you have some of the most core skills that you will need on a day-to-day basis as part of a programming team.
What opportunities are there for career progression?
Programming sits at the crossroads of so many areas that you can take it almost anywhere. You could choose to hone your skills in one or more specialist areas of tech; you could take on leadership responsibility and help shape the direction of your team; you can explore the boundary between areas, exploring the areas of Technical Art, Technical Design, Creative Coding, and more. The sky really is the limit!