This is the process I went through whilst looking for a new Senior Developer position in London. I hope this helps other job seekers better prepare themselves.
Company A
1st Stage – Telephone Interview (30 mins)
General chat with the director about what the company does and where it’s headed. Looking to see I thought I would be a good fit.
2nd Stage – Practical Test (3-4hrs)
Create a basic web application using web forms, linq to sql and jquery ui. This assignment was sent by email and could be completed at home, so no time limit really. The project requirements was to create a page with a text field (Name of company) and 3 dropdowns (Speciality, Category and Location). When users type a name in the textbox, jquery autocomplete should be leveraged to suggest names of companies already in the database. Results should be displayed filtered by all 4 fields if specified. A sample data in spreadsheet format was sent but it was not normalised and a either a backup of the database or script to recreate it was asked.
Here the employer is looking for good coding skills and a layered project solution (Web, Data and Business layers).
Third Stage – Face to Face Interview (1hr30)
This was done at their office in Chiswick. I met the IT Director who asked a couple of questions about the things I’ve put on my CV and what I thought about the project I had to do, then was questioned by a Senior Dev about these:
1. Whether I’ve created a jQuery plugin before (and how)
2. My experience with Unit Testing
3. A couple of other technical questions which didn’t require much thought
Then I met the CTO again for a brief talk and the most important question there was what I would bring to the company.
Result
I didn’t get the job. They said I had strong technical skills but didn’t show much interest in the company.
Company B
1st Stage – Technical Test (1hr23)
I was asked to do an IKM (International Knowledge Measurement) .NET WEB DEV test. To be considered for the role, you need to get 90% and above. IKM tests are multiple choice questions with 1 or more correct answers. You cannot skip a question and come back to it and for each wrong answer, you are penalised more than if you don’t answer it (this is to prevent guesses I think). There were 33 questions to be answered in 83 minutes and before the test, it mentioned that on average people take 39 minutes to complete this.
Some of the questions which were asked are:
1. Which attribute flag to use for bitwise operator (i didn’t know, never used it in my life!)
2. try catch block code segments, which were correct
3. MVC routing
4. Code segments containing interfaces and classes, find out the output
5. Custom exceptions in .net
Although I scored 86%, the company still wanted to see me.
2nd Stage – Technical Interview with Technical Architect and Product Manager (1hr30)
I was asked 2 main technical questions – my understanding of SOLID principles and how I would go about designing a system. The requirements were that a short blog post (140 characters) will be submitted by multiple registered users of the company and this had to be displayed back to on the front end bearing in mind this is a high traffic website.
What was important here is to mention that the first time the page is requested, it will be cached until another post is submitted by someone else. Then on the front end, to use something like SignalR or another polling method to update the post widget with the latest items.
Result
I didn’t get this one either because they didn’t think I would be a good fit for their company and I didn’t know much about their products and services. They said I had strong technical skills though.
Company C
1st Stage – Telephone Interview (30 mins)
Basic introduction to the company and lots of technical questions as follows:
1. Choose two programming languages and talk about the differences – they wanted a client side scripting language like JavaScript and server side language like C#
2. What does .net code get compile to and what is used at runtime (code gets compiled to MSIL and at runtime it’s machine language)
3. What is a transaction in database terms? (going from one consistent state to another)
4. Properties of database transactions (ACID properties)
2nd Stage – Face to Face Technical Interview (1hr)
This was meant to be 1hr but lasted for 3hrs!!! There was a 15 mins presentation of the company, what it does etc. Then oral questions:
1. Explain the Garbage Collector (you should talk about Generation 0/1/2 and that it is non-deterministic)
2. What is IDisposable and what pattern uses this (when using the “using” keyword)
3. What is multi-threading
4. How to avoid a deadlock
5. Difference between the out and ref parameters when passing a value/reference type
Then technical exercises:
1. A program was written on paper that does string manipulation (tokenisation) and you had to tell the output. It was using indexOf and SubString but since there was a do-while loop, you had to calculate values of all local variables on paper. It turned out the interviewer had an initial string of “This is Value1” and you were looking for the word “is” and you would miss out that the first occurrence of “is” would be in “This”.
2. Following on the previous exercise, I was asked how I was going to rewrite the program by using recursive calls to the method and I was only allowed to modify certain sections of the code, not everything.
3. On paper, a set of tables was shown and I was asked how to make it better (had to normalise them)
4. A database schema was shown and i was asked to write SQL queries for inner joins, left joins, group by on paper.
5. There was also a Psychometric test (aptitude) where I was given increasing levels of difficulty to solving a certain mechanism they use for their product.
This was followed by a chat with one of the managers, whereby he wanted me to talk more about the technical stuff I’ve done in my previous jobs (technology used, why and how) and then questions about why I wanted to join their company.
Result
This was one of the hardest interviews I’ve had and I thought it was going to be just 1hr, not 3hrs!!! It was absolute torture and I wanted to just leave in the middle of the interview but I gave it my best shot anyway. I know I didn’t do well but if the interview was that hard, I don’t think I want to work there and have my stress levels jump through the roof everyday. I also have a life outside work and I’d rather take a pay cut than become a zombie. I was later informed I didn’t get the job.
Good luck if you’re seeking a new opportunity!
UPDATE
I had two other interviews after those and got job offers for both. I took up one of them and I’m very happy with the salary and the job I’m doing 🙂