This is the most common job title, and it can mean all sorts of things. Generally, these include: writing code, fixing bugs, writing tests for code, and participating in design discussions (usually technical design, but in smaller teams or senior roles it could be product design).
If the engineer has worked on a large software application, it is possible that they may be specialized in a particular area of that application: the back end, middle, or front.
Questions for Software Engineers:
- Q: What part of the system do you prefer to work in? Front, middle, or back? Why?
A: If someone is inexperienced or hasn’t worked on a sophisticated system, they may give a generic answer or tell you they can work in any part. While that may be true of some folks, most experienced engineers will have a preference and likely a strength in one.
- Q: What are the components of a great software development process?
A: Here, look for someone to mention things like product and technology definition, source control, build systems (continuous integration), deployments, along with testing, other quality measures, or documentation. There isn’t a right answer, but experienced engineers will definitely have opinions. If you aren’t sure of the response, ask about processes they didn’t care for and how they would have made them better.
- Q: What is the best way for people to collaborate on a complex coding project?
A: There are a lot of challenges when it comes to having two people work on the same piece of software. There can be conflicts in implementations (both people modifying the same code) or dependency issues (one person needs something from the other, but it hasn’t been built yet or needs to be built in tandem). Good candidates will have ideas and suggest things like clear definitions, lots of communication and pre-established interfaces.
Return to Tech Hiring Guide or get descriptions and interview questions for other tech roles: