Category Archives: Life

Video Games Live in Dallas

This last weekend my wife, a few old coworkers, and myself went to go see Video Games Live in Dallas. I had never seen them before, although I had heard about them on multiple occasions. Personally I think the show is pretty amazing. The Dallas Symphony Orchestra did a very good job (it was also my first time to hear them play as well). Below are some photos I took of the concert as it was starting. Unfortunately my iPhone 3Gs camera isn’t that great, so the pictures look quite terrible.

They played music from well-known classic games such as Super Mario Bros., Zelda, and Tetris. They also had a few tunes from Warcraft. The last half of the show was a bit more progressive, as a guitarist joined in with the orchestra. I would gladly pay to see Video Games Live again, especially since they play different video game themes at each show.

Resume moved to Google Docs

I edit my resume from multiple locations sometimes, so it makes sense for me to have my resume on Google Docs. Not only did I move my resume to Google Docs, but I also chopped it up a lot. My work history was a mess. I had entirely too much text there. Some sections under work history were 30+ lines long, and I’ve shrunk them down to 3-5 lines. My skill list no longer uses a fancy table, it’s just a very direct list of skills.

If you haven’t seen my resume in a while, please check it out. The “Download resume” button that used to be on the right side of my blog has been removed. A “Resume” link has been added to the top menu bar, however. This will redirect you to the public view of my resume.

Added Work History to Resume

Well, my resume before was pretty empty and I thought it was time for an update. My old resume didn’t show any work history past January of 2009, however that is no longer the case. Two new companies have been added my work history:

  • Escalation Studios - This is currently where I work (as of this posting).
  • Red Sword Studios – An iPhone/iPad game development company that was formed in January of 2009 and I guess you could technically call me one of the “Founders”, although I no longer contribute work there.

So I haven’t been just sitting around for the past 17 months :)

Resume Updated

I’ve found over time that employers look at my resume and end up asking me questions that are clearly answered on it. My best guess for this is because employers really don’t want to have to read through my work history to get a grasp for what I’m capable of. To help solve this I’ve added a new section to my resume called “Experience Overview”, right under my skills list. This will give you a bullet-point list of things I’ve done and am more than capable of.

I recommend everyone give my resume another look. As always, I would appreciate any criticism and/or suggestions to improve my resume!

How To Hire Programmers

I read an interesting article suggested to me by an old co-worker of mine written by Aaron Swartz. It discusses his method of hiring programmers in the IT industry and I think this applies perfectly to the game industry as well. I’ve personally never had a company interview that utilized his methodologies. I’ll quote the entire post below, but please visit his weblog and read his other blog entries!

There are three questions you have when you’re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them? Someone who’s smart but doesn’t get stuff done should be your friend, not your employee. You can talk your problems over with them while they procrastinate on their actual job. Someone who gets stuff done but isn’t smart is inefficient: non-smart people get stuff done by doing it the hard way and working with them is slow and frustrating. Someone you can’t work with, you can’t work with.

The traditional programmer hiring process consists of: a) reading a resume, b) asking some hard questions on the phone, and c) giving them a programming problem in person. I think this is a terrible system for hiring people. You learn very little from a resume and people get real nervous when you ask them tough questions in an interview. Programming isn’t typically a job done under pressure, so seeing how people perform when nervous is pretty useless. And the interview questions usually asked seem chosen just to be cruel. I think I’m a pretty good programmer, but I’ve never passed one of these interviews and I doubt I ever could.

So when I hire people, I just try to answer the three questions. To find out if they can get stuff done, I just ask what they’ve done. If someone can actually get stuff done they should have done so by now. It’s hard to be a good programmer without some previous experience and these days anyone can get some experience by starting or contributing to a free software project. So I just request a code sample and a demo and see whether it looks good. You learn an enormous amount really quickly, because you’re not watching them answer a contrived interview question, you’re seeing their actual production code. Is it concise? clear? elegant? usable? Is it something you’d want in your product?

To find out whether someone’s smart, I just have a casual conversation with them. I do everything I can to take off any pressure off: I meet at a cafe, I make it clear it’s not an interview, I do my best to be casual and friendly. Under no circumstances do I ask them any standard “interview questions” — I just chat with them like I would with someone I met at a party. (If you ask people at parties to name their greatest strengths and weaknesses or to estimate the number of piano tuners in Chicago, you’ve got bigger problems.) I think it’s pretty easy to tell whether someone’s smart in casual conversation. I constantly make judgments about whether people I meet are smart, just like I constantly make judgments about whether people I see are attractive.

But if I had to write down what it is that makes someone seem smart, I’d emphasize three things. First, do they know stuff? Ask them what they’ve been thinking about and probe them about it. Do they seem to understand it in detail? Can they explain it clearly? (Clear explanations are a sign of genuine understanding.) Do they know stuff about the subject that you don’t?

Second, are they curious? Do they reciprocate by asking questions about you? Are they genuinely interested or just being polite? Do they ask follow-up questions about what you’re saying? Do their questions that make you think?

Third, do they learn? At some point in the conversation, you’ll probably be explaining something to them. Do they actually understand it or do they just nod and smile? There are people who know stuff about some small area but aren’t curious about others. And there are people who are curious but don’t learn, they ask lots of questions but don’t really listen. You want someone who does all three.

Finally, I figure out whether I can work with someone just by hanging out with them for a bit. Many brilliant people can seem delightful in a one-hour conversation, but their eccentricities become grating after a couple hours. So after you’re done chatting, invite them along for a meal with the rest of the team or a game at the office. Again, keep things as casual as possible. The point is just to see whether they get on your nerves.

If all that looks good and I’m ready to hire someone, there’s a final sanity check to make sure I haven’t been fooled somehow: I ask them to do part of the job. Usually this means picking some fairly separable piece we need and asking them to write it. (If you really insist on seeing someone working under pressure, give them a deadline.) If necessary, you can offer to pay them for the work, but I find most programmers don’t mind being given a small task like this as long as they can open source the work when they’re done. This test doesn’t work on its own, but if someone’s passed the first three parts, it should be enough to prove they didn’t trick you, they can actually do the work.

(I’ve known some people who say “OK, well why don’t we try hiring you for a month and see how it goes.” This doesn’t seem to work. If you can’t make up your mind after a small project you also can’t make it up after a month and you end up hiring people who aren’t good enough. Better to just say no and err on the side of getting better people.)

I’m fairly happy with this method. When I’ve skipped parts, I’ve ended up with bad hires who eventually had to be let go. But when I’ve followed it, I’ve ended up with people I like so much so that I actually feel bad I don’t get to work with them anymore. I’m amazed that so many companies use such silly hiring methods instead.