Joe Davis bio photo

Joe Davis

3D graphics enthusiast & very occasional hobbyist app developer. Previously; Game Ecosystem Developer Relations Engineer @ Samsung Electronics, Developer Support Lead @ PowerVR Graphics

Email Twitter LinkedIn Github IMG blog IMG forum Stackoverflow

As of tomorrow, I will have been working at Imagination Technologies for six years. Had it not been for a reminder popping up on my phone, the anniversary would have passed me by. I rarely draw significance to such events but felt that today might be a good opportunity to reflect, particularly as I originally intended to only stay for a year or so.

It’s quickly become apparent that I’m going to struggle to cover everything in one post. I’ll start with the job application process and interview. Hopefully, I’ll find time to write another post or two to cover everything else!

University, graduation and job hunting

In 2005, I began my four year MEng Computer Science degree. I’d always been fascinated with games, particularly upon the advent of consoles like the N64 that made immersive 3D worlds common place. The modules I had chosen were entirely driven by my desire to learn how to craft these interactive worlds, specifically focusing on physics, AI and - of course - 3D rendering technologies.

graduation

In 2009 I graduated and began looking for jobs. I was lucky enough to gain part-time commercial development experience as part of my final year of study. Despite this experience, I found that my applications were turned down immediately from the bigger games studios as I was seen as too inexperienced. I then began seeking out startups and other small studios. Of the few I found that seemed like a good fit for my skill set, the mixture of long working hours, basic salaries and realising I would have to grind through grunt work for years put a dampener on my search. Around this time, a recruiter I’d been in touch regularly with recommended applying for a graphics driver development position at a company I’d never heard of called Imagination Technologies. I did a little research and found out that they were the company behind the PowerVR GPUs that were used in the the legendary SEGA Dreamcast (RIP) and the iPhones I’d already been writing OpenGL ES code for. Although I had no experience with or interest in graphics driver development, I thought I may as well go through the interview process to see what the company had to offer. At worse, I’d gain some more experience with the technical interview process I was being denied from by the big games companies.

The Imagination interview

A few days after sending my CV and covering letter to the recruiter he contacted me to discuss a new position that had opened up in the company’s Developer Technology team. Imagination’s HR department thought this would be a better fit for me than the role I’d originally applied for. The job brief certainly sounded more interesting to me - graphics demo development, competitive analysis, and attending/presenting at developer conferences.

The first stage of the interview process was an online multiple-choice C programming test. I was a little nervous about this as I’d never programmed in C - only C++. To add to the stress, I was rushing around packing my bag for a holiday with friends when the recruiter sent the test to me. Despite these issues, I completed the test just in time before leaving home for the trip. Fortunately for me, STL was banned during my studies so the skills I’d gained writing everything from scratch were better suited to C tests than I expected.

The second stage was a phone interview with Carlos, the Developer Technology team’s manager. I ended up taking the call on a windy beach in Newquay - to this day, I have no idea why I didn’t ask to reschedule the interview to a more convenient time o_O Carlos has a strong Spanish accent which made it even harder for me to understand his questions. I somehow managed to give sufficiently decent answers to make my way through to the next stage.

The final stage was a face to face interview with Carlos at Imagination’s headquarters in a small village called Kings Langley. As requested, I went to the interview with a short presentation on a project I’d recently completed (a Galton Box multi-threaded physics simulation). My laptop was too old and crap to demo the application, so I had to nab my sisters for the day. I quickly found common ground with Carlos, which helped me feel a little more relaxed during the interview. The on-paper coding questions caught me by surprise though. After completing the technical interview with Carlos he called in a line manager for further interrogation. I can’t quite remember now if it was Mark Butler or his superior Martin Ashton who came into the room at that point. I do remember getting a bit of a grilling though and losing the feeling of being at ease I had earlier with Carlos. Once that was over I was briefly introduced to the Developer Technology team. Everyone was so busy working that it took them a moment to realise I was being paraded around the room to meet them.

Upon leaving the interview I wasn’t quite sure how it went. There were a few technical questions I was slow to answer, but overall it felt like I could have done much worse. A few days later I was offered the job. Initially, I hesitated. I’d spent four years at university to get into games development and felt like I was copping out by taking a job with a technology company. I re-evaluated my options with other companies and discussed the situation with family and friends. I realised that a year or so with a tech company would give me much more experience than the games companies I was considering. So, I decided to take the plunge. As it turned out, I didn’t rush off after a year like I expected. I might cover that in a future post :)