You may encounter various interview formats in your tech interviews (from early to late stage) with Singapore companies.
Online Coding Assessments
Online Coding Assessments (OA) are given early in the recruiting process. Big companies that receive a lot of applications use this to filter candidates. OAs are usually done through platform such as Hackerrank, Codility, CodeSignal (the last one is common for US companies). Questions can range from multiple-choice questions algorithm problems. or software engineering challenges.
We'll discuss each of the questions below.
Multiple Choice Questions (MCQ)
MCQs are usually reserved to test for questions that have short answers. They can range widely: from frontend concepts, e.g. HTML, DOM, React fundamentals, HTTP, to backend concepts, e.g. OOP, SQL, networking, database, C pseudocode, to security related questions like HTTP attacks and SQL injection. They might be very different depending on the role you are applying for.
- What libc call is primarily used to drop privileges? (setuid)
- Which of the following is not part of SOLID principle?
- Find this element using DOM traversal.
This is by far the most common challenge you'll find in OAs. They generally consist of 1-4 easy-to-medium level problems with increasing difficulty. There are exceptions: some companies might replace replace 1 or more of the algorithm problems with a software engineering challenge or MCQs.
LeetCode is a good place to practice the problem solving aspects of online coding assessments. However, depending on the platform the OA is given in, you might be expected to write code that read inputs from stdin and print outputs to stdout in an expected format. This can trip you up if you aren't familiar with your chosen language's APIs.
OA platforms often give a sample mock test. Although the problem difficulty is never representative, it is best to try them to familiarize with the coding environment and to check if you need to write IO code.
Software Engineering Challenges
Software Engineering Challenges are typically given as a set of requirements that you need to fulfill. The algorithms involved are typically trivial, but tedious. Stripe is well known to replace algorithm questions with these type of questions in their online assessment. An example of a software engineering challenge might involve parsing a list of transaction codes involving different currencies and output the final amount for each currency. The business requirements are given as part of the challenge.
Short Questions / Brain Teasers
Short Questions are usually structured questions that have clear answers. If they exist, they are typically asked in HR round. Some companies, e.g. Virtu, asks a version of short questions: brain teasers. These questions are meant to filter out weak (or even non-technical) candidates.
What is a data structure that have O(1) insert and O(1) lookup? Answer: hash table What is the time complexity of merge sort? Answer: O(nlogn)
HR Interviews typically seeks to get more information from you, e.g. whether you currently have a competing offer at hand, whether you need a visa sponsorship, when you graduate, whether you have a work bond, why you want to work at this company etc. Depending on your answers, they might speed up the recruitment process or reject you outright (e.g. if they don't sponsor work visa). They might also be looking out for potential cultural misfit.
This round is generally light and not something to stress about as recruiters will work with you (their job is to recruit the best talents!). As long as you have read up a bit on the company and know what the company is doing, you're good to go.
Take Home Assignment
Much has been made whether asking algorithm questions are a good way of assessing a candidate abilities as they aren't exactly the most relevant skills needed on a day-to-day basis at a job. Take home assignment is a format designed to address these shortcomings. Candidates are asked to work on larger projects which allow them to showcase their software design skills.
However, this interview format takes up more time from both the candidates and the company and hence it is rarely seen in large companies where they have a huge number of candidates. A time-boxed version of take home assignment I've seen is giving the candidate 3 hours to solve a problem (that is emailed just before), and then asking them to explain their solution to an engineer right after the 3 hours.
Phone screen interviews
Phone interviews are by far the most common interview format. For bigger companies, you can expect about 2-3 rounds of phone screen interviews with different engineers. This is typically to gain more diverse feedback about you and to reduce bias in hiring.
In phone interviews, you will be asked to speak with an engineer over a phone call (Google Meet, Zoom). After a short initial "tell me about yourself" section, a question will be given to you and you will work on that question using an online collaborative editor (CoderPad/CodePen/Google Docs/Hackerrank). This interview typically lasts 45 minutes to 1 hour. The question can be an algorithm problem or a short software engineering challenge. After the coding section, the interviewer might ask a few general-CS-knowledge questions and ask if you have any questions for them.
Check out our coding interview best practices as well for do's and don'ts before your phone screen interviews.
Onsites are usually the final stage before an offer decision. Candidates who made it to the onsite stage will be required to have an in-person interview at the office. Although this format is not so common for Singapore companies during COVID times, but a few companies are back to doing it again.
The onsite stage usually consists of multiple rounds (coding, system design, behavioral) and is expected to last for a few hours. Since you are onsite, it is possible that you will be asked to do a whiteboard exercise with an interviewer, usually either solving an algorithm question or a system design question.
Note that some SMEs might only have a single onsite which consist of talking with an engineer and the hiring manager.
Hiring Manager Interview
If you've reached this stage, congratulations! This is usually the final stage before an offer decision in bigger companies. Although some companies put coding questions in this round, that's generally not the case. Hiring managers interviews are for the manager to get to know you before deciding whether to hire. The person you're talking to is typically the manager you'll work with when you get into the company. So, they tend to ask you questions that assess your cultural fit with the company and their team.
For example, hiring managers might ask:
- Tell me about your most challenging project. Why is that challenging?
- Tell me a time when you handled conflict in the past. What causes it? How do you resolve it?
- Tell me your strength and weaknesses.