Now you will ask questions. Lots of them.
As I have mentioned in the previous article, job interview is a symmetrical process. There are two entities – the Company and the Developer that meet in order to find out if they want to start a collaboration. The company will try to check if you have suitable skills, talents and how you handle different situations. They will ask you tons of questions. And you should do the same – carefully and thoroughly find out if the are suitable for you in each aspect you care about. Basically, you should have the same amount of time for your questions, as they had for theirs. Symmetry and honesty.
When you have technical people in front of you, ask them as much as you can about the project you are going to participate in.
- High level business overview as seen by developer.
- Technical overview.
- Technology stack and plans for it.
- Legacy problems, and if present, how do they deal with them.
- Software development process: do they have Agile? Scrum? Scrum-but? Waterfall?
- Do they have Continuous Integration? Automatic tests? Deployment at the push of the button?
- How do they host their stuff?
- How big is the project? How old is the code and how many people worked on it?
- What tools do they typically use? What IDE? Can you use your favorite IDE and tools?
- Will you have the level of autonomy you want?
How does your potential future office and workplace look like? Do you like it? Can you spend there 8 hours a day 5 days a week comfortably?
- How big is the team? Is it distributed or sits in one room? How many teams are on the project?
- What are you working on? Is it a laptop or workstation? Is it powerful enough? Does it have SSD drive? Will you be given two big displays? Or is it just a thin client to virtual machine hosted in another country? (good luck with that).
- Do you have control over your computer? Can you install whatever you need for work? Or you have to wait for management approval for simplest and most obvious things?
- Are there any restrictions in access to web pages? Will you have to wait 3 days until you will be given access to technical blog with information you need for work?
- Can they give you tour around the office?
- Do you sit in a room or in an open space? Or even worse, in “smart” office where you don’t even own your freaking desk?
- Do you like view form the windows? (like, physical ones… you know)
- Is there a dress code? Is it okay with you? If tech guys came to interview in suits, you should probably run (I would at least).
- Is there a free / affordable, convenient parking space?
- Suppose, you like to cycle or run to work. Is there a shower in the office you can use?
- Is there a flexible approach to work hours? Can you work 6 hours one day and 10 on another one? Can you work 35 hours one week and then 45 hours another one? Can you leave office for 2 hours and later stay 2 more? Let’s assume that those fluctuations won’t interfere with duties to your project like meeting or deadlines, of course.
- Is there free coffee / tea / milk other stuff in the kitchen? Some companies will even provide you free breakfast or lunch. That’s a nice touch and you can avoid queues to the “sandwich guy” or thinking about how do you not starve to death today.
- Are there mugs, glasses, plates, cutlery, dishwasher, microwave oven? Place to sit?
- Do they have physical library? Access to online libraries you would be interested in? Chill-out room? Fun room? Do you like to play table football with your mates? Do they have it?
- Do they have displays with build status or other relevant stuff on the wall?
- Can you order a package for the company address and have it handled by someone if you are unavailable to pick it up?
- Is it software company or they just have IT because they “have to”?
- Is it even technological company or are they working in totally unrelated field? Find out about how they truly perceive software development and if you are comfortable with that (feels like necessary evil? – run).
Let’s talk money. There is a specific number regarding your salary, but there are a lot of other things to consider.
- Are there any bonuses? What are the conditions and average numbers? A company offering lower salary but higher bonuses might overall give you more cash. But it might be tricky.
- What are the other benefits? Sport cards? Private health care? Cinema tickets? Phone? Laptop? Car? Jet? (ok, maybe I’m aiming too high here, but you know what I mean)
- Will the company pay for your certifications or external training if you need / want one? Will they pay for conference in another country and let you go in your work hours instead of forcing you to take leave of absence?
- What kind of contract is at stake? Do you like to be an employee or one-man enterprise? Can the company offer you what you want?
- How much time do you need to get to work? Remember time is money. An additional hour spent on traveling to office is equivalent of effectively being paid over 10% less per hour of your time and not getting any experience out of it.
If you are interviewed by a person who is going to be your superior, you should make sure you will get along. Does this person have technical background? Or speaks only Excel? Ask questions to determine his / her behavior in certain situations and make sure you like the answers. I was once in an interview with a guy who was supposed to be my future boss and in the middle of it I knew there is no way freaking this is going to work. Some people just have a bad aura (or should not be allowed to manage anyone). Dump them immediately while you still can.
Do you see yourself in this company in the future? Is there a path you can follow? Or maybe this company it’s just a step in your own path and you are not planning to stay here for long. It’s fine, just think what your expectations are and if they will be satisfied.
Yes, that’s a lot of issues, and some of them might sound silly, but we are talking about the place you are going to spend over a half of your awake time excluding weekends. You should feel good there in all aspects you can think of.
Basically, if you decide to change job, don’t fall for the first or second offer you are given. Try to get several (perhaps 4 to 10 depending on how much time and determination you have) interviews in relatively short time (2 to 4 weeks seems to be reasonable). The list of question and issues I came up with is my personal preference, and things I care about. You might have an entirely different list. Just have the damn list! Prepare your questions, ask them, dig deeper, observe reactions, note answers, compare, prioritize, think. Sometimes you might want to call some company again to clarify something or to negotiate. Find out if you have colleagues or they have colleagues that are working / worked in the company you are thinking about. Talk with them. Research the online opinions about company, are they favorable?
Sometimes it’s hard to come up with a verdict, so just try to trust your gut feeling.