Lessons Learned: My Journey through a Challenging Job Interview for Game Programming using LLM

Chukwuyenum Opone
4 min readSep 26, 2023

--

screenshot of game working

Hey there, I hope you’re all having an awesome day! Today, I want to share my recent experience during a job interview, focusing more on my work process rather than the outcome. So, a little backstory: I’ve been pursuing a career as a Unity programmer for about three years now, and despite the challenges, I’m determined to become a top-notch game programmer. Learning on your own can only take you so far, especially when job descriptions often demand published titles, years of experience, and more. But let’s not dwell on the obvious. Let me take you through my journey.

The interview process consisted of four stages:

1. A 20-minute introductory call with one of the founders.
2. A take-home assignment that took around 3 hours to complete (with a generous 48-hour deadline).
3. Two subsequent interviews.

Let’s call the company X, a startup recently funded to create board games. They were on the lookout for game programmers, and one of the founders reached out to me on LinkedIn and that’s where my story begins.

The Introductory Call:
I had a relaxed chat with one of the founders during the introductory call. He was impressed by my portfolio, and the feeling was mutual. He expressed interest in moving forward, and the next day, I received the task in my inbox.

The Task Description:
The task involved starting with a basic chessboard game project and extending it to incorporate procedural content. Here’s how I approached it:
- I began by creating a simple game design document outlining my strategy for implementing the desired mechanic.
- Next, I implemented the mechanic.
- After completing the task, I compiled a report detailing the implementation process, findings, and additional ideas.

The unique twist to this project was that instead of the typical “capture on attack” rule in chess, I had to use Gpt4All Large Language Models to generate battle outcomes. Essentially, when a chess piece attacks another, there’s now a 50% chance it might capture the target or get captured itself. My task was to take it a step further and use Gpt4All to generate victory outcomes.

My Submission:
I began by crafting a Technical Design Document. Then, I forked the provided repository to my GitHub, cloned it to my laptop, and set up the necessary engine. Unity ran smoothly, except for a major path issue with the Large Language Model (LLM), which became a roadblock to my implementation.

screenshot of LLM issue encountered

After checking the LLM package’s GitHub issues page and finding no immediate solution, I reached out to the company, explaining the issue. They suggested using dummy data, and while it wasn’t the original plan, I adapted. I used Scriptable Objects to create potential responses from an AI LLM, leveraging the piece object to establish context. It worked, and I submitted my solution.

The next day, I received an email stating that my submission would be reviewed, and I might proceed to the technical interview. Shortly after, I got the green light for the next round.

The Technical Interview:
The interview was conducted via Google Meet, where I met the second founder. We delved into Unity and AI LLM-related questions. I got some right, but for the ones I didn’t know, I promised to explore further. It turned out to be an engaging conversation where they even introduced me to aspects of Unity I hadn’t considered, including topics like multi-threading and multi-processing.

Unfortunately, hours later, I received an email with the news that I wasn’t selected to move forward to the last stage of the interview. Despite the outcome, I consider this interview a success because it offered a valuable learning experience.

email screenshot

This rejection is just one among many, and by now, I’m accustomed to those “unfortunately, we went with someone else” emails 😉.

Key Takeaways:
1. Access to a Technical Design Document: You now have access to a technical design document I created for a game feature using LLM. Feel free to use it as a template and replace the content with your own process.

2. Discovery of Gpt4All: During this journey, I stumbled upon Gpt4All, a free-to-use, locally running, privacy-aware chatbot that doesn’t require a GPU or internet connection.

If you found this article helpful or have any suggestions, please let me know in the comments. You can also connect with me on my social media handles @officialyenum. Don’t forget to subscribe and give this article a 👏 — it means a lot.

Thank you for taking the time to read this journey, and stay tuned for more adventures!

--

--

Chukwuyenum Opone

Software and Game Programmer sharing insights on game development, backend architecture, and emerging tech. Follow for coding tips, projects, and inspiration.