Why I won’t pass your interview techniques even though I have over 10 years experience

--

I receive a huge amount of messages and e-mails, via my linkedIn profile, with job offers. Some of them, really well targeted but most of them have nothing in common with my area of expertise. When I apply online I find myself stonewalled by “my assumed” lack of knowledge.

I don’t see SaaS on your skills list and we’re looking for someone with experience in it.

I wrote this article to expose my gripes with some recruitment processes and practices I have encountered. I also wrote it so I can pass it around on linkedIn every time someone asks me what my experience with software development is. I’ll go through my background in the field because it’s important for you to know where I come from and why this story has the title it has. If you’re looking for bullet points you can find them near the end of the article.

Background: Why and how I do what I do

I started programming in 2007 in order to develop interactive digital entertainment experiences (video games). Due to my young age and lack of monetary possibilities acquiring a license for a Game Engine was way out of my reach. As such I had to learn game programming and development from scratch.

One of the advantages of this approach is that I dabbled in more than just programming and at this point in time I can adorn a wide variety of hats.

I’ve worked as a Game and Level Designer for Gameloft on projects such as N.O.V.A 3 and The Dark Knight Rises, I wrote articles as a freelancer for Gossip Gamers and Lamp[dot]Ro, developed a low-level game development framework for Nintendo DS that handled rendering, audio, input and memory management on platform with less than 4MB of ram. Loved the framework and integrated Lua in it so I can develop it further without having to compile the project every time.

I wrote a content-management system (CMS) in Lua and ported the original Hacker Evolution game to the new Duality Engine. I teamed up with an artist from twitter and launched a great game with a small, but extremely dedicated, following — we called it Mutant Gangland. I marketed the game like crazy and had my face appear in the international, and local, gaming press ([1], [2], [3], [4], [5]).

I moved from Bucharest to Iasi and joined the Mobility-Games team, where I designed 400+ levels for a game called Frozen Free Fall. I wrote the Level Editor for a game called Beastopia and used it well. Pathfinding, User Interface, User Experience and Game Design also fell into my lap. I later on wrote an old-school, turn based, first person dungeon crawler (like Eye of the Beholder). I wrote a paper on how I designed the Artificial Intelligence for the game and how the turn based system works ([1]). Drew the tiles myself and edited the ones I bought. I designed the game to work with only a keyboard without the need for a mouse, including navigation through the menus and inventories. And I implemented the entire User Interface myself. This means programming the logic behind interaction with the UI elements, how they are displayed, arranged and managed.

I dabble in home automation and write software that can interface between your coffee machine and light bulbs. I wrote a html table exporter that can take data from lua and dump it as visual output, great for debugging. I wrote a CVS importer in C# and Lua and actively used it in my own projects. In one of the game engines I wrote the CVS files where used to design units, levels and balance the difficulty curve of the game.

Why I won’t pass your interview techniques

In short I wrote hundreds of thousands of lines of code in my 10 year journey (to date). Most of them used in commercial software and games. But that doesn’t mean that my 10 year experience will be a good fit for your needs. I haven’t touched or used anything remotely related to SQL since I finished my second year in University. Never used WPF, never touched jQuery, and the only time I had to dabble with Java was when I was porting my games to Android. I released 4 games on the Android platform myself that I wrote from scratch but I’m sure I won’t pass a technical interview for an entry-level Java position. Not because I’m not able to write functional software in that language (I just proved I can use Java) but because interview techniques disqualify me from the start.

I remember getting a cold-call last year from a recruiter (the company is irrelevant). He asked me if I was interested in a job offer. I answered yes. He asked me if I can, over the telephone, describe the implementation of the Fibonacci sequence in Java. I described the theory behind it, how it works and how I could implement it recursively or in a loop. He told me to be specific and dictate the Java code. I never got the job.

Yes I used C/C++ to write game and software. Heck I have code commits for the MOAI SDK (framework/sdk for game development) accepted in the main repo. It’s a framework that even Double Fine used for their games (Space Base DF-9, Broken Age). I wrote a Nintendo DS game engine in C and in spite of the fact that I never released anything commercial with the said engine, it’s out there and can be used. Certainly I should be able to get at least an entry-level job as a C programmer right?

I had another interview this year for a local company. I told the recruiter about my work with C#, the games I wrote at work and even walked-him through my A* Pathfinding implementation. He asked me if I have experience with ASP.net and I told him that I never used it. It turned out I’m not the person they are looking for as they were searching for people with 3+ years experience in writing C# dotNET code for ASP. To laugh it off I said that’s perfectly fine, I only ever wrote C# mono code. He crossed something else off his list.

If all you’re looking for are bullet points, numbers and stats I’ll throw some your way

Let’s have some fun! I’ll give you cold-hard, verifiable facts, that I can use to sell myself to your company. If your recruitment process is based on placing check-marks on a list then get ready to add some items to the list.

  • I wrote 62583 lines of code across 5 (out of 12) open source projects I have on Github (my projects — no contributions from outside or to other projects)! Of course comments and blank lines are not included. Here’s the breakdown for them:
  • While employed as a Game Designer I worked a total number of 7136 hours between Gameloft and Mobility Games. And that does not factor in overtime and weekend work (looking at you gameloft). I reached this number by checking my start and end dates for both companies and removing weekends and legal holidays. I do not take into account time spent Freelancing or working on the games I released for myself. I’m way over my mandatory 10000 hours as a game designer. NOTE: I also wrote Lua and C# code during both jobs most of the time. I actually spent only 30% of my time as a Game Designer writing documents. The remaining 70% of the time was spent inside an IDE writing down logic and scripting interactions.
  • The first software I ever wrote was a 3D Model Viewer that I released on softpedia back in 2007. Never marketed it and so far it sits at 5/5 stars and has ~ 16K downloads.
I don’t know why it says updated Sep 27 2013. I haven’t touched the application since release.
  • I worked on a game with ~ 100,000,000 installs (and maybe more) between iOS and Android.

Across my entire career I wrote and developed software using the following languages (with a few examples):

  • C/C++ (A prototyping framework for game development called ZPF, a Nintendo DS game development framework, a prototype for the Intel AppUp store challenge — no longer available but there’s a mention of it here, a mod for Grand Theft Auto San Andreas, a 2D Shoot ’em up game)
  • C# ( Beastopia, Mini TD Engine, A tiny sidebar for windows that showed stats and data on uptime, processor levels, available RAM and ROM and tasks/processes that can be killed)
  • Lua (Nova 3, The Dark Knight Rises, Mutant Gangland, Rogue Sweeper, Ebony Spire Heresy, Pimps vs Vampires, Philips Hue plugin for Vera, a Content Management System called Viva-CMS)
  • FreeBASIC (a mouse emulator for Game Pads with a kickass youtube presentation video — Clickpad)

But that doesn’t mean I never used Java, JS, Python or won’t be able to use or work proficiently with ASP.net. If I apply for a position in which I tick off 4 out of 6 skills listed (with the remaining two being SaaS and OAuth 2) and I get rejected because of that I’ll sure as hell won’t be able to take you seriously in any further contacts.

So recruiters, here’s my problem: I’m not a beginner when it comes to software development but if I want, at this point, to search for another job where I don’t tick off all the “required bullet points” what can I do to get through to you?

--

--