Technical Interviews - SWVL
When I applied to SWVL
I applied to SWVL at the end of 2021, and the interview process started in January/February. The timing matters for two reasons:
- A lot happened at SWVL after that - they went public on Nasdaq, and then laid off 35% of their workforce.
- I’m writing this in June, about 5 months after applying. I’m working from notes I kept, but I may have forgotten some details.
How I applied
I applied through their website after seeing a tweet from engineer Mohamed Hany.
I genuinely respect him a lot, and I’m grateful to him - that’ll be clear throughout the post.
Who is SWVL
SWVL is a mass-transit company that started in Egypt, then moved to Dubai. There used to be complaints about the work environment at SWVL, but from what I heard things had improved.
Interview process overview
The iOS interview process at SWVL was:
- HR assessment
- Technical 1: Multiple Choice Questions + Simple Problem Solving
- Meeting with Engineering Manager
- Technical 2: With iOS Team, Swift
The HR call
On February 2nd I got an email from HR to schedule the interview - it was on a Friday afternoon.
The HR person was Ali Imam. Since he was from Pakistan, the interview was in English.
Questions included:
- How do you learn new things?
- How do you deal with conflicts?
Overall it was a pleasant call - no video because the internet on both ends was a bit shaky. Afterward he walked me through the interview stages and sent me a link to the assessment shortly after.
The Swift/iOS Assessment
The second stage was a link to a Swift/iOS exam.
The questions covered most Swift and programming fundamentals.
The multiple choice questions covered:
- Dynamic Dispatching vs Static Dispatching
- Synchronous execution vs Asynchronous execution
- SOLID Principles
- How to detect keyboard appearance/disappearance
- How to store an object in UserDefaults
- Memory leak in Classes / Deinit call
- Set data structure
- Passing values to functions by
inout - Value capturing
The Technical Challenge
Have the function
StarRating(str)take thestrparameter being passed which will be an average rating between 0.00 and 5.00, and convert this rating into a list of 5 image names to be displayed in a user interface to represent the rating as a list of stars and half stars. Ratings should be rounded up to the nearest half. There are 3 image file names available: “full.jpg”, “half.jpg”, “empty.jpg”. The output will be the name of the 5 images (without the extension), from left to right, separated by spaces. For example: if str is “2.36” then your program should return the string “full full half empty empty”.
Result of the first assessment
I passed, and the next step was a meeting with the Engineering Manager - Mohamed Hany himself. He’s genuinely a great person. I learned a lot from him.
Meeting with the EM at SWVL
The meeting was really enjoyable and relaxed - more of a conversation than a formal interview. It included questions like:
- How do you deal with conflicts?
- What do you know about AGILE?
- What do you love about SWVL B2B?
- Tell me about something hard you’ve worked on solving.
He also listened to my questions. Overall I felt the feedback was very positive from how we connected - but the final result was a rejection. Why?
Why I was rejected
I won’t pretend it didn’t sting. Especially since the call felt like it went well. I reached out to Mohamed Hany and asked for feedback - because I knew it would help me in future interviews. He called me and shared his perspective:
-
In most of my answers, I kept talking about one specific domain (Computer Graphics applications) or one specific branch of programming. This gave the impression that I didn’t have breadth across iOS in general. From my perspective, I was bringing it up because it’s a complex and hard area - so if I could handle that, I should be fine elsewhere. But from his perspective, it was better to showcase a wider variety of things I’d worked on to demonstrate range. This was something I started doing in every interview after.
-
I needed to work on projects that impacted more people and had real users. The startup I was at hadn’t released their app publicly, and the projects I’d worked on before didn’t have thousands of users. For a company the size of SWVL, they wanted someone experienced working on apps with large user bases. He also suggested I start looking at other companies - this was honestly the first time someone had directly told me I should be exploring other opportunities. I’d been at my company for a year and two months. Good advice that I’m grateful for.
-
My years of experience were less than what they needed.
He did mention that he felt if I’d made it to the technical interview, I probably would have passed.
What I took away
A lot. The feedback from Mohamed clarified things I wasn’t thinking about. It was also my first time doing a multiple-choice iOS interview - and I think I got everything right, but my problem-solving wasn’t optimized. And I realized more clearly what an EM thinks about when interviewing someone.
All of this genuinely helped me in the interview I did after this - with Google.
Sharing this experience is my way of helping anyone who needs to understand how things actually work - because I didn’t know, and I always wished someone would talk about it openly.