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:

  1. A lot happened at SWVL after that - they went public on Nasdaq, and then laid off 35% of their workforce.
  2. 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:

  1. HR assessment
  2. Technical 1: Multiple Choice Questions + Simple Problem Solving
  3. Meeting with Engineering Manager
  4. 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:

  1. How do you learn new things?
  2. 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:

  1. Dynamic Dispatching vs Static Dispatching
  2. Synchronous execution vs Asynchronous execution
  3. SOLID Principles
  4. How to detect keyboard appearance/disappearance
  5. How to store an object in UserDefaults
  6. Memory leak in Classes / Deinit call
  7. Set data structure
  8. Passing values to functions by inout
  9. Value capturing

The Technical Challenge


Have the function StarRating(str) take the str parameter 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:

  1. How do you deal with conflicts?
  2. What do you know about AGILE?
  3. What do you love about SWVL B2B?
  4. 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:

  1. 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.

  2. 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.

  3. 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.