What’s it like to interview at AirAsia for a Software Engineering role
Candidates have traditionally viewed interviews as an unpleasant and stressful experience. However, interactions during an interview are a clear way for a company and a candidate to see for themselves if they fit with each other. We think interviews can be a positive experience. In order to learn about the process and what's expected from a candidate, I will share my approach and describe in detail what’s it like to interview at AirAsia.
The Interview Process might differ a little based on the position you are applying for in the engineering department, but the following steps are common for all:
- Recruiter Call: During this initial call with a recruiter, you’ll learn more details about the role and your interview process. Be sure to ask any questions you might have. You might be given an online assessment at this point.
- Data Structures and Algorithmic Round: You will be asked to solve a general programming question involving data structures and algorithms that are used to solve problems in your day-to-day work. You will not be asked tricky questions or dynamic programming problems. We look for problem-solving skills that demonstrate your ability to tackle problems that you might encounter in your daily job. You can use whichever programming language you are most comfortable with. Normally, the question asked has several potential solutions, ranging from a naive, brute force approach to more optimal, elegant approaches. It tends to be one question, but you may be asked other questions if time allows. The goal is to test your practical skills used in everyday programming.
Here is the general format:
- Five minutes where interviewers introduce themselves and ask the candidate if they have any questions before starting
- One or two coding questions
- Five minutes where candidates may ask any additional questions about the role or AirAsia
Practice — Brush up on your CS fundamentals, data structures, and algorithms, and make sure you’ve practiced in your preferred programming language.
Think through the problem first: Do not jump into solving the problem. Spend your initial minutes thinking through the problem and discussing your approach with your interviewer. They may be able to point out issues or provide tips before you start coding. Only when you come up with a mutually agreed-upon algorithm, should you start coding. However, if you do decide later on to change your approach, that is ok.
Validation: Remember to validate your inputs and to ask the interviewer for their constraints or characteristics. Ideally, your solution should fail gracefully when invalid inputs are provided, or at the very least it should not yield incorrect results.
Production-ready code: While it is alright to start by wireframing your solution using pseudocode, you’re expected to be able to write your final solution in code that would run. Talking through your thought process might be a faster way to come up with a solution as compared to pseudo-code.
Runtime complexity: Be aware of the runtime complexity of your problem and be able to talk about it. Mention it to your interviewer when you’re describing your solution.
3. System Design Round: In this interview, you’ll be asked to design a technical solution to solve an open-ended problem. These problems are generally broad and may include some aspects of API design, online and offline (jobs) computation, communication with the web/mobile clients, client vs. server computation and storage decisions, database model design, database selection, local or distributed algorithms, code architecture, caching, scaling considerations, common architectures, or communication approaches (like push, pull, pubsub, etc).
- Clarify Requirements: Convert the broad open-ended question into a high-level goal and a set of requirements. Feel free to ask questions with the interviewer to clarify them.
- Brainstorm and Discuss Tradeoffs: Discuss the approaches that can be used to solve the problem. Clearly explain the pros and cons of the solutions and why would you choose one over the other. Think of scalability, single points of failure, monitoring considerations, and possible improvements.
4. Hiring Manager Round: The main goal of this round is to see how your values align with the company values. Questions related to your past experiences or behavioral questions shall be asked. This is a great opportunity for you to ask any questions you may have about the role, team, and life at AirAsia.
After the interviews, your recruiter will contact you in the days following, to discuss the outcome and feedback. If there was a match for the role (congrats!) they will let you know of the next steps, including compensation and specifics. We’ll then look forward to welcoming you on your first day at AASET (AirAsia Software Engineering and Technology)!