Your first interview as a software engineer
Tags: interview, softwareengineering, undergraduate, opinion
Published: 2017-04-04 11:51:58

---
title: Your first interview as a software engineer
published: true
description: A collection of musings from a developer who has been on both sides of the fence in the last 5 years
cover_image: https://thepracticaldev.s3.amazonaws.com/i/qrndxv5odjbl7v23za4c.png
tags: interview, software engineering, undergraduate, opinion
---

> Just a note this piece is pretty subjective based on my experience and this is going to be a pretty long read!

So you have spent ages writing and perfecting your CV (or resume), sent to every recruitment agency or company out there and finally you have peaked some interest and have been called for your first interview. Woo it is time to show them what you got!

Now the real challenge begins...

## The phone interview

Sometimes you may be asked to participate in a phone interview, normally this is for the hiring manager/interviewer to gauge whether or not it is worth inviting the candidate for a face to face interview, it is also important for you as the candidate to get a feel of the company. Sometimes this is with a technical person such as the head of developer or this can be someone from Human resources, it really depends on the company. 

If it is someone from HR, questions will be mostly personal questions such as whether you can legally work in the country? Some history about your work and then general questions about your CV. 

However...

![alt text](https://thepracticaldev.s3.amazonaws.com/i/pn2iogk10dqd2tbnlhjt.jpg "Phone interview")


It if it is someone that is a bit more technical it can change somewhat, I have been asked a multitude of things and to list them out here would be trivial so I would go through some common examples i have encountered. 

### Do you understand [x] technology?

Be honest about this one, sometimes a hiring manager might want to see if there is something you may have missed on your CV, sometimes they are trying to gauge your interest in said technology. Never blankly say "Yes" to everything, this gives the wrong impression to hiring manager, they assume 'Oh great they know this technology', they may even ask some follow up questions, back tracking or not answering them correctly might swiftly end the call for the worse. 

If you don't know the technology, just come out with it, sometimes if I haven't heard of technology I may ask the hiring manager about it. 


### The brain teaser...

I personally don't advocate these but I have been asked a whole range of these, some are there to perhaps help the interviewer gauge if the candidate thinks logically, see how they handle the question, there are so many arguments for and against these. Best way to answer these, is think about the problem first, attempt a solution, sometimes if the interviewer is generous they may throw some hints, don't be disheartened if you don't get it. 

### Language/stack specific 

These may be simple questions that require one line answers, they are seldom something you have to explain in depth or know the inner workings of. For example I work predominately in the .Net stack, so questions I was asked in my first phone interviews were "How do you initialise a string in C#?", "What is the difference between a List and an IEnumerable?" or "Why would I use a decimal over an integer in a certain situation". 

Make sure you research technologies carefully before the interview, make sure you look at what the company uses, if they use Typescript, try and get a basic understanding of Typescript. Also never make up an answer or try guessing what the interviewer wants to here, this indicates to the interviewer that you would rather lie than look up the answer. If you don't know, just plainly say you don't know and research it when you finish the interview. 

### Some red flags

Sometimes you can gauge a company the way interviewer speaks to you, I once was on the phone for an interview for a graduate developer position at a university. The interviewer was friendly and polite but they really did not seem bothered about my answers to their questions. I got things back like "That's nice...", "How quaint", no real feedback to my answers. I was invited for a face to face interview but told them forget it, I wasn't interested. I might have acted rashly but I didn't feel they were genuinely, I was just a filler candidate. 

Another phone interview I once had was with a government department and again the interviewer was polite and fairly friendly but asked me about my ethnicity, I said I was born in England but my parents were from Pakistan. The interviewer fired back with "that won't do! We thought you were from elsewhere" I replied with excuse me? shocked at the remark, I carried on with the interview as much as I could. I wish I reported the interviewer now but to me that signals a hostile environment that invites racism of some order. 

## The face to face interview

Sometimes you may go straight to an interview, it can be in many stages and normally there will be technical person there almost most of the time, maybe a HR person and someone from management, it varies from company to company. 

When entering the building be polite to whoever you meet, they may be interviewing you or have influence whether your hired or not. I once held the door for a guy dressed in jeans and ripped t-shirt exiting the building where I was going to have an interview and he turned out to be the CEO of the firm. 

You will be most likely met by a receptionist or someone from HR, who will direct you to a waiting room or in some cases the interview room, they may offer you water. Again be polite, make conversation if you can, sometimes useful information about the company might be gained this way. 

![alt text](https://thepracticaldev.s3.amazonaws.com/i/ujtu7ys2p6geyi28ofn3.png "Be Polite for God's sake")

### Meeting the interviewers

Depending on what country you are in, this may vary, here in Britain we would stand up, look the interviewer in the eye and shake their hand with confidence but wherever country you are interviewing in, look up local customs and adhere to them. 

Often the interviewers would try and break the ice, so questions I have asked to candidates in the past are "So how was the journey here?", "So how far did you travel from?" or the conventional "How are you today?" 

Answer how you would normally, don't be profane whatever you do, yes I once had a candidate who actually swore in their opening sentence. This can be a death sentence as it raises red flags, as is this how they may behave when meeting clients or other staff who may be sensitive to profanity. 


### Questions about the company

The interviewers will ask you questions about the company, this is purely to ascertain how interested you are in the company. So before going to the interview make sure you know some basics about the company, like what sector are they in? Maybe some notable achievements. Most companies these days have websites or at least Googlable information. Do your research!

### Technical Section

I covered some of this in the phone interview but you may get asked some run of the mill questions about the language/technology you will use. Then sometimes you will get to present a solution to a problem... Oh goody! 

Make sure you understand the problem, if you don't understand or are unclear, don't be afraid to ask. Sometimes the interviewer may not explain it clearly or it may be something you are unsure of. Make an attempt to engineer a solution and optimise at the end. Don't be afraid to say what you could have done better if you had more time. 

You may get a coding test... these can be anything from make these unit tests pass to engineer a whole application to process documents. My only advice is make sure you know the stack, don't be afraid to Google or ask the interviewer if they are technical. Most places won't expect a finished all dancing solution, they want to see you preform under pressure and time conditions. 

### Bring your portfolio

When I was interviewing for my first coding position, I was told by my older brother who was a developer back then to start coding in my free time. I created a few phone applications for the then new Windows phone platform. I brought them with me on my clunky laptop, I made sure the whole thing was loaded up with an IDE window showing my code and a emulator window showing my application, I put my laptop in Suspend mode, so it was all ready to show when it was time. 

The code was not perfect, in fact it was horrible to look at, the application was buggy and amateurish but when the development manager went through the application and looked at my code, asked me a few questions around what certain lines did. They were impressed that I actually went through the effort of putting this demo together in a new (at the time) technology, I got the job in the end. 

You may get challenged about your code, this is not subjective, this purely to see how you would handle reviews of your code. Don't get offended or spout off some opinion, answer politely, think of good reasons why you wrote in that way, sometimes it may be right to accept the challenge and simple say it sounds good I will get to it tonight or something along those lines. 

![alt text](https://thepracticaldev.s3.amazonaws.com/i/c77k8gozy25q3ov1sblb.jpg "Don't despair")

## Don't give up

Always get feedback from the interviewer if you can and learn from any mistakes you may have made. Also sometimes it may be the interviewer felt you weren't a good fit or something else. Think of the interview as a learning experience, not many people get it on their first interview, it took me around 10 interviews before I finally got a job. 

## In conclusion...

This is aimed for people looking for their first programming job out of school/university and is largely based on my experience as graduate software engineer and when I had to hire from a graduate pool at a former company. A lot of it is based around the UK, so some of this information may not apply to you. Any comments or even thoughts around this, please comment below...