Starting in game development

I recently held a presentation about my work at Frostbite at my old university. The first part was about the cool stuff I get to work on at Frostbite. In the second part of the presentation I talked more about my experience going through the interview process. Since this can be quite intimidating and stressful I wanted to give the students who would be in the same situation as me an overview of what had worked for me and what could I have done better.

Since I always prefer a written down version myself rather than just the presentation here are some thoughts on this. For each part I will talk about what worked for me and what I could have done better in hindsight.

Before applying

The most important thing when coming straight from university is to show that you have some practical experience in programming.

What I did:

  • Writing a blog is a good way to highlight your interests. It is also great to see the development of a project that way. Also your blog can be used to show your projects.
  • Hobby projects are great because it shows that you are actively work on broadening your knowledge besides what you have been doing in university. It is also very good to learn a lot. Obviously if you do it on your own it can get a bit frustrating if you are not making as much progress as you want. Because of this try not to create too large projects from the beginning.
  • University projects: This is straightforward, you are already spending time on these projects. Especially if these projects are more open ended it is a great opportunity to create something interesting. One thing which you should keep in mind is to highlight what things you have been working on. These projects are also a great way to show that you can manage to work together with other people.
  • Open source: With GitHub or bitbucket you can have unlimited repositories so use that. It becomes a lot easier to maintain these and if you make them public even better. The quality of the code is not necessarily a big issue, I personally find it more interesting to see if someone finishes projects and continues to grow.

What I could have done better:

  • Maintaining a website from the beginning I only started like a year before I finished my studies. Going through my old projects and remembering what I did became a lot harder to do.
  • Use source control This would have made it a lot easier to maintain all my projects. So start using it as early as possible.
  • Advertise myself - I am not a big fan of social media so I was never really interested in doing this. But it can definitely be very helpful to get in contact with people.
  • Focus more on practical experience In the beginning a lot of the courses in university would be a written exam which would determine your grade and then a practical exercise giving you a small bonus on the exam results. Looking back I should have focused more on the exercises. In general do as much practical work as possible.

Useful resources

When I was working on starting my online presence I was delving a bit in website development. However I was not a big fan of this and I felt this was taking time away from what I actually wanted to achieve. Thankfully Matthäus suggested to use a static website generator instead Link . I have been using nikola since then and I am pretty happy with it. I am also hosting the blog on github pages which is super easy and free.

Application

After you have made sure you have some online presence and some practical examples you now have to decide for which jobs you want to apply.

What I did:

  • Looking for specific job offerings: I already knew that I wanted to work in computer graphics and in the games industry so I focused mainly on jobs as a rendering engineer. I specifically looked for AAA game dev companies as well as game engine companies.
  • Be open for working abroad With these goals in mind I soon realized it will not really be possible to achieve them by staying in Germany. So I focused instead on the job and not on the location. As an example I was considering jobs in Sweden, England, Poland, Canada and Germany.
  • Gather information about the company When preparing my applications I found glassdoor quite useful. Especially in the games industry you might be able to see some red flags before hand. But it is also a good tool to get information how their interview process might work.
  • CV Not sure how good my CV really was. What I focused on was to emphasize my practical experience and the projects I worked on. Also don't try to fill it up with useless information.
  • Get in contact I was quite fortunate to be supervised by Matthäus from AMD during my masters thesis. Thanks to him we got in contact to Sebastien Hillaire from Frostbite which supervised the thesis as well. Already having this contact helped a lot to make the application process as painless as possible.

What I could have done better:

  • Get in contact I cannot stress enough how important this is. For most of the applications I did send out I only got automated messages back and never heard from them. This was quite discouraging and could have been prevented by getting in contact directly with the developers. So try and get in contact directly with the developers if possible. One of the best resources for this is twitter. Don't be afraid to ask questions or contact people. From my experience all the people I am now working with are always willing to help.
  • Work during your studies Obviously even better for your application is if you already have some experience working at a company. Even if you do a lot of programming on your own, being in a professional environment is far different. In hindsight I should have done this but I must admit that I was too lazy to look for a job.

Interview process

In my opinion this is the hardest part to prepare for because it is hard to know what to expect. I also did not have a lot of different interviews. This was simply because I did not get invited to a lot of them and never heard back after I did send my applications out. So make sure to get in contact with someone to make sure you get invited to interviews.

What I did:

  • Revisit theory I tend to forget quite a lot of things when I don't use them very much. So I prepared for the interviews by revisiting a lot of theory. I have added some of the books I found helpful under Additional resources.
  • Go through old projects Since I tried to highlight those as much as possible I wanted to be prepared to talk about them. I looked through them and thought about what I found challenging and what I had learned from them.
  • Research about company Obviously I already did that when I looked for companies to apply to. However for the positions I actually interviewed for I made sure to be up to date with the company.

What I could have done better:

I am not really sure what I could have improved since you usually don't get much feedback after the interviews. I guess I could have looked into identifying some of my weak points in regards to the job requirements and try to improve there.

Interview Process

This is an overview of the process I went through during my interviews.

  • First Interview this was less technical and more about the team getting to know me, what I had worked on and what I was interested in. It was also about describing what my job responsibilities would be.
  • Practical exercise After that interview I got sent a practical exercise which I had a certain time to solve and send back to them.
  • Second Interview this was an actual technical interview. It covered a very broad range of topics and it was quite difficult to go through all those context switches.
  • Onsite Interview Finally I was invited to an all day onsite interview. This was actually made up of multiple interviews with different members of the team. It also included a longer technical interview which did go more into detail than the second phone interview. In general this was to meet as much people from the team as possible so that they can get a feeling for the new person.

Additional resources

Some of the books I used while preparing for the technical interviews:

  • Cracking the coding interview is a good overview of general comupter science topics. In hindsight this did not really reflect the kind of questions I was asked but it still is a nice structured book.
  • Game Engine Architecture a great book giving you a broad overview of game dev tech and engine development.
  • Real Time Rendering also great book giving you an overview of computer graphics techniques.

Some additional links that might be useful and contain additional information: