Skip to content

Latest commit

 

History

History
161 lines (100 loc) · 3.41 KB

entry-software-engineer.md

File metadata and controls

161 lines (100 loc) · 3.41 KB

Entry-level software engineer interview - WIP

Software engineer, software developer or just developer could be used in this doc.

Why

You want to have a shallow breadth-first understanding of the candidate.

What

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

How - Anatomy of an interview

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

Introduction

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.

Understanding Software Engineering Now

Based on a candidates personal project, to understand

  • from problem statement to solution
  • development approach and practices

In practice that would translate into

Question 1: From problem statement to solution

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?

Question 2: Coding in practice by candidate known example

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 

Question 3: Development practices

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 

Understanding Software Engineering Future

Collaboration and vision