Our developers get interviews from time to time, and here is an interview experience of one of our full stack developers. She has been kind and supportive to provide us with her past experience, and this is what happened during her interview.
I recently went through 3 rounds of interviews with a company and these are my thoughts and notes from the process. I hope that this information proves useful in your own job search.
Foot in the door
The hardest part of finding a job these days seems to be even getting someone to look at your resume. There’s so much spam out there that your chances of getting past the initial screen is low. Try your hardest to leverage your connections. I found out about the job through a friend that worked at the company
Initial phone screen
The first round was a brief Google Meet call with video. As usual, do your best to have a quiet and professional setting. A softly blurred background seems to work well, and make sure that you are well groomed and presentable!
Here’s the topics that we touched on in the phone screen:
1. Self introduction: Included a brief education and employment history discussion
- It’s important to have a fluent and coherent life story ready. You should be able to clearly explain how you got to where you are and why you are qualified. Rehearse this story until you are able to tell it without stumbling over any parts of it or pausing to think about it. This is especially important if you are a self taught dev. You need to be able to tell your interviewer how you got from zero knowledge to proficiency. Don’t spend time talking about experience that is not explicitly related to your journey to proficiency.
2. Technical discussion: This is going to be highly dependent on the position you apply for, so make sure you do your research.
In my case, we touched on the following technical topics:
- Preferred tech stack and why.
- Experience with databases: What was my preferred type of database? Relational? Document based? What was the largest data set I’ve ever worked with? What was the most complex query I’ve worked with.
- Front end frameworks: Which framework did I have the most experience with?
- Languages: Was I proficient in Typescript? What language did I have the most experience working in?
- Backend tech: NodeJS environment, Express and Koa servers
- This is going to be highly dependent on the job you are applying for, so make sure you do your research.
3. Git: We had a fairly deep discussion around Git and Git workflow which was sparked by my questions about what their preferred workflow is. This is a great question to ask an interviewer and shows that you know how to work with standard tools like Git in a team environment.
We talked about the following topics:
- What is my preferred Git workflow?
- Am I comfortable working collaboratively in a Gitflow environment.
- Do I prefer merging or rebasing.
4. Soft skills: Standard behavioral questions, not specific to tech.
- What size of team do I prefer to work on
- Am I comfortable in a leadership role
The phone screen was supposed to be 15 minutes but the interviewer and I hit it off so we ended up chatting for almost 40 minutes.
Try to find common ground and connect with people. It happened that the interviewer and I both were interested in the same hobby, so we had something in common to connect us right away.
Technical Assessment
After the phone screen, I received an email from the company stating that they would like to proceed with a technical assessment.
They sent me a link to a Github repository with some instructions in a Readme and asked that I complete the assignment within two days. Their expected time to complete the assignment was 4 – 5 hours.
Without divulging exactly what the assignment was, it looked like this:
Full Stack Application
- Front end in React, using Vite
- Backend using NodeJS, your choice of server
- Redis database for caching queries
- Application must be dockerized and started with one docker compose up command.
The application had three pages, each of which fetched data from a 3rd party API and displayed it on a page. One of the pages had to be updated in real-time as data came in. All requests to the server had to be cached in Redis to limit the 3rd party API calls.
In total, I spent more than the 4 – 5 hours allotted because I was unfamiliar with the 3rd party API so I spent a couple of hours just playing around with that. The core of the project took me around the expected time however.
In person interview
After submitting my assignment I was invited to attend an in person interview. I was told that the interview would be around 1 to 1.5 hours and would consist of
- Discussion of my assignment and my thought processes while building it
- Technical Q&A. This would be a more in depth review of my technical understanding
- Behavioral questions
I arrived at the interview expecting one or two interviewers, but it turned out to be a panel interview including the COO and CEO. They decided to get everyone in at once so they wouldn’t have to have a fourth round afterward.
These situations can be intimidating, especially when you are surprised, my best advice is just to keep your cool and go with the flow. Try and get some laughs in at first to lighten everyone up.
The discussion went really well and I had a lot to talk about with the technical folks. What worked well for me here
- Admit when you don’t know something, or when you could have done something better.
- Try to lead your interviewer into topics that you are confident and excited about talking about. Try to be an active participant so that you can steer the discussion towards topics that you want to talk about.
- Demonstrate that you can take criticism and change your mind. My interviewer pointed out that I was using a websocket which allows for two way communication when I only needed one way, and server push might have been better. I jumped on it and let him know that I saw the value in that.
- Keep it light hearted. I am an awful visual designer, so I apologized profusely for making everyone’s eyes bleed when they looked at my project. It gets a few laughs and relaxes everyone. It’s fine to make jokes about not being competent about something that isn’t in your domain, but don’t make jokes about something that is in your domain. It would be a big mistake if I said my design looked bad because I don’t know how to use CSS effectively. It’s fine to say the design is bad because no one gave you a design to implement. You’re not a graphic designer, so it’s OK to claim incompetence here in a joking fashion!
The most important thing is to be honest about your skills and knowledge. An experienced developer is going to know if you’re exaggerating your experience so there really isn’t any point in doing so. Be confident about what you know and admit what you don’t know.
I won’t talk too much about the behavioral side of things, that’s common to any interview and you should be pretty familiar with those kinds of questions. Try to have some good answers for the common questions, like
- How did you resolve a conflict with a co-worker
- What size of team do you like to work with?
- What is your preferred management style
- What would you do if you had a deadline coming up that you don’t think you can meet?
Aftermath
The day after the interview the company made an offer, however in the end we couldn’t come to terms around remote work.
It was a disappointment, but sometimes things just don’t work out. It was good interview practice if nothing =else, and I made some great connections with the people there and we parted on good terms.
Keep your spirits up in your job search, no interview is ever wasted. I hope this information helps in your hunt!