5 Red Flags to Watch for in a Software Interview
A lot of the time, the employer is in a position of power during an interview. They set the agenda and questions, and they’re the ones on home field. But that doesn’t mean everything is out of your control as a candidate.
As the candidate, it’s within your right to only seek out companies worth working for. Oftentimes, you can learn a lot about quality of the company, your job, and the team you would work in during the interview.
Some of the best software companies to work for have a few qualities in common:
- Engineers aren’t micromanaged. Larger companies have more processes. But those processes don’t slow the engineers down.
- Outcomes are valued over hard metrics. Bad companies tend to focus on contributions (lines of code, tickets closed, etc.). Good companies focus on overall team outcomes (e.g., company goals met, user satisfaction, etc.).
- People are empathetic. Managers are understanding towards individual contributors and their situations. Engineers are empathetic to new candidates they’re interviewing. The product and engineering teams understand the impact of their work on customers. Etc.
From the points above, you can then pick out the warning signs of poor environment and practices.
The purpose of the interview is to find out if you and the employer are a good fit for each other. So make sure you’re answering questions that are relevant to the job.
Some engineers argue that it’s very important to gauge a candidate’s problem-solving skills. To a degree, sure.
But there’s a point where things cross from “gauging skills” into “intellectual flexing.” Some portions of the industry are toxic, and these engineers love flaunting how intelligent they are. This manifests in interviews by asking candidates unreasonably difficult questions that don’t really gauge relevant skills.
Having said all this, it also depends on the work you’d be doing. For most positions, this level of technical depth isn’t necessary. Now, if you’re applying to Google’s machine learning or search teams, that’s different.
Understand what level of technical grilling is appropriate for the position you’re interviewing for and save yourself from shitty jobs.
Also, brainteasers are 👎.
Managers, by the nature of their jobs, have to be leaders. Employees trust and rely on their managers for lots of things. So when they don’t have coherent processes or principles, they can quickly become a source of pain.
Before your interview is over, you should confirm the following traits about your future manager:
- They are organized. A manager’s job is to manage. Managers who are disorganized will usually struggle with managing. Their entire job and their entire team depend on them having a firm handle on things.
- They help their employees grow. A manager’s job is also to unblock people, help them succeed, and most importantly, help them grow. If your manager isn’t interested in doing that for you and your teammates, then working for them will not be a good time.
- They are transparent. Are they honest and willing to communicate? Will they make sure your team is on the same page? Or, if not, do they provide good justifications? Being secretive about things usually means they have something to hide, and subsequently, cannot be trusted.
- They can handle feedback. Nobody’s perfect. Everyone can improve, including managers. A manager who gets testy when their team expresses concerns likely has issues with pride. They will be a pain to deal with when the going gets rough, as it inevitably will at some point.
- They follow through. Some people are very charismatic and convincing when they speak. They sell big dreams and grand visions. But when it comes time to deliver, they drop the ball. Working for this kind of boss is one of the most frustrating things in the world. This one is a bit harder to gauge during an interview, but ask the future manager questions about how they’ve helped improve their team. Ask the other team members how it’s been to work with the manager. If they can’t answer… well, there’s your answer.
Honestly, there’s a whole slew of important traits in good managers and leaders, but the ones above are the most important. Make sure you know these things about a manager before deciding to work for them.
You might save yourself lots of stress…and maybe even your career.
I mentioned it in the last section. But some people, especially executives, are really good at talking the talk. After all, part of your job as an executive is to motivate your company and drive the vision.
But pretty words can’t fix a lack of focus. Some companies are constantly reprioritizing, pivoting, and walking back things they’ve promised themselves or their customers. This will be apparent if your interviewers cannot concisely and clearly explain the company’s vision and goal.
This lack of focus inevitably trickles down to your day-to-day work. There are stories of engineers spending days, weeks, months on projects just to have things scrapped last-minute. And that’s a hell that engineers don’t deserve.
In Accelerate: The Science of Lean Software and DevOps, the co-authors & researchers found that teams using modern, DevOps, and Lean practices were not only more productive - they were happier.
At the end of the day, as a software engineer, you want to solve interesting problems by programming. When you have to wrestle with shit processes, use shit tools, and work on shit products, you’re going to have a shitty time.
Don’t put yourself in a situation where you only find out things suck after you start working. During the interview, ask about their processes. Here’s a shortlist of questions you can use:
- What’s the team’s development process like?
- Good: Any mention of automation and CI/CD (Continuous Integration, Continuous Deployment). Mentions of flexibility and empowerment. Failing forward and/or failing fast. Rapid feedback and continual delivery. Peer review and teamwork.
- Bad: Any mention of strict control. For example, awaiting approval or “stamps” from 3rd parties like managers, QA teams, etc. When doing work is approval-based, engineers are often bottlenecked and waiting to get “permission” to continue innovating. Any mentions of manual work and spreadsheets are also usually a bad sign.
- How are decisions about the product made?
- Good: Through a combination of customer research and feedback, industry trends, competitive analysis, etc. Any answer that mentions an interplay of various, complex variables is probably good. More importantly, you want to work for a company where employees, to a degree, have at least some influence. If not, then you’re essentially just a bunch of code monkeys.
- Bad: Leadership or top-down initiatives. Executives are often far-removed from the daily work of their employees and their actual customer base. You don’t want to work for companies that purely bend to the whim of out-of-touch executives.
- How is employee performance measured?
- Good: Any mention of a competency matrix, a career ladder, or other framework. If they have a comprehensive plan and/or guide for helping employees promote, that’s also a good sign.
- Bad: Hard metrics. Anything like number of tickets closed, lines of code written, hours worked, features delivered, etc. The problem with any of these metrics is that you can’t really accurately measure their impact. Working 12 vs. 8 hours a day doesn’t necessarily mean you’ve contributed more. Closing 10 tickets instead of 5 tickets a day doesn’t necessarily mean the product is improving twice as much. Etc. This is discussed in another fantastic book, The Mythical Man-Month.
There are more questions, which you can learn by reading Accelerate, but the above questions actually cover quite a lot of ground in gauging the company’s practices (and by extension, employee satisfaction).
This is a bad one. Some companies, whether intentionally or not, will fluff up job requisitions to attract more candidates. But the actual job is not as great or exciting as they describe.
It essentially boils down to similar things mentioned above: overselling and underdelivering. If you’re applying for a position doing X, make sure you don’t get bait-and-switched into doing Y.
It could potentially mean death for your career.
During the interview, make sure the interviewers can give you a clear, strong description of what your daily work will look like. If possible, ask the team members you would be working with.
Hope this helps. Best of luck on your job search and interviews.