Urban Company | Platform Engineer | Sep 2020 [Ghost] | Gurgaon

urban company logo
urban company
Platform EngineerGurgaonRejected
November 7, 202023 reads

Summary

I interviewed for a Platform Engineer role at Urban Company, which involved multiple rounds focused on Data Structures & Algorithms and System Design. Despite completing all rounds and solving several complex problems, I experienced significant scheduling issues and ultimately received no follow-up from the company, which I found unprofessional.

Full Experience

One of the senior-most engineers at Urban Company reached out to me on LinkedIn, asking about my immediate availability for interviews the following Saturday. I requested to reschedule for the Saturday after, but they mentioned no panel would be available then. I agreed to give at least two rounds, primarily focusing on Data Structures and Algorithms.

Round 1

The recruiter initially sent me an invitation for a 10:30 AM slot on Saturday. However, just 15 minutes before the scheduled interview, I received a call informing me that the interviewer was sick and we needed to reschedule. Later, the recruiter got back to me with a new slot: 11:45 AM-12:45 PM.

The interviewer was helpful. We discussed two standard LeetCode medium questions. I had to write functions, and we covered standard complexity analysis and test case discussions.

Question 1:

I was given an input string containing [a-z] and # characters. The # character had two possible functionalities:

  1. As a backspace keystroke: it removes itself and the character to its left.
  2. As a no-keystroke: it just removes itself without affecting other characters.

The task was to output all possible string outputs based on these functionalities. For example, for ab#c, the possible outputs were [ac, abc].

#include<bits/stdc++.h>
using namespace std;

vector<string> ans;

void solve(int ind, string inp, string res) { if(ind == inp.size()) { ans.push_back(res); return; } if(inp[ind] != '#') solve(ind + 1, inp, res + inp[ind]); else { // inp[ind] = # solve(ind + 1, inp, res); // doing nothing if(res != "") solve(ind + 1, inp, res.substr(0, res.size()-1)); // acting as a backspace } }

int main() { string inp; //input string inp = "ab#c"; solve(0, inp, ""); // corrected function call }

Question 2:

I was asked a question related to Binary Tree Maximum Path Sum (LeetCode 124).

Round 2

After my first round, I immediately received an invitation for the next round, scheduled just 30 minutes later from 1:15 PM-2:15 PM. Shortly after, I got another email stating this invite was canceled, followed by yet another email for the same time slot but with a different interviewer. Then, within the next 10 minutes, this invite was also canceled without any further updates.

At 1:46 PM, I received a fifth invite for that day, scheduling my next round from 2:30 PM-3:30 PM. Until 2:29 PM, I honestly wasn't sure if this round would even happen.

The interviewer was friendly, but this time, he didn't provide any online editor link, so I had to write all my code on Google Docs. He asked me two questions and expected proper code, test cases, complexity analysis, and areas for improvement. He specifically asked me to think in terms of API calls rather than asymptotic complexity.

The questions were:

Round 3

The third round was scheduled for the following Tuesday with the senior person who initially reached out to me on LinkedIn. We primarily discussed two questions:

  • Design a URL shortener.
  • Sort a large file with limited memory (something like sorting a 10GB file with only 1GB RAM).

That concluded my interview process. I emailed the recruiter for an update on my candidature but received no response. I also pinged the senior person on LinkedIn; he viewed my messages but provided no reply. My two cents to Urban Company: before focusing on hiring new people, strive to be a professional organization. Only then should you think about growth and bringing in new talent. The management was very poor, and the behavior was highly unprofessional. I might have been rejected, or the position might be on hold, but they should at least have the professionalism to respond and inform candidates about their status. I would rather work for a professional organization with less salary than an unprofessional one with better pay.

Interview Questions (7)

Q1
Backspace String Combinations
Data Structures & AlgorithmsMedium

Input string containing [a-z], # characters. # has two functionalities: 1. backspace keystroke - removes itself and a char of left 2. no keystroke - removes itself. Output all possible string outputs. Example: ab#c -> [ac, abc]

Q2
Binary Tree Maximum Path Sum
Data Structures & AlgorithmsHard

Calculate the maximum path sum in a binary tree.

Q3
Jump Game
Data Structures & AlgorithmsMedium

Given an array of non-negative integers nums, you are initially positioned at the first index, and each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index.

Q4
Jump Game II
Data Structures & AlgorithmsMedium

Given an array of non-negative integers nums, you are initially positioned at the first index, and each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps.

Q5
Longest Substring Without Repeating Characters
Data Structures & AlgorithmsMedium

Given a string s, find the length of the longest substring without repeating characters. The interviewer also asked me to print the string as well.

Q6
Design a URL Shortener
System Design

Design a URL shortener system.

Q7
Sort Large File with Limited Memory
System Design

Sort a large file with limited memory (e.g., sort 10GB file with 1GB RAM).

Preparation Tips

The post does not explicitly state how I prepared, but the questions covered suggest a strong foundation in Data Structures and Algorithms, particularly dynamic programming and graph/tree problems, along with experience in System Design principles, would be essential.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!