Job interview

Hi, it’s been some time that I haven’t updated my blog. I have been busy but there isn’t much happening technically with my life to blog about. However, recently I have changed the job and I have this knowledge on going through job interviews process and while the knowledge is still warm in my head I thought I would blog about it.

This is my expereience finding a position as a Senior Software Engineer from my current position with the same title.

Where to start? Job website

There are many options out there but for me I have only used LinkedIn in past 7 years or so. Usually I don’t look for an opportunity but just choose from one of those opportunities that recruiter approached me.

The first thing I did on LinkedIn when I wanted to look for a new opportunity was to change this setting to show that you are open to work.

Once I have done that I received multiple messages a day. (like 25-30 messages a day).

Some recruiter will give you exact job spec and name of the company but some won’t. If you are interested in some opportunity, you can reply to the recruiter that you are interested. I ended up creating answers to faq coz I was asked different versions of same questions again and again from different recriuters. The questions that you will get asked this stage are –

  • Location for work, or remote
  • current salary
  • new salary expectation
  • notice period
  • current contract (e.g. permanent or contract)
  • if you are looking for contract or permanent
  • reason for leaving
  • your CV
  • your contact details.
  • technologies you have worked with and time.

Some recruiters will ask you a bit more about your work and current project that you’re working.

The very first converation you will have is with the recruiter. The recruiter can be internal recruiter that working for the company you will work for or external recruiter. The conversation will the recruiter will take about 30 minutes. If everything is fine, they will forward your CV to the company or companies that have the job vancencies.

What recruiter look for and what they don’t look for.

They don’t look at your education or certification (unless you are applying for junior or graduate position). They will mainly look at your current job and your previous job. They are not engineers so they don’t know how good you are. They will mainly based this on how long you have worked with a particular technology.

Second stage.

This stage is usually a short interview with the company. This will be your first interview with the company and the questions will be mostly based around you. There can be some questions on overview of technologies that you have worked with and also some cultural questions. This interview can table between 30-60 minutes.

The questions that you will get asked this stage are –

  • Tell me about yourself.
  • Tell me about our company.
  • Why did you apply this job.
  • Tell me about your current project
  • Tell me about your team
  • Tell me about your agile process
  • Tell me about the technologies you have worked with
  • Tell me about the technologies you have enjoyed working with.

These questions may not look difficult but sometimes it’s difficult to give a good answer. You should prepare those questions thoroughly and prepare a very good answer because the chance of getting asked one or more of those questions are very high.

Third stage.

This stage can be varied. It can be a take home technical task or test. Or it can be a technical interview. Or both. Technical interview can include live coding or code review task. Depends on the company, you are likely to be asked one or more of the following categories.

  • Computer fundamental (data structures, algorithms, memory)
  • Programming language (javascript, typescript, C#, etc)
  • Framework related (.Net framework, Angular, React, Nodejs, etc)
  • Design patterns and principles (strategy pattern, SOLID principles, etc)
  • System design & Performance
  • Cloud (AWS, etc)
  • databases & query language (e.g. SQL).
  • TDD and automated testing.

Sample questions.

  • What is linked list?
  • Which one of linked list, hash table and binary tree is most efficient
  • OOP principles.
  • what is a pure function (JS)
  • what is recrusive function (functional programming)
  • how do you return multiple items from a function (C#)
  • what is event loop (Nodejs)
  • how do you create a cluster (Nodejs)
  • What is REST?
  • how would you rename a column without down time?
  • do you do TDD?
  • tell me types of testing that you do in your company?

This stage is super difficult to prepare as the questions and tasks you will get can be varied depends on the job, company and expereience and background of the interviewers.

Consider super lucky if someone ask you ‘what are SOLID principles?’. You have to have very good answer ready to give if you are asked this questions as it’s super common. It’s also very common to get a lot of questions around testing and test automation. (including TDD).

Practice creating a new project as this may not be what you do everyday. You may have to create a new project, create a test project, and show how you do TDD.

Strangely, I wasn’t asked about the following things. I guess for most company, those are for DevOps engineers and not part of the role for Software Engineer.

  • Security
  • Docker
  • Linux

Final stage

Final stage is usually cultural interview with scrum master, dev lead or product owner. Depends on the role of the interviewer, the questions can varied.

Sample questions.

  • tell me about your agile team
  • what is your ideal agile team
  • where do you see yourself in 5 years
  • where do you get the requirement
  • what’s your day to day looks like

The questions that you should ask if you were given a chance in an interview

  • About the role (e.g. what kind of tasks I will be mostly working on?)
  • technologies and frameworks
  • architecture
  • cloud service (e.g. AWS or Azure or others)
  • on call or out of hour support
  • number of days in the office a month or remote (if applicable)

Leave a comment