Software engineer, software developer or just developer could be used in this doc.
You want to have a shallow breadth-first understanding of the candidate.
When doing an interview for entry level, i would be interested to understand
- General background
- Software engineering background or abilities at the present moment
- Software engineering vision or abilities in the future
Assumptions of
- one hour interview
- interviewer and interview candidate
Structure
- Introduction - 10 mins
- Understanding software engineering - now - 20-25 mins
- Understanding software engineering - future - 15-20 mins
- Candidate questions 10 mins
A general setup for the interview where to feel comfortable and set background for the two-ways conversation
Interviewer starts by
- introducing its individual context and within the organisation
- introducing the role from the individual aspect and within the wider org context.
Candidate to introduce in order to understand a bit of its background
Interviewer to remark the fact that is a two-ways communication channel.
Based on a candidates personal project, to understand
- from problem statement to solution
- development approach and practices
In practice that would translate into
From a personal project there are three main questions to walk
What is the problem that you are trying to solve ?
What are the features that you have developed to solve the problem ?
What are the steps that you have taken to develop a feature?
This question takes as an input one of the features that the candidate feels comfortable about and
What from the outside-in the different application layers. To determine the purpose
of each layer and their responsbilities.
For each layer you want to check understanding by layer on candidates. Assuming a 3-tier web application based on
- Experience / Frontend = HTML,CSS, JS/Js Framerowk
- Backend = any
- Data = any
You want to understand for Experience/Frontend layer
What is the HTML structure in place and some of the basic tags.
How styles are being managed and some feature like overrides or responsivess
How is dynamic behaviours is managed by JS or Framework. You want to understand user action lifecycle:
1. user does actions
2. which being captured by htlm element, javascript
3. executed frontend or backend logic
4. response reflected to user back
You want to understand for Backend layer
API Specification
Backend design
A request/response flow from backend perspective
You want to understand for Data layer
Specification and choice
Design
Based on the previous request/response flow the interaction with the database
Using a domain entity, CRUD-style actions reflected into the database
You want to understand given the previous project
Software collaboration practices around git by determining the lifecycle of a code change of a feature
Test-driven development exposure and feature acceptance
Collaboration and vision