Senior Graphics Software Engineer by day, electronics and robotics hobbyist by night. I'm currently working at a Japanese company, and have previously worked at a French company, a Canadian company, a United States company, and an Australian company. Names omitted to protect the paranoid. All opinions are my own, and do not represent my employer nor what I do there at all.
Posts by Richard Sim
  1. Experimental gameplay with experimental hardware ( Counting comments... )
  2. Survey of Fast Compression Algorithms (Part 1) ( Counting comments... )
  3. Tips for High Performance Art ( Counting comments... )
  4. The Importance of Personal Projects ( Counting comments... )
  5. Intuition for Gamma Correct Rendering ( Counting comments... )

Personal projects are an often overlooked part of a professional career – be it games, embedded, or even web development. There’s only so much you will be exposed to in an office environment, where you can lean on others for areas that aren’t your specialty. But when it comes to personal projects, you have to be a jack of all trades.

This is the reason I ask about hobbies and personal projects of those who I interview and those for whom I interview with (interviews go both ways remember!). It’s not something I ask because I want to know if you’ll be my buddy, even though that is very important factor in selecting coworkers in my opinion, but because it is one of the most clear indicators of a curious and active mind – and that trait is very important. An engineering team with curious and active minds is the cornerstone of a solid development process. They are the ones who will be the most forward-looking, identifying the potential pitfalls ahead and working to avoid them now, because they’re thinking. They will be versatile, because they’re used to it. They will actively improve the codebase, systems and procedures, because they want to work somewhere that they enjoy what they work with.
Great work is not achieved by punching a clock, and someone who is curious will work on the problem because they want to solve it. This isn’t to say that I like curious coworkers because they do lots of overtime – my opinion on overtime is not positive at all – quite the opposite in fact. I don’t really care the hours you do if you’re doing a great job in that time and not slacking off. The unfortunate reality of the games industry is that you will be doing overtime, and that overtime will make up for any short days taken. If you’re making no progress on a problem I’d much rather see my team take off early and relax than sit around bored and frustrated – then when the solution finally comes you’ll be fresh and happy to work hard on doing a great job rather than burnt out and doing just a good job.

Of course that isn’t to say that if you don’t have any personal projects on the go that you don’t have a curious and active mind, only that it’s an a clear indicator in an interview; I know plenty of great engineers who don’t fit this profile, and there’s nothing wrong with that. There will be things that you’ll miss out on though, because often there isn’t time in the schedule to bring someone up to speed on a new area, meaning that if you don’t already know it, you won’t get the opportunity to learn. This isn’t for any malicious reason; it’s simply the reality of schedules.

There’s no reason that a personal project has to be directly related to your daily work. If it was, that’d be little more than homework. Not much fun there if that’s all you do. For instance, my personal projects are usually a mix of embedded (electronics and low-level programming), Android (mobile programming and OpenGL), and the occasional work-related R&D. What counts is that you’re pushing yourself to learn, and having fun doing it.

Originally posted to Technofumbles.