ok so i got 47 texts from Marcus in one week about my Uber software engineer interview prep. forty seven. i read maybe three of them. bombed the interview. two out of four rounds, total faceplant. Marcus if you are reading this: yes. i know. you told me so. you can stop.
quick context on Marcus — he interned at Uber summer 2024 on Eats infrastructure, the summer they restructured the dispatch team. so when he texts me at 11pm going "study the product Ibrahim" and "look at how dispatch works" and "read about surge pricing" he actually knows what he is talking about. like genuinely knows. and he formatted his iMessages with bullet points? who does that lol. Marcus does.
anyway what was i doing while ignoring these texts? sitting in bed at 2am with cold pepperoni dominos on my lap. $7.99 medium deal. ordered so many that week Dominos was sending me push notifications at 1am like hey Ibrahim you hungry? (yes. always.) grinding LeetCode mediums. eyes crossed. a hundred twenty problems in three weeks and ZERO Uber blog posts read. zero time in the app thinking about matching. never googled "how does Uber dispatch" which takes four seconds. i prepped arrays, trees, linked lists, DP. that was it. that was the whole plan and it was a terrible plan.
i show up to the SF office and i am already shaking. Priya warned me about this too by the way. Priya is my friend from college (well, my college roommate's girlfriend originally, now one of my closest friends, life is weird). she always says she walks into interviews trying to learn stuff not trying to get hired. and i remember going ok Priya that is a cute philosophy but i need a JOB. turns out she was right? yeah. she was right. when you need an offer that badly your brain just locks up. you forget words that you use every day. your whiteboard handwriting looks like you are having a medical event. sorry Priya. you were right. i owe you dinner.
behavioral round destroyed me. i had this actually good story about optimizing API response times at my last company. i swapped out the entire message queue, real measurable speedup. my interviewer goes "what metric moved" and i say "significantly." and she just. stares at me. dead silence for like three seconds. "by how much." and i am sitting there doing mental math trying to remember P99 latency numbers i never wrote down because apparently past me hated future me. Marcus told me this exact thing would happen. he said Uber interviewers want you to say stuff like "i cut P99 from 340ms to 90ms after swapping RabbitMQ for Kafka" and i showed up with "i made things faster." great job Ibrahim. they also tie every behavioral question back to their company values, trip obsessed and go get it and build with heart, and i found this out DURING the interview because i did not read the careers page lol.
biggest thing i learned from that round. WRITE YOUR NUMBERS DOWN. i cannot stress this enough. before you walk in, just go through old projects. sit there for twenty minutes. what moved. by how much. why you picked Kafka over RabbitMQ or whatever. get it on paper. a sticky note, a napkin, i do not care. because here is what happens if you don't: you blank. your interviewer asks "what metric moved" and you say "significantly" and then there is three seconds of just. nothing. and you both know it. do not make stuff up either. they will push on every number and you will get caught in like two follow ups. i tried the STAR method. did nothing for me honestly. maybe it works for other people. i had real stories, good ones even, i just could not pull the details out of my head while someone stared at me. so yeah. sticky notes. on your laptop. on your phone. wherever.
coding was my one bright spot. Uber starts with a CodeSignal OA, four problems in seventy minutes. first two were basic array stuff, i knocked them out in maybe twelve minutes total. third was a sliding window and i had solved that exact type of problem six days earlier, so pure luck. fourth was a graph traversal that took twenty five minutes and i submitted with like forty seconds left, palms sweating. Marcus got DP on his fourth so the pool rotates. dynamic programming problems make terrible interview questions honestly. you either already know the trick or you just sit there staring at it. nobody is going to invent an optimal DP solution from scratch while their interviewer watches.
phone screen was with a real Uber engineer. weighted grid with obstacles, medium level, then a follow up added priority ordering and suddenly it was hard. the thing that caught me off guard was how much my screener TALKED though. i had just done a Google phone screen where the engineer said maybe fifteen words the entire forty five minutes, total silence while i coded, felt like i was taking an exam in an empty room. the Uber person was the opposite, going "what if this input is empty" and "walk me through that line again" like we were two coworkers debugging something at 3pm on a Wednesday. i actually really liked that. talking through your code while you write it is kind of the whole point of these screens and when nobody talks back it feels weird and isolating.
my prep routine, and i only started this AFTER bombing round one so do what i say not what i did, was solving two or three basic problems before touching anything hard. binary search, 2Sum, DFS and BFS on trees and graphs, reverse a linked list, coin change for DP. these are your building blocks. you want them to be muscle memory so you can write the code as fast as you can type. the real trick with graph problems is just identifying that you are looking at a graph problem. Marcus said this a million times and i finally got it during my CodeSignal when problem four was staring at me and i almost went brute force before thinking wait, this is literally just BFS.
system design is where i died. "design the dispatch matching engine." that is what my interviewer said. five words. my brain? empty. completely empty. i grabbed the marker and started drawing microservice boxes on the whiteboard like it was CS101 homework. and i could see it happening. his face changing. elbows on his knees leaning in, interested, and then thirty seconds later arms crossed, leaning back. done with me. this guy BUILT Uber's dispatch system. BUILT IT. and here i am drawing a rectangle labeled "API Gateway" like that means anything to him. he tried to help me. he really did. "what happens when a driver goes offline mid delivery." ok um. "what if three restaurants finish cooking and only one driver is nearby." uhhh. i am sitting there thinking about this from the perspective of a guy who orders pad thai on Uber Eats twice a week. that is my entire mental model of dispatch. geospatial indexing? no idea. matching heuristics? i literally could not have defined that word in that moment. rectangles on a whiteboard. that is what i had. rectangles and vibes.
(James told me all of this AFTER by the way. my coworker. does DevOps for a living, runs actual production systems not class projects. he aced his design rounds at two different companies. his number one thing: you name drop Kafka, you better have touched Kafka. because the follow up questions will destroy you in thirty seconds and you will be sitting there going "well um i read about it." just say "distributed queue" if you have not used it. do not fake expertise. James also told me to repeat the problem back to the interviewer first, ask what they want to focus on, then start from thirty thousand feet and zoom in. i did zero of those things. zero lol.)
i had InterviewMan running the whole time and it honestly saved me from a total wipeout. during system design it picked up "dispatch matching" as the topic before my interviewer even finished talking and fed me a starting structure so i had something other than a blank stare. on CodeSignal it caught the graph approach on problem four before i even parsed the constraints myself. behavioral round it pulled up a story from earlier where i had actually said a concrete latency number, exactly what my interviewer was fishing for. i checked dock, Activity Monitor, process list, screen recordings on both CodeSignal and Zoom afterwards and could not find it. twelve bucks a month on annual, no caps on sessions. compared to Interview Coder at two hundred ninety nine dollars that only does coding (two of four rounds) it was not even a question. 57,000 users now, twenty plus features built around being invisible.
books real quick. Cracking the Coding Interview? it was ok. just smooths things over too much, like you read it and think oh ok this is doable and then you sit down for a real interview and nope. dangerous book honestly. Designing Data Intensive Applications though. oh man. game changer for system design. seriously one of the best technical books i own. read it even if you have zero interviews coming up, it is just good. for algorithms i used Jeff Erickson's textbook which is free online and actually fun? he wrote it for undergrads not researchers so it does not read like a dissertation. Marcus swears by Skienna's Algorithm Design Manual but even he admits you gotta skip around. going front to back is a slog.
so yeah. Marcus was right. about literally everything. study the product before you show up. the system design interviewers at Uber built the actual things they ask you to design. that is not a metaphor. they literally built it. write your behavioral numbers on a sticky note. do warm ups every morning like you are stretching before a run. and for the love of god do not walk into a design round and draw rectangles on a whiteboard and call that a system. i did that. it went exactly how you think it went.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
