The games industry plays host to an excellent cast of colourful and diverse individuals, from artists and coders to narrative designers and studio heads.
The skills to pull off these roles, however, are complex and differing. With each position requiring mastery in its field.
As such, seeing a game come together is a beautiful thing akin to a puzzle as an overall picture becomes whole.
To highlight some of the brilliant work that goes on behind the screen, and help others who may be keen to dive in, PocketGamer.biz has decided to reach out to the individuals who make up the games industry with our Jobs in Games series.
This time, the spotlight is on Harry Potter: Hogwarts Mystery's lead engineer Brooke Costa.
PocketGamer.Biz: Can you tell us about your current role and what it entails?
Brooke Costa: I'm the lead engineer for Jam City’s Harry Potter: Hogwarts Mystery game.
This means that I write code, evaluate specifications, give resource cost estimates, manage the engineers' time and efforts, and generally supervise and direct the software development of the Android and iOS clients.
How did you first get into games and how did you progress in this role?
My entry into the games industry was completely accidental. I graduated with my Bachelor's in Computer Science in 2010, when the economy was not at its strongest.
I left my home state of Washington to see what the Bay Area had to offer.
Mobile apps were just taking off, and I had some experience with Objective-C, the programming language being used for Mac and iOS apps at the time.
I tailored my resume to tie that little bit of experience with my desire to learn new things and started hunting for mobile development positions from the discomfort of my sister's couch.
I had never considered game development, but when I saw a job posting for a mobile game position, I figured there was no downside to pursuing it.
It was a contract position that only lasted a few months, but the contacts that I made there directly led to my position at TinyCo, which has since been acquired by Jam City.
I've been working at the same studio for seven and a half years now and was lucky enough to have some incredible mentorship all along the way. As my skills have grown, so have my responsibilities.
Is it something you ever imagined yourself doing?
Not once. Growing up, a lot of my extended family was in mechanical and civil engineering, and I fully expected to follow that path.
I played some computer games, but my love for games has always been more centred around board games and tabletop role-playing games.Brooke Costa
I had my heart set on electronics engineering until I started taking computer science classes in college and fell in love. Even then, I never would have considered the games industry a serious option.
I played some computer games, but my love for games has always been more centred around board games and tabletop role-playing games.
When that first game development job fell into my lap, I was surprised and excited but had no idea where it might lead. I certainly didn't expect it to set the stage for an entire career in the games industry.
What did you study (if anything) to get your role? What courses would you advise for aspiring professionals in the area?
I'm exceptionally grateful to the faculty of the Computer Science Department at Western Washington University for crafting a program that prepares its students for a wide variety of professional programming careers.
There were courses available for game-related topics, such as Computer Graphics and Artificial Intelligence, but I didn't sign up because I didn't expect them to be relevant for me.
Regardless, the core fundamentals of software engineering are universal, and the program did a fantastic job of laying the groundwork for my career.
Companies don’t expect new graduates to have any industry-specific coursework, so don’t choose your courses based on appealing to employers.
My advice for all aspiring game developers is to first focus on core skills, and then follow your passion.
Once you have a solid foundation in algorithms, data structures, and programming fundamentals, choose to pursue what sparks your interest.
Study computer graphics if you want to know how it works and you want to push boundaries in modern games. Study artificial intelligence if you want to play with automated behaviours and experience the delight of unforeseen consequences.
My advice for all aspiring game developers is to first focus on core skills, and then follow your passion.Brooke Costa
Study language and image processing if you love interactive experiences and augmented reality. Feed your passions, because it will open up opportunities to do what you love and get paid for it.
What part of your role do you find most fulfilling?
One of the reasons I've chosen to stay at a relatively small studio, rather than taking a more lucrative position at a large company, is because I love being able to make a difference on a product that brings people joy.
I love having input on what we create, and I love making something that works well and delights players. This job brings constant challenges, but finding a good solution and then seeing it come to life is really rewarding.
On the more technical side, it's very satisfying to root out an elusive bug or overcome a tough programming hurdle. Those things are often not very visible to players or even the rest of the development team, but it reminds me that I'm good at what I do.
Do you think there are any misconceptions, public or professional, surrounding your area of expertise?
I think the biggest misconception is simply the image that people have, both inside and outside the field, of what a good software engineer looks like.
Software engineering has this image of being a meritocracy.
It seems simple, you write good code and you excel in your career. The reality is that there is no universal measuring stick with which "merit" can be perfectly evaluated.
Different people have very different ideas of what good code is, and there’s a lot of room for unconscious bias.
Any single set of metrics for success would leave you with a very homogeneous workforce. In order to cultivate a team with a wide variety of strengths, you need different perspectives.
You need to be able to identify talent that might look a lot different from the traditional image of the "rockstar programmer" that everyone seems to want.
Everyone makes mistakes, but being able to take responsibility for them and learn from them is not a universal skill.Brooke Costa
Individuals who are very talented but don't fit the typical mould can be easily overlooked. Non-technical skills like empathy and clear communication can be just as important for crafting a great product.
There is a lot that software engineers of different backgrounds can bring to the table, and neglecting that is a disservice to your product and to your industry.
Is there anything about the job/industry you wish you would have known when first joining?
I didn't recognise early on how important humility is in the workplace. Fortunately, I had the good luck of landing with a team that did prioritise it.
Our engineering team has always encouraged pride and ownership in your work, but there's little tolerance for ego. Humility allows better collaboration and encourages trusting relationships between colleagues rather than combative ones.
Everyone makes mistakes, but being able to take responsibility for them and learn from them is not a universal skill.
If your work environment doesn't feel like a safe space to acknowledge those mistakes and make corrections, everyone is more stressed and improvement is stifled.
What other advice do you have for someone looking for a job in this profession?
You may not find your dream job right away - you may not even be qualified for your dream job right away. Set your sights on that dream job, but recognise that you might have to work your way towards it through less interesting and less exciting positions.
If your resume is not a good fit for the roles you want, don't give up. Emphasize the aspects of your experience that are closest to where you want to be, and pursue the roles that are closest to the experience you have.
It may take years to get to the final destination, but every step that brings you closer is good progress.