The wonderful world of software development. I have now been a “professional” programmer for about 6 months now and have learned much more in that time than I did during most of my entire education at college.
But, there are a few things that I have learned about the company that I work for, the people that I work with, and about programming in general that I wish I would have known when considering employment with any company. This isn’t because I don’t like my job (in fact, I Love my job); it’s because there are some things every developer should know before entering a new job in a new company.
I’ve compiled a list of 10 questions to ask in an interview for developers. If I missed something , add your questions in the comments below.
1. What tools does the team / company use?
We never learned about good testing frameworks or testing frameworks in general in school. Never learned what a good text/code editor was. And sure as hell didn’t hear what to use for source control.
These are some some good things to know about the company that you are applying to. What coding environment do you use? What type of source control tools? Are there any other specific tools I need to know before you join the team?
2. Are there some sort of coding standards?
What are big “no-nos” when it comes to coding style? Is there some sort of coding standard and style? If not, it doesn’t mean that they don’t know what they are doing, but it could mean that source code ends up being “spaghetti code” and tough to wrap your head around.
3. What type of storage technologies are used?
What ways do developers and the company store information? Is it a specific type of database technology or is it open ended? For example, do you have to use a standard, company-issued type of database technology like SQL Server or MySQL to get things done? Or can you use MongoDB on a whim?
4. What operating systems are used?
This should be somewhat apparent before your interview, but it’s always something good to ask. Plus it doesn’t hurt to passionately talk about your favorite OS, you geek. I can imagine that many companies use a wide-range of operating systems. Of course the most popular being Linux, Windows, and Mac OS X.
5. Is the team an Agile team? Do they follow Waterfall methodology (yikes!)?
What type of development style does the company / team subscribe to? Are they an Agile team? Waterfall? How closely do they follow the methodology?
Also, different teams within one company may have different types of methodologies they use. learning this allows you to see how you will work and what other teams use.
6. How much room do developers have to “take charge”?
Are customer software requirements locked and stringent or do developers have wiggle room to try and create things that customers would like better?
Do developers have the opportunity to create tools and systems during their day to help the team that they work on without having to create an entire formal project? Some companies encourage developers to take charge and make things on the side while others simply want you to do what you are told.
7. Are there any tool / software restrictions?
Is there any software that the company has “banned” from use? This is more along the lines of open source software or software that has weird licensing restrictions for commercial use.
Even after your interview, it’s probably a good idea not to install and use software that isn’t directly “approved” by the company, unless you are given free reign to do so.
8. Is telecommuting an option?
What type of working condition does the company have when it comes to working remotely? This can be a huge benefit to a future employee – the ability to work from home. If the company allows for remote working arrangements, It’s important to know what expectations are.
9. Does the team have code reviews? If so what are they like?
Ahh, code reviews. The one place that can make you feel like a genius or show you aren’t the hotshot that you thought you were. Does the company and team give code reviews on a regular basis? If so, what are they like? Hell on earth or generally helpful in learning what you are doing wrong and how to make it better?
I haven’t had the opportunity to sit through a killer code review, but I have heard horror stories. It’s good to know what you are getting into.
10. What type of experience is on the team that I will join?
How seasoned are the developers that you are about to join up with? What type of experiences and code have they been to exposed to? What are the weaknesses of the team and what can they improve on?
It’s a great thing to know when joining a new team; who can I ask for help if (and when) I need it?
Of course there are other important questions that you may want to ask in a developer interview, but these 10 will quickly give you an idea of what the team and company is like that you are interviewing for.