Post Reply Programmer Interview
5107 cr points
Send Message: Send PM GB Post
Offline
Posted 11/7/17 , edited 11/8/17
This is an assignment for class in which I have to interview someone in the same profession that I'm interested in. I realize this may be informal but I'd like to see if there are any programmers here that would be open to speaking about their profession. I'd appreciate if you could answer the questions below but I understand if you can't.

What is your position and role in your company?
How long have you had this position?
How did you get to where you are today?

What is your average week of work like?
What skills do you find are important to your job?
What is the most challenging or negative part of your job?
What do you find most satisfying about your job?
What kind of people do you work with?

What was your education like before entering your career?
Is there anything you wish you knew before pursuing this job?
Would you say your salary is sufficient for what you do?
Would you do everything all over again for the same job or do something different?

What does your company look for in new employees?
What advice would you give to others seeking the same profession?
Are there any misconceptions that you feel people have about working in your field?

What kind of education would you recommend?
What does your company like seeing from new employees?
What are some challenges you feel new employees struggle with when they enter the field?
What would your company rather not see from new employees?

I am pursuing a degree in Software Development because I have an interest in developing games of my own. Are there any suggestions, recommendations, or pieces of information that you think would be beneficial to me?
Dragon
69730 cr points
Send Message: Send PM GB Post
Offline
Posted 11/7/17 , edited 11/8/17

theseus17 wrote:

This is an assignment for class in which I have to interview someone in the same profession that I'm interested in. I realize this may be informal but I'd like to see if there are any programmers here that would be open to speaking about their profession. I'd appreciate if you could answer the questions below but I understand if you can't.



Sure, not a problem!

What is your position and role in your company?
Senior Programmer, focusing in graphics and gameplay, mostly prototype work lately

How long have you had this position?
At this company? About a year
As a title? 10+ years, I can't remember exactly when I shifted

How did you get to where you are today?
In middle school, on a family vacation, I decided I wanted to do game development. So I started learning how to program, and in college, loved the X-Wing series of games, so I applied to Totally Games when I was close to graduation, and they hired me after I did. 17 years and a lot of companies later, here I am.

What is your average week of work like?
Usually long, 40 hour weeks make up maybe 20% of the average year, 50+ hours are the most common. Occasional weeks of 20-30 hours usually happen after a big release (when a lot of people get sick after crunch to finish the deadline anyway, so..)

What skills do you find are important to your job?
Math. I do a lot of graphics programming, so understanding vector/matrix math is huge. Being able to talk with other departments about what they are doing in language everyone understands - do you call it a bone, a pivot point, are they called alpha or translucency layers, etc - really helps make sure everyone is on the same page. Be willing to ask questions if you don't understand something, and definitely let people know what the actual progress is on something, even if that means you're behind schedule.

What is the most challenging or negative part of your job?
Late-added features. They're always going to happen, and they usually make things far better, but they mess up every single schedule ever made.

What do you find most satisfying about your job?
Seeing the first time someone 'gets' what you're trying for. "Dude, that guy just jumped up on the airplane wing so he could shoot down at incoming troops, I didn't know we were even doing that!"

What kind of people do you work with?
Wide variety - mostly people with at least a BS in their field (or something similar), but often with multiple PhD's. Locals and immigrants, along with distributed worldwide development (trying to set up a Skype call between California, England, and India is an adventure..)

What was your education like before entering your career?
Double BS in Computer Science and Computational Mathematics.

Is there anything you wish you knew before pursuing this job?
Debugging - my school didn't really focus on it that much, and it's a huge, necessary skill. Knowing how to use memory breakpoints, for example, knowing that certain versions of Windows will generally load exe's in the same spot time after time if you keep it the same size, things like that. Disassembly and going over optimization in pairs is a lot of fun, and would have been interesting to do in school, but likely won't come up much simply due to project size.

Would you say your salary is sufficient for what you do?
Yes, no complaints.

Would you do everything all over again for the same job or do something different?
Hard to say. I drifted into mobile development for a while, which is interesting, but has different challenges than AAA studio work. I often flip back and forth over which I prefer.

What does your company look for in new employees?
Enthusiasm. Having a degree gets you through the filters, but you don't have to match all the requirements for the position all the time if you can make up for it in other ways. Doing your own side projects when you can shows that you enjoy what you do and that you're trying to improve your own skills.

What advice would you give to others seeking the same profession?
Make sure you take other classes outside of your desired field. Taking history of theater in college actually helped me understand things about 3D game design later in my job. Don't skimp on the math, and make sure you take linear algebra, don't try to substitute in abstract algebra like I did. Try to focus on your work/life balance whenever possible, you don't want to burn out a few years in.

Are there any misconceptions that you feel people have about working in your field?
That it's just playing games all day long. It's not, it's a lot of hard work - but there is a lot of silly thrown in as well.

What kind of education would you recommend?
At least a BS in computer science. If you have that with work experience, more doesn't really do much unless you later want to go teach later, or want to have a very, very serious focus, but if you want to be a generalist, a BS in computer science is a good foundation.

What does your company like seeing from new employees?
Demos - either collaborative projects you've done on the side, or things you've done on your own. Especially demos that focus on something specific, like a trick to pathfinding you wanted to work on (even if it didn't work out as expected) that you can talk through your development, success, and failures on.

What are some challenges you feel new employees struggle with when they enter the field?
Getting into the groove with an established team. Most people I know (myself included) end up working with the same people over and over even at different companies, so we've got in-jokes and shorthand, and we know what we're each good at doing. Seeing stuff being passed around like that can be intimidating sometimes, and that's actually part of the interview process - to figure out if the potential hire would fit in with the team dynamic.

What would your company rather not see from new employees?
Glory hounds. Yes, it's cool to say "I work at XYZ" or "I helped make ABC", but if that's the only reason you're applying, it's probably not going to help you get the job at most places I've been.


I am pursuing a degree in Software Development because I have an interest in developing games of my own. Are there any suggestions, recommendations, or pieces of information that you think would be beneficial to me?
Definitely look at the various game engines on the market, and if you know of a company or companies you specifically want to work for, make sure you look into their products and see if you can get a free or student license to the same engine they're on. Do demos that are small, a level or two is more than enough. Make sure you do the mundane stuff like linked lists even if you'll have code available to you all the time anyway, because understanding how they work will make you more efficient. Make sure you understand pointers, references, and why/how to use "const" if you're working in a language that supports it. Don't burn bridges, because you will quite likely shift companies (due to layoffs, better offers, and so on) and see the same people over and over - and it's just rude to burn bridges anyway.

Make sure you graduate. Don't be tempted to drop out early, even if you get a job offer. Sure, there are drop out success stories, but there are far, far more who don't end up super wealthy.


5107 cr points
Send Message: Send PM GB Post
Offline
Posted 11/7/17 , edited 11/8/17

MakotoKamui wrote:

Make sure you graduate. Don't be tempted to drop out early, even if you get a job offer. Sure, there are drop out success stories, but there are far, far more who don't end up super wealthy.


Wow, thanks for the immediate reply.

You’re probably the fifth person this week that’s recommended getting a BS in Computer Science and I will be switching to that track before the next semester starts. Thank you.

Is it possible to get your name and the name of the company you currently work for? In a direct message if it’s not something you’re comfortable posting publicly? Also, I understand if you can’t disclose that information at all.

Follow-up questions:

Are all those hours spent on programming alone?
Any notable experiences in your years working as a programmer?
Could you go more in depth about your experience with Mobile development?

I’ve been working with the Unity Engine mainly. Any advice in terms of that engine? Do you recommend another?
Any resources or experiences you found particularly useful when you were still learning programming or even now?
Was there anything you learned in school that never came up in your years of programming?
Dragon
69730 cr points
Send Message: Send PM GB Post
Offline
Posted 11/8/17 , edited 11/8/17

theseus17 wrote:

Wow, thanks for the immediate reply.

You’re probably the fifth person this week that’s recommended getting a BS in Computer Science and I will be switching to that track before the next semester starts. Thank you.


Cool! It's a good degree, and gives you flexibility to switch to different industries/tasks, that's why I always suggest going with a generalist track to start. Even within games, be able to code for sound, gameplay, UI, etc, so that you can fit in to any task that might come up and figure out if it's something even more interesting than you at first thought.

Is it possible to get your name and the name of the company you currently work for? In a direct message if it’s not something you’re comfortable posting publicly? Also, I understand if you can’t disclose that information at all.
Sorry, since it's prototype work right now, I'm under NDA.

Follow-up questions:

Are all those hours spent on programming alone?
It varies. I've been in management positions, where probably 20-50% of my week was spent in meetings and recruiting, project planning, etc. I hated it, I much prefer programming. But even when I'm just working as a programmer, at least 5-10% of the week is meetings, and at least the same in planning and follow-up/recap emails and such. Communication is super important, especially if you work with any remote teammates.

Any notable experiences in your years working as a programmer?
One time I got hugged by Darth Vader at a company meeting... yes, I mean that literally in every way. On the more down side, one time early in my career I was given a task that was estimated by my boss before I worked there to take about 2 weeks. It ended up taking 6 months, though everyone agreed after the fact that the estimate was completely unrealistic and the job really just took the proper time in the end.

Could you go more in depth about your experience with Mobile development?
Kind of a mixed bag. My favorite were the kids' games - stuff that would sneakily teach math and logic and such using robots and silly encounters, but I've also done what I'd call time wasters, stuff designed for folks to just zone out during a commute ride. I've never designed my own, simply worked on what others did. For work, it was often using the Unity engine, though a few games were raw Objective C mixed with C++ using OpenGL.

I’ve been working with the Unity Engine mainly. Any advice in terms of that engine? Do you recommend another?
I like it - it's a good, general engine, though it does have performance issues, so doing large scale work requires tinkering sometimes. Several big companies use it, especially in the mobile field since you can just export to your device with little setup, and the editor mostly works the same as the runtime. When loading files, you'll have to be careful about your path structure if you want the editor, desktop, and device versions to all play well together, and if you add in loading via the web, thread load support can get interesting.

If you're just looking for experience with engines, I'd also recommend Steam, since it's popular with a lot of small shops which are great to get started with, and has a distribution channel built in. Unreal is also quite popular. Getting assets for any engine was always my biggest issue, since I can code well, and I can model simple rigid stuff like swords or whatever, but doing full animated characters and epic music is far outside my field. Searching for free or cheap resources for demo work just to get experience importing is important whatever engine you work with - I know Unity and the artists I've worked with often fought over how to get stuff into the game.

Any resources or experiences you found particularly useful when you were still learning programming or even now?
Hmmm... obviously the internet, searching for whatever game engine / language / issue you're on is a huge benefit these days, though with so many 'clever' names, sometimes the results are less than useful. I always had an ascii table and a unicode chart bookmarked, but that was mostly for localization work which is a pretty specific area. Always keep free sound editing and image editing software installed, even if you don't usually work there it will always come in useful. Hex editor / viewers are fantastic as well. Make sure you are comfortable working in multiple environments - at least Windows and Linux, since those two will give you most of what you need if you switch to Mac as well these days. Learn and be comfortable with optimization in single and multi-threaded situations.

Was there anything you learned in school that never came up in your years of programming?
Debugging was rare, and multi-threading really wasn't a thing when I was in school, at least not as part of programs we were learning to write, but it's super important in game development these days. Linux only came up at my school because I went to a programming competition (kind of a 'by the way, I know we teach in Windows, but the competition is in Linux.. any chance you can read this primer on how to use its terminal and editor?' situation), while the university I live near now only teaches in Linux, and focuses on garbage collected languages, which I worry may be an issue for some schools. Knowing your memory management is huge for consoles and portable devices, and just for efficient, bug free code. Garbage collection is easier to start with, but I've seen some really sloppy code, and also just implementations that end up leaking memory (lambda functions in C# come to mind)
5107 cr points
Send Message: Send PM GB Post
Offline
Posted 11/8/17 , edited 11/8/17

MakotoKamui wrote:

Cool! It's a good degree, and gives you flexibility to switch to different industries/tasks, that's why I always suggest going with a generalist track to start. Even within games, be able to code for sound, gameplay, UI, etc, so that you can fit in to any task that might come up and figure out if it's something even more interesting than you at first thought.

Is it possible to get your name and the name of the company you currently work for? In a direct message if it’s not something you’re comfortable posting publicly? Also, I understand if you can’t disclose that information at all.
Sorry, since it's prototype work right now, I'm under NDA.



Wow. You have been amazing help. I appreciate your openness. I think that’s all the questions I have right now. I understand you can’t share your name or company, but for the sake of this assignment is it alright if I just refer to you as Makoto Kamui or would you like to be called by something else? Also, if I have any further questions or inquiries in the future is it alright if I contact you through this forum or a private message?
Dragon
69730 cr points
Send Message: Send PM GB Post
Offline
Posted 11/8/17 , edited 11/8/17

theseus17 wrote:

Wow. You have been amazing help. I appreciate your openness. I think that’s all the questions I have right now. I understand you can’t share your name or company, but for the sake of this assignment is it alright if I just refer to you as Makoto Kamui or would you like to be called by something else? Also, if I have any further questions or inquiries in the future is it alright if I contact you through this forum or a private message?


Not a problem at all - and sure, appreciate it if you'd just go by Makoto Kamui just because. And if you've got any more questions, feel free to drop me a message!
You must be logged in to post.