evolved.io logotype

#Job-Interviews #Software-Engineering #Questions

How to Get More Out of Your Next Job Interview

It is easy to forget that interviews go both ways: Challenge the interviewer, so you can get a better feel for what it's like to work at that company.

Avatar
Dennis GaidelSeptember 11, 2022

Over the past two years, I have seen over a hundred resumes and interviewed dozens of software engineers from junior to senior level as a hiring manager.

In the first interview, I always let the candidate know that this is a mutual "get-to-know" and the goal is, for both of us, to determine if we are a good fit for each other.

Surprisingly, most engineers don't take (enough) advantage of this opportunity to learn more about the culture, the project, the team, and many other aspects that could help them better understand what they might be getting into.

Product

Exciting products are the ones, that are challenging and impactful. Often times this means the product affects a large user base in different markets in a positive way and provides a high value to the business. At the same time an interesting product requires smart, but not over-engineered, solutions based on "out of the box" thinking, that are delivered at a relatively high pace by a highly motivated product team.

Understanding the product and the context in which you would be working as part of the team is critical to getting a solid feel for the type of work you are applying for.

You could also ask how product decisions are made, about deadlines, room for failure and how data driven the team is. You don't want to be on a project, that has been in the making for over a year, has missed several deadlines, has already been supervised by multiple managers, because everybody is too afraid to fail and/or to deliver a product in iterations and/or to reduce the scope.

So if the product hasn't been launched yet, you should figure out when and how it will be launched, how many milestones have been achieved so far, and what still needs to be done to reach the "MVP" (minimum viable product) status.

Team Setup

Your team includes the people you will work with every day. And as we all know, people can make the difference between a job you love, and a job you hate: There's almost nothing worse than working with people you just don't get along with.

Apart from mutual sympathy, the team setup is also equally important: What kind of roles make up the team? In a product team, working on a software product, you would probably expect at least one to two senior engineers, a dedicated product manager, ideally a product designer who is all about UI/UX and probably one or multiple junior to intermediate engineers as well. Possibly there is a QA engineer on the team as well. Sometimes the product manager takes over the role of a manual QA while the engineers implement automated tests themselves.

Another important aspect is celebrations and get-togethers: Even if you work remotely (most of the time), it makes a huge difference when you meet your colleagues in person from time to time. It strengthens the bond within the team and usually provides a more private perspective on a colleague, allowing you to better understand their motivations and actions.

Collaboration

Next to the setup, a good way to collaborate is key: For you, as an engineer, it should be important to understand, how you will contribute to the product: Are you expected to join in on product decisions to give technical input? Can you actively participate in scoping and defining user stories or tasks, or does the product manager simply hand them down to you?

And what about merge requests? What criteria is important for the other engineers to approve merge request? How are disagreements about coding conventions or approaches handled? Are the conventions documented? Is there somebody on the team who makes the ultimate decisions?

Nothing can be more frustrating than waiting or even begging for a review or unpleasant disagreements when some people on the team have no sense of healthy compromise. But it's just as bad when no one really cares about quality and only does superficial reviews.

Processes

A common alignment means a common set of processes everybody follows. It's inevitable to have processes in place to organize and prioritize upcoming tasks, transparently share each team member's current progress or to deploy the latest state into production.

Slow and inefficient processes as well as the ones, that actually don't make sense but are still followed, can have a huge strain on your feel of productivity and happiness. Why should you for example spend time on meetings that have little to no tangible output?

Therefore, it is worth looking into this issue and asking what kind of processes are in place, who decides on these processes and when they were last reviewed.

In the best case, you belong to a team that does not blindly follow a predefined set of process rules like SCRUM, but continuously evaluates what works best for them (as a team) and makes appropriate changes as needed.

The goal is to understand what your daily routine will look like and how much influence you can have on it.

Career Path

Some engineers are more ambitious than others, but what's for sure is that no one wants to feel stuck. At the end of the day, there has to be a goal that someone can walk towards and that there is always room to grow.

Especially big technology companies like Google or Microsoft have understood this very well: They offer several parallel career paths for different career types, e.g. engineering and management, as well as levels far beyond the familiar "senior" level.

It's worth noting that these companies offer a clear technical career path and don't force people to go into management if they want to reach higher levels than senior.

Regardless of what level you are at, you should clarify how you can advance your career within the company. What are the requirements for each level? What is the process for advancing through the levels? Who is responsible for it? Can you advance to the next level at all, or are all positions filled?

Management

Your job as an engineer is to provide the technical foundation for the company to deliver value to its customers. Ultimately the management decides on the vision, the business goals, the deadlines and heavily influence the culture of the company.

It is quite important that you agree (overall) with them. Otherwise you might be working for a cause you don't actually believe in, which in turn would only add to your own dissatisfaction and burn you out sooner or later.

Stability is another factor that could affect your work: A constantly changing environment can be exciting, but also very stressful. A constant change of focus and attention, team changes and reprioritization can cause you to lose faith in the importance and impact of your work.

How does management stay in touch with the employees? Do they listen to feedback? Is there a constant change or disagreement at the top? Do managers tend to micromanage their teams?

Conclusion

Certainly, it is not possible to squeeze out all the information there is in the relatively short time available for questions at an interview. And some questions or aspects might be more important than others depending on your priorities.

But at the end of the day, there is so much more to a job in tech than just the tech stack and salary that can greatly impact your experience. And since most of us work full time, meaning we spend more than 2200 hours a year on the job (eleven months of work, one month vacation), we should really make an effort to separate the wheat from the chaff by asking those important questions and find what's right for us.