picture of a game programmer at work by Sergey Galyonkin

How to Hire Your First Programmer for Non-Techie People

Written by Zainab Al-Ansari on . Posted in Blog

Why I’m Writing This

A friend of mine is currently in the middle of hiring her first programmer for her new game studio, and I offered to help steer her towards a more suitable hire as I saw many startups struggle or downright fail after hiring the wrong person.

I decided to turn this into a blog post in case it helps someone else too.

But I must put a disclaimer: My professional development background is mainly web development, while my professional background in games development is negligible as of writing this article. As such I will be tackling this as a general programmer job, not specific to games development.

The Impact of Your First Hires

I’ve worked in multiple startups before and I can say with confidence that your first five hires will determine your entire company’s culture, or at least the development team’s, now and long after they’ve left the company.

So, before looking at their qualifications, look at their personality, and whether it fits with the culture you wish to develop.

For example: If you wish to nurture a culture with good life/work balance, then don’t hire any workaholics among your first five.

Your First Hire

Your first hire will most likely be your future team lead, assuming they stick around long enough.

For this person, they need to:

  • Work well in a team.
  • Be capable leaders (pushovers and tyrants not suitable to lead programmers).
  • Understand business, and experience working in a startup would be great too.
  • Have a high sense of integrity and work ethics (you don’t want someone who doesn’t care about the success of the team/company making important decisions or writing your game’s base code).
  • Love to help and teach (they will be doing lots of that to you and your other hires).
  • Be able to architect software well.
  • Be able to estimate how long a task will take reliably.
  • Be productive programmers.
  • Think of performance and other lower-level issues than simply coding.

What Questions To Ask in The Interview

You know best if the person you’re talking to will fit culturally with your company so I won’t touch on that here.

Instead, I’ll focus on the more technical questions to ask to determine those last 4 points I pointed out in the previous section.

Question #1: Show me your portfolio.

Simple: no previous work = no hire. You want someone with actual programming experience building published projects.

Preferably using the language(s)/tool(s) you’re hiring them to build in.

Question #2: Which code versioning tool do you use?

This is a trick question ๐Ÿ˜€ .

It doesn’t really matter which versioning tool they use, what matters is that they use one AT ALL.

Using one indicates that they care about their productivity (or worked with one who does, anyway).

Which tool to use depends on the project and learning new ones doesn’t take too long, roughly 15~30mins a day for one work week is enough.

Question #3: How do you document your code?

Code documentation can be done in many ways, most important are code comments.

But other forms of documentation can be necessary too depending on the project.

If they don’t write comments, don’t hire them. This should be a minimum requirement for any hire.

If they write bad undocumented code really fast they will be suitable only for building prototypes and other throwaway code.

Question #4: How do you plan and organize your projects’ code?

There’s no right or wrong answer to this question, because it will depend on the project.

The important thing is that they do have an answer.

If they stumble and stutter and are generally unable to answer this question, it means they’re not suitable as a first hire.

This refers to their ability to architect software well.

But note that simply thinking about how to organize a project is very basic and minimal, and not an indication of a capable developer.

Question #5: Which software design patterns have you used in the past?

This is a fun one :D.

I expect most to fail this question (at least here in Bahrain).

If they have used any design patterns in the past, then that indicates they’ve delved deeper into the realm of programming and software development than most around here.

If they haven’t, then they should at the very least know what a software design pattern is, be aware of them and be interested in using them in the future.

Question #6: How do you debug a problem?

They should be able to explain to you their debugging process step-by-step (Hint: Googling or asking for help should come last).

If their favorite “debugger” is Google they’re not skilled enough for this position.

Question #7: Have you followed TDD or a similar development process before? If yes, which? If not, why?

Test-Driven Development is a technique used in software development to maintain quality and make sure requirements are met in an efficient manner.

Similarly to previous questions, the actual process they like to use isn’t that important (I won’t advocate TDD over other processes, as the best depends on the project/team).

The important thing is they should employ some formal process in their development, whether it’s an internationally standardized one like TDD or something they came up with themselves.

Question #8: Do you use the same programming standards/best practices across your projects? If yes/no, why?

This is basic and if they don’t follow any standards at all they’re not a good hire, not as your first or your last.

Following standards is a very simple indication on whether they write clean code or not.

It’s also important for the team’s overall productivity, as using the same naming conventions, folder structure, etc allows team members to work well together.

Making up their own standards is ok, as is the case with development processes it doesn’t matter too much which they prefer.

Advice Going Forward

If you noticed from the questions I posted above, they all pretty much ask of the interviewee’s workflow and the way they think as a programmer, not their actual problem-solving skills.

This is important: problem-solving can always be built up through practice, as is the knowledge about a given tool or language, but workflow and thinking like a programmer takes years to develop and if they don’t have them already, they won’t develop them anytime soon.

For testing actual development skills, I would recommend a practical test in case they pass the first interview.

You should ask a senior programmer whom you know and trust to check on their code, otherwise you’ll be stuck simply checking if it works and that’s not really good enough.

PS: If you have hired a programmer already you should definitely have them interview with you. They should at the very least be able to indicate if the interviewee is better or worse than they are.

This concludes this guide and hopefully you benefit from it.

If you have any questions or concerns please comment below.

Thank you for reading! ๐Ÿ™‚ .

Pillow Fight screenshot

Monthly Reflection #11 – Focusing my Path

Written by Zainab Al-Ansari on . Posted in Reflections

Every last working day of the current month I publish a report reflecting on the previous month. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Month

Looking for publishers, getting ready for US trip, restructuring Z’s Laboratories and making a GGJ game.

Against Sahara – Current Status

I’ve been researching board game publication options, and I am leaning towards self-publishing the game instead of signing up with a publisher.

Apparently, in the tabletop world the best royalty you could hope for is 6% (they go between 3% to 6%) on a game that’s likely to sell around 1000 copies for 10~20 U$ dollars, and it’s going to be taxed to boot…

I wouldn’t even recoup my living expenses with that kind of numbers, let alone hope to build a business around that!.

However, I still wish to sign up with a publisher if I can get one. I am seriously considering becoming a tabletop publisher myself for Bahraini game designers, as that will help speed up the rise of the local industry, and I’ll learn much faster by working with an established publisher on a game first.

Although, most publishers I found want casual party or family games, so I might design a simple one and pitch that instead while leaving Against Sahara to self-publish.

Preparing for Train Jam & GDC 2019

Got everything ready for the trip ahead, from bookings to flights to scheduling my GDC trip.

Re-imagining the Z’s Laboratories Website

If you’ve been reading my blog for awhile you might’ve noticed some stuff disappearing or moving.

I’ve been contemplating a lot on what I really want to do with Z’s Laboratories, and made the current changes to reflect on my decision to specialize into solo game dev.

This means that any article or advice I post will assume my reader is another solo dev, and any learning materials I create will be for someone who needs to learn it all from scratch, although I would be naturally more into the programming side of things as I’m first and foremost an engineer.

Global Game Jam 2019

I had originally planned to skip the GGJ this year, but I’m too much of a jammaholic and couldn’t help myself ๐Ÿ˜†.

You can check out my GGJ19 game by clicking here.

What’s Next: Getting a Mentor

I’m looking to get an experienced game designer and a strong UE4 programmer as mentors. The hope is to learn much faster than I currently am, and they can help steer me in the right direction without me having to look for my way in the dark.

This ends this month’s report, hope you enjoyed and if you have any feedback please comment below ๐Ÿ™‚ .

Monthly Reflection #10 – Heading Off to the New Year

Written by Zainab Al-Ansari on . Posted in Reflections

Every last working day of the current month I publish a report reflecting on the previous month. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Month

Studying, researching, getting US VISA and organizing local game devs 6th anniversary meetup.

Against Sahara – Current Status

I decided to turn Against Sahara into a physical tabletop card game instead of digital, and now preparing a clean prototype to pitch to a tabletop games publisher.

Study & Research

I’ve been reading indie game postmortems while focusing on first timers, to avoid their mistakes, and completed the UE4 udemy course How To Develop Your First Two Games, which I highly recommend for anyone starting out UE4.

Recommended YouTube channels (in no particular order):

Atmos Games

Ask GameDev

Game Maker’s Toolkit

Extra Credits

Matthew Palaje (UE4)

The USA B1/B2 VISA

After going thru the hell that is the US VISA application, my visa was thankfully approved.

So, it’s final, if God wills I’m heading off to USA next March and participating in Train Jam and GDC 2019!.

Local Game Devs Community’s 6th Anniversary

To commemorate 6 years of community, I decided to do a 6th year special event where we celebrate where we’ve come, and reflect on how we’re currently doing to improve going forward.

Agenda included: cake, 6 years of photos and videos and a discussion of problems to solve for next year.

I ran a survey prior to the meetup asking for feedback about the community, you can read the summary results here by clicking here.

What’s Next: Getting Published

Now that I’ve learned all I can from others at this point; and feel confident about my current skill sets; going forward I will be focusing entirely on Against Sahara and getting it published.

One advice that successful indies keep repeating is to get published, at least for our first couple of games.

The idea is when we’re first starting our fan base is non-existent, which makes having a commercial success extremely difficult to achieve.

Other than helping us stand out, a good publisher would also teach us the ropes and help us up our game.

Just be careful of which publisher to partner with, and do your research about them.

This ends this month’s report, hope you enjoyed and if you have any feedback please comment below ๐Ÿ™‚ .

Monthly Reflection #9 – Refocusing on UE4 and Going to USA

Written by Zainab Al-Ansari on . Posted in Reflections

Every last working day of the current month I publish a report reflecting on the previous month. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Month

This November I took time off to prepare for the Bahrain Game Jam 2018, simplified my schedule, tapped into my investments to refocus on learning UE4 and applied for Train Jam 2019’s diversity program.

I’m writing this reflection a bit late because of the game jam ending on 1st of December, and the subsequent chaos that I needed to clear up first.

Against Sahara – Current Status

Didn’t work on the game this month, and have decided to postpone development for awhile and fully focus on simply learning UE4.

I needed to do this move sooner but what stopped me is my lack of cash savings which would’ve lasted me a couple more months at most.

But since then, I decided to cash in my stocks and bonds.

This will cover another year of living expenses, and allow me to focus on improving my UE4 skills and wait on releasing a game just yet.

Learning UE4 – Going Deeper

I have spent this past month mostly reworking my UE4 workflow and upgrading my UE4 development skills.

The difference showed in my Bahrain Game Jam 2018 (BGJ18)’s entry, where if you compare to my previous solo jam entries the upgrade in production values is quite clear.

This is a gameplay video of my BGJ18 solo entry from end of November:

This is a screenshot of my Global Game Jam 2018 solo entry from January:

You can download both and play them to see the difference from here:

Simplifying my Schedule

I’ve decided to let go of “gym day”, and instead start the week every Sunday by studying the business side of things and doing research, while the rest of the week to be spent on whatever project am working on, whether a learning project or a commercial game.

Instead, I’m now doing shorter, more-intense bursts of exercise throughout the day, everyday and don’t count it towards my work schedule.

Applying to Train Jam 2019’s Diversity Program

A couple of weeks ago I saw the application for Train Jam’s diversity program just 2 hours before deadline, and signed up straight away.

The team behind the initiative have accepted me into the program, am going to Chicago and San Francisco on March 2019 if God wills it.

Two of the most difficult aspects of game development in Bahrain and in the region in general, is the severe lack of quality education and access to experienced devs and game publishers or game investors.

Participating in Train Jam as well as attending the Game Developer’s Conference will give me access to all of these!.

Needless to say I’m very excited, and grateful for the opportunity as the game developers community in Bahrain has been trying, and unfortunately failing, to kick-start an industry here and go beyond hobby projects for 6 years and counting, but this might finally be the catalyst towards a real industry here (hopefully).

What’s Next: Going More Advanced in UE4

I’m working on a small 3rd person survival game and plan on working on it throughout December, while going back to Against Sahara afterwards.

This ends this month’s report, hope you enjoyed and if you have any feedback please comment below ๐Ÿ™‚ .

Showcasing Against Sahara

Monthly Reflection #8 – Marching Ahead

Written by Zainab Al-Ansari on . Posted in Reflections

Every last working day of the current month I publish a report reflecting on the previous month. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Month

This October I worked on my current flagship project Against Sahara, helped organize Unreal Bahrain game dev meetup which happened on 6th October, and made changes to my weekly schedule as well as my goals.

Against Sahara – Current Status

After going through 7 iterations of the game’s design, I finally ended design work and started development!.

So far I have a very ugly-looking-but-working main menu and started work on the card play framework.

I don’t have anything to show yet since it’s mostly backend work for now, but I plan on having a basic version of the game playable by next month.

Organizing Local Game Devs Pro Meetup

This proved to be a lot more time consuming than I first anticipated, but largely in part because it was my first time and was learning the ropes, although the meetup proved to be a success.

I also held a very quick talk introducing Kenney’s Asset Forge, which is a fantastic tool for quickly making art assets, especially for non-artists.

Due to the time I spent working on the meetup, I didn’t get to work on Against Sahara as much as I hoped and got a bit delayed.

Speeding-up my Pace

Last month I mentioned that I don’t feel like am progressing fast enough on my Houdini skills or the game, but to solve this I needed to look at not just my time management but also my focus.

So far my weekly schedule looked like this:

Sunday: Gym Day, which is exercise + learning about indie game business.

Monday: Study Day, where I studied Houdini.

Tuesday to Thursday: Project Work, which is mainly business activities for Z’s Laboratories and Against Sahara.

But I’m changing my schedule to this:

Sunday: Gym Day + Study Day, spend the day exercising, studying indie game business and UE4 development.

Monday to Thursday: Work, doing business activities for Z’s Laboratories and developing Against Sahara.

I’ve decided to let go of Houdini for now, and fully focus on learning the Unreal engine.

My skills in Unreal are not up to where I want them to be yet and it’s showing in my slow progress on Against Sahara, so I decided to refocus on Unreal and use my Sundays to make very small 1-day projects.

Also, Houdini and 3D modelling in general is a complex skill to learn with many sub-skills needed, and dedicating just one day a week was not enough.

On the whole, trying to learn UE4 + Houdini + Designing commercial games all at once was inefficient, which is why I’m removing Houdini from the equation for now.

I’d remove the business side of things as well and just focus on learning UE4, unfortunately my savings won’t last me forever and I do need a proper source of income within the next few months.

What’s Next: Building a Playable Version of Against Sahara + Designing a Small Custom Environment in UE4

I’ve already started working on a Halloween-themed environment that I plan on finishing next Sunday.

Development of Against Sahara is also under way and while slow am making steady progress as I wrap my head around how UE4 works.

This ends this month’s report, hope you enjoyed and if you have any feedback please comment below ๐Ÿ™‚ .

Monthly Reflection #7 – Step By Step Towards Our Goals

Written by Zainab Al-Ansari on . Posted in Reflections

Every last working day of the current month I publish a report reflecting on the previous month. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Month

During September I worked on my current flagship project Against Sahara, helped Unreal Bahrain with a lot of tasks for the community and finished going through the Houdini Fundamentals Book.

Against Sahara – Current Status

Designing a card game that is fun, engaging and has educational value proved a lot more difficult than I first realized.

While I originally planned to finalize the design by first week of September, I’m still designing as of today since research is taking a lot more time than first realized.

I’ve gone through 5 iterations so far where I redesigned the entire gameplay and continue to edit and playtest.

I just received today a book I bought as a reference material on the Berber people who live in the Sahara, who’re my game’s characters belong to.

I expect a few more changes to the game’s design after going through the book to make it more representative of the Berber people and their lifestyle.

So far, the gameplay is almost done, all the cards been designed and the story is conceptualized but the gameplay and story is yet to be finalized.

Learning Houdini

I’ve finished the Houdini Fundamentals Book, and started making simple things like low poly books and heightfield maps without tutorials to better learn the tool.

Unfortunately the Houdini Apprentice license doesn’t allow me to export FBX or use the Houdini Engine for UE4, so until I buy a subscription I won’t know how my models look in engine.

I will be buying a license soon of course but only after I learned the tool well and started making assets for Against Sahara, since the sub is quite expensive.

New Weekly Schedule Review

Last month I started a new weekly schedule, and after reviewing my work and progress for the month of September I can happily say the experiment proved successful!.

My energy and focus are better than ever and the game has been progressing steadily.

The only thing is I feel am not progressing fast enough on my Houdini skills or the game, but I’ll refrain from any further adjustments for the next month as new habits need time to prove their worth.

Helping and Being Helped by the Community

Mahmood Alsarhani from Regnum Studio kicked off a new weekly event for the game dev community in Bahrain called Co-Dev Day.

Every Saturday Bahraini game devs gather in a coffee shop and work along side each other on their games.

I’ve joined the first Co-Dev Day and did a spontaneous one on Thursday last week with Adel and can say it helps a lot for focus and also to get feedback from each other.

I’ve also taken quite a bit of time off from my game to help organize the next Unreal Bahrain meetup on 6th October.

Working together on our individual goals and helping each other makes everyone more likely to succeed and I’m immensely grateful for all the work Yusuf, Mahmood, Noof, Moneim and all the contributors put into the community.

What’s Next: Finalizing Design & Building First Digital Playable for Against Sahara

Not much left design-wise so I’m likely to finish it within next two weeks, afterwards I’ll start work on creating the digital version of the game.

I’m aiming on depicting 1/4th or less of the final game in a demo, which will include the first phase of the game along with finalized art.

But for next month the goal is to build a playable with placeholder assets only to further test how the game will be played on screen.

This ends this month’s report, hope you enjoyed and if you have any feedback please comment below ๐Ÿ™‚ .

About Z’s Laboratories

Subscribe to my Newsletter

Required *