I'll go first: When interviewing perspective employees, does the entire team participate in the interview process and make a hire / no hire decision as a team?
Is this a good thing or a bad thing? I've heard people at Bloomberg in London complain about this in the past; people have said to me they've found good candidates but because one person on the team said no, it's a no hire, and they ended up hiring someone whose distinguishing feature is "nobody actively disliked them as a candidate".
I guess it's a good thing if nobody has an individual veto; I understand in the case above anyone on the team could individually veto.
In a previous role we followed this, and for most hires we waited until we found a candidate that had the right skills and the right fit, however there was one prominent candidate that several folks on the team rejected.
This candidate didn't interview particularly well with me personally, but had stellar technical interviews with two people on the team, and came with impeccable references from two folks in the team she would be working with. Because of that I circled back with the folks who rejected her, and in chatting with them, discovered they felt she wasn't a good fit for the team, but would be able to do the work. I spoke to my HR folks, and my own manager, and we agreed to overrule the team and hire her.
Straight up, best decision on hiring I have ever made.
I think this is a proxy for a lot of culture. "Enterprise," bureaucracy, trust, social status of developers, corporate IT mindset vs. Silicon Valley mindset.
I work at a big company. We are public. We have groups that handle PCI data. We have groups that handle HIPAA data. We all have root on our Macbooks. So it is definitely possible, even as a Serious Business with compliance requirements, if you care enough about developer experience to make it happen.
A tangential question would be, if I need a piece of hardware or software what is the process from purchase procurement to it being installed on my machine? This can sniff out several red flags, from there is a lot of bureaucracy to get software on your machine, to we are the type of company that will pay a person a decent developers salary and then just let them sit there because we will not buy a $100/$500/$1000 tool to make them more productive.
Edit: I'd kill to join a company that says BYOD and you can use Linux (any flavour).
Anecdotally in the financial industry, the corporate IT mindset is rampant even at supposedly “cutting-edge” algo trading shops. IT draws very bold boundary lines (no root access, unable to use new third-party libraries without a song and dance with InfoSec, locked down Windows machines that must SSH into Linux hosts for dev work, etc) and it sets the entire engineering culture.
This question will tell you about the culture as a whole, beyond how smooth/frustrating your developer experience will be. A good gauge for how modern or stale the stack is, whether continuous deployment exists, how top—down or bottom-up the culture is, etc.
As I think about it, it might not even matter much what the answer is - outside of personal preference, of course. Clear decision-makers can be good. Having a lot of autonomy can be good. Not being sure if you're allowed to do X or not, or even who to ask about it, never is.
I disagree with some nuance, but generally agree.
For large, multi-geography firms, I want to know and work WHERE the central pockets of power are located.
The company was in the business of buying up smaller companies, and naturally every manager wanted to stay a manager. So there was like 8 layers of management.
If we asked for money, time or resources we would take guesses as to how far up the chain it would get before it got rejected.
And it SO often got rejected, because a random manager was feeling less important and wanted to assert their power they used to have.
Best is if you have a friend already working there who can give you the low down.
One job I ended up not interviewing at, was because of their glassdoor postings. Those in most departments loved the place, but all of the IT posting were how miserable it was. Dodged that bullet.
Noped out of both.
How often do you go on-call. Does everyone participate. How is the documentation handled for resolutions. How often are there problems that you would get called for.
These tell me a good deal about how management prioritizes things, if they value creating stable systems with good documentation, and if they treat everyone equally.
Our "on-call" engineer was originally only supposed to handle system-down emergencies, but more and more stuff has continued to pile onto their realm of responsibilities ("Oh, this thing is supposed to happen at 4 AM that no one wants to do? The on-call engineer can handle that!"), to the point that it now feels like an unpaid overtime shift.
* What's one thing you'd change about <company X>?
* Tell me about the last time you worked past 7pm.
* How surprised were you by your last performance review?
* When's the last time you referred a friend to <company X>?
* Tell me how the last incident you responded to went.
* Tell me about a time you were able to work on something you identified and selected.
* What question is always tough to answer as an interviewer at <company X>?
The one I liked asking as a candidate was: It's 2 years from now, and <company X> has failed. What happened?
I got some good real talk about that one, and some smoke and mirrors. It was a good baloney extractor.
I think an important thing is to ask interviewers to pick a concrete instance of a thing you're interested in, such as poor work/life balance, and talk about the most recent one. It's easy to say "oh, we have great work life balance," but that's different for everyone, and frankly it's just too easy to gloss over. Ask them why they worked late the last time they worked late.
For example, with your question:
When interviewing perspective employees, does the entire team participate in the interview process and make a hire / no hire decision as a team?
I'd instead ask:
Had you talked with the most recent person who joined your team before they were hired?
I know back in olden times I'd always look at the "Help Wanted" ads, and would note that certain companies appeared to have constant employee turnover. I took that as a bad sign.
Probably not as valuable a metric if the company is growing rapidly. Also people tend to job hop a lot more nowadays.
No matter how respectable the company might look on the outside, the codebase is an incorrigible mess built by cowboys and they will expect you to maintain it.
I understand in the US it is an odd question because for some reason you have not a max amount of hours per week specified in the contract.
Do you provide free snacks for those who work late hours in this company ? Is there referral bonus ?
Yes to anyone of those question is a red flag.
You learn about how each interviewer experiences the decision-making process. How are the decisions communicated? Who decides? Do initiatives steamroll people and teams? Are people able to filter up suggestions or start their own initiatives? Can decisions get made team-by-team, or do they have to be made for the whole company? Do they change their mind when they get new evidence? Do people change their mind too much? Do they have trouble saying "no"? If they want to tell you "no," do they actually say it? Are they too afraid to make decisions that can change the culture, and just kinda drift?
As an IC engineer, this is what I have the least control over (and can find the most frustrating). So I want to hear exactly how broad change happens. It helps me imagine how it'll feel to spend four years in the environment.
This is the kind of question that you need to ask everyone. You won't get a good answer from one person. You want to ask a few people and see if their stories line up.
One good way to move people out of platitudes is that if, say, an IC says that there’s no problem with initiatives getting accepted more broadly - ask them for a specific example they were involved with.
Flipping the "what are your weaknesses?" back at them. You have weaknesses and so do they. If you can accept these "flaws" then you're one step further in the right direction. Or if they give you a bunch of nonsense, you know there is a bad culture hiding under there.
What is the channel for client feedback to reach the dev team? Can you give me an example of how this has worked in the past?
If I'm working on a feature and discover technical debt that will make it more difficult to implement, how do I decide whether to focus on that debt or the feature? Can you give an example?
The reason interviewers like to ask for examples is that it's easy to bullshit when speaking abstractly, but people are less likely to lie to your face. Use that to your advantage
By far, I found this to be most useful question to ask an interviewer. It tells what is the company doing well, and what things does the interviewer value. I have got various answers here.
- Some people say they like the autonomy given to them
- Some like the work enviornment
- Some like the technical challenges
- Some care about the impact the company is making
- Some like the money (not a bad thing, honestly)
For each answer you can ask for follow ups and examples. If they give a fluff answer like "I like the fast paced enviornment", its a red flag. If they have difficulty answering the question, its a red flag.
2. "What happens when something goes wrong?"
This is to know how the organization handles failure, also if you ask examples it tells you what does the organization defines as failure. Ideally you want an organization which has a no blame culture and which handles failures gracefully. Also this is the place you want to ask about on-calls.
It doesn't necessarily raise a red flag, but it tells you a lot about the dynamic of the team/company.
A: Yes. Every team rotates on-calls among their senior software engineers.
Then I just leave saying "thank you for your time".
- What's the roadmap for this year? This gives me a lot of insight on what I could be working on, and also if the company is a bit clueless about their direction.
- What would I do in the position I'm being interviewed for? This completes the picture, similar to the previous one, but different perspective.
Has the team ever produced a product without Angular, React, or similar MV*?
Does the team find state management challenging?
Do you conduct end to end test automation, including DOM interaction in the browser?
How many dependencies does your team require, ballpark, to perform basic simple automation on the terminal with Node (simple count of packages in the flattened node_modules folder)?
How up to date is your internal documentation?
What is the average timeframe for the team to move from receipt of business requirements to business approval of the completed work?
Are the business requirements design by committee or is there a single bus driver?
Which is a higher priority for the team: framework choice, available tooling, or accessibility?
Is there performance testing of the UI code?
By what metric(s), on paper, do you rate developer competence?
Not asking if they're happy with their life/job/etc, but whether or not they find value in the work they do. What the nature of that value is should be in the answer. And the answer will invariably touch upon a lot more than job satisfaction, so you don't have to ask so many questions if your time is limited. Doesn't always work on the phone (I find people are often guarded and overcompensating), but in person this question can be disarming and quite revelatory.
If it's a vending machine or the interviewer tells you it's an honor system, you are at the wrong place.
EDIT : Why the downvotes?