Senior Developer Interviews

I'm a "senior software engineer" at least according to my current employer, and I routinely interview a lot of potential senior software engineers and some potential architects.

Not sure what you're doing wrong necessarily, but I'll tell you what I look for when I conduct interviews (in no particular order):

  1. This one applies to all engineers really, but is worth mentioning as it's extremely important, more important than some people think: you must be a nice, down to earth, reasonable, and honest person. I say honest because you need to be able to admit fault when it counts, and no one wants to work for someone who is full of themselves or refuses to accept criticism. From personal experience: I've worked for a guy that was full of himself, unable to admit fault, and unable to accept criticism. He blamed everything on everyone else even when he created the problem everyone else was having. Basically, it was terrible and demotivating, so I make sure to never recommend anyone to be hired who even remotely reminds me of him.

  2. Must have very strong software design skills and be detail oriented. You should be able to pick out "code smells" easily and recommend a reasonable solution to get rid of the problems. To test this, I typically give the candidate some sample code that is obviously poorly written (static classes everywhere/hard to unit test, unmanaged resources not being disposed properly, arguments to methods are unchecked, etc.). I then ask the candidate to read over the code and make any improvements or changes they think are necessary. Another part of this is where we ask the candidate to bring in some code that they're proud of and explain it to the team.

  3. Must understand the tradeoffs between different styles of architecture. When would you use microservices vs. the approach of having a large, monolithic app? How does the approach you choose affect deployment? How do you manage authentication? How do you scale out the app/what challenges have you faced in the past?

  4. CS fundamentals. I have the candidate code out solutions (on a laptop, not a whiteboard) to a couple problems where the optimal solutions involve hash tables and basic graph theory (BFS/DFS) respectively. I have the candidate write unit tests for their solutions if they don't volunteer this themselves (which they should...)

/r/cscareerquestions Thread