8 ms·
I interviewed at Uber before they launched. Their "take home" was to create... Uber. Here's the exact challenge: UberCab Coder Challenge 1) Write a program
by thoreauway 7y ago
I interviewed at Uber before they launched. Their "take home" was to create... Uber.
Here's the exact challenge:
UberCab Coder Challenge
1) Write a program that determines the wait time, trip time, rating, and fare for a black car trip in San Francisco, given that the customer's pickup location and destination is randomly placed anywhere in San Francisco proper, and given that there are X number of cars all placed randomly across the city. Use GoogleMaps API for trip duration time. Run simulation 100 times for 1, 5, 10, 20, and 50 cars. Output average wait times and trip times for each # of cars the simulation was run on.
2) Take #1 and do the same pickup and trip time calculation given that there are Y customer requests per hour (extra credit if this is done with a Poisson distribution ;)). Take into account each car's availability (given that they may have been selected to carry a customer and are in transit on pickup or on actual trip, and thus unavailable). Run simulation given the number of cars in #1, but for each simulation in #1, run once for Y=1x, 2x, 5x, the number of requests per hour (X being the number of cars in the city, as defined in #1)
3) Take #2 and then make a GoogleMaps mashup that then shows the various trips that were taken for each simulation. Provide mashup interface showing all trips but also provide ability to only show trips for each driver.
4) Write a "Hello World" app on the iPhone that for a certain driver logging in shows all of his trips taken in the last simulation, the average rating that he got, and the total fares he collected during those trips.
- monocasa 7y agoWell, that certainly selects for engineers willing to do unreasonable amounts of work without questioning it.
- monsieurbanana 7y agoIf that's how you want to test potential engineers, I don't necessarily see a problem with the task itself. Just pay them! I'm sure Uber can find the budget for that.
- hrktb 7y agoI'm sure they're fine with engineers who don't ask to be payed for random tasks encroaching their private life. Snark aside, it can iffy to pay someone for a task at your company when they are still under contract in their previous job. In that sense, while your point is sensible, it can be difficult to go that route from the candidate side.
- ghaff 7y agoYup. Will anyone who cares find out that a competitor paid you to do some task? Probably not, but it seems like an iffy proposition to violate your current employment agreement to have an interview.
- yati 7y agoI once was invited to interview for a startup to work with their (mostly remote) team for a week, for which they would compensate me at a decent rate. I never managed to find the drive to take a week off for this, but yes, it would have been tricky to explain to my then manager.
- idlewords 7y agoUh... are restricted stock units OK?
- fhbdukfrh 7y agoYes, because the only limiting for for super qualified engineers is they don't get paid for coding in their copious amounts of free time. If you want to limit your pool of potential hires to rock stars who don't have jobs (pool size of approx. zero) this is a great approach.
- cosmie 7y ago>I'm sure Uber can find the budget for that. I doubt they had the budget for that or they likely wouldn't have been essentially trying to get someone to making their MVP under the guise of a new hire interview. Keep in mind the OP mentioned that this was pre-launch, when they were still UberCab and only had aspirations to be a peer-to-peer cab app. Long before they started marketing themselves as a logistics juggernaut or world changing self driving car creators for valuation justification purposes.
- Alex3917 7y agoIf you've never had a job as a developer before and don't have any open source contributions, then that's actually a pretty good take home project. Yes it will take a week or two of unpaid work, but no one is going to hire you for your first job without having built at least one project of that size anyway.
- dajohnson89 7y agoDo you really think that's an appropriate question for an entry-level developer?
- Alex3917 7y agoFor an entry-level fullstack iOS developer it's not that bad. For context, for my first job as a developer the take home assignment I got was creating a web app that logged realtime CPU usage and created a graph of that CPU usage that was updated in real time. And this all had to be done using a specific language, web framework, and database that I had never used before.
- antt 7y ago>For context, for my first job as a developer the take home assignment I got was creating a web app that logged realtime CPU usage and created a graph of that CPU usage that was updated in real time. That's at worst a 4 hour job to do with a beer over the weekend. You sound incredibly incompetent if you can't tell the difference in difficulty between that and that they asked OP to do. That assignment is 1/128th the work of point 1) from OP.
- Alex3917 7y agoYou download a list of every street address in San Francisco, pick two at random, and write one line of code to get Google Maps to tell you how long it takes to drive between them. Where exactly is the complexity?
- 7y ago
- kccqzy 7y agoOne thing I've tried at my company is to present a complicated task with many parts and considerations, and then explicitly say that you are not required to complete all of it. Just do the the minimum required (which can be done in an hour or so) and the parts that catches your interest. Looking at which parts the prospective engineer completed, we could also determine which part of the stack he/she likely wants to work on.
- gregd 7y agoWhy are people putting up with this?
- aantix 7y agoThe worst is when you do the task and then they just don’t respond. Not even a simple, “we’re not interested”. No feedback. Just. Left. Wondering. It’s cruel. It’s demeaning. Tanium was especially cruel. 6 hours of live coding interviews and the only reason I got any response from them was because I had to consistently hound them for a couple of weeks and ask a friend that worked there to internally ping someone.
- loktarogar 7y agoHad one with Deliveroo. They responded, but they were declining me because I didn't do what they explicitly told me not to do in the instructions. They wanted people who "went above and beyond".
- Loughla 7y ago>"went above and beyond" Definition: Willing to put your thumb on the work side of the scales in a work/life balance for no extra compensation. See also: Taking advantage of your workforce.
- notJim 7y agoYup. Bullet.dodged.
- gesman 7y agoThis is BS. They probably were doing interviews to satisfy ongoing visa process for already selected candidate. And the declining everyone with lame excuse.
- therein 7y agoThis is almost certainly the case.
- distances 7y agoHaving never worked in SV, are these home assignments common there? I know several engineers who would refuse to do any homework at all as a matter of principle, so a task of this magnitude without compensation sounds laughable on the face of it.
- ummonk 7y agoIt's not the norm but it's not uncommon at startups. Also, it seems to be standard practice for data science interviews. I personally don't put up with it, but then there are always lots of commenters in HN who bemoan whiteboard interviews and prefer take-homes. To each their own.
- meddlepal 7y agoI prefer take homes if they are reasonably scoped and turn around expectations are around 1 week. I would rather whiteboard about the design of the app/tool than some random question another engineer pulled out of their ass twenty minutes before the interview and has unreasonably strong opinions about the design and implementation based on whatever source they stole the problem from because they don't actually understand the problem either.
- mattkrause 7y agoThe scope is important. Some of the data science take homes I've seen could be looking for a decent/good-enough solution that takes an an hour to a full-fledged research program that would keep a few FTEs busy for a year.
- m4x 7y agoWhat sort of take homes are you seeing for data science roles?
- lhorie 7y agoFWIW, this is not how Uber does interviews anymore. Now the process involves a technical phone screen and an onsite, with coding exercises that are meant to be completed in 30-45 minutes. I believe it's pretty on par with other tech companies in the Bay area.
- aswanson 7y agoWow. That's just abusive...
- la_barba 7y agoThat is devaluing the word abuse. A voluntary optional task which you can decline at any time, is not "abuse" no matter how you spin it.
- lawlessone 7y agoThere are lots of situations that are voluntary but abusive. You can look at any job and claim it can't be abuse because people can leave the job. You ignore that leaving the job means loss of income, status, or worse even.
- nitrogen 7y agoIn fact in many abusive situations the abuse is how the abuser keeps the abusee from exercising their freedom to leave. The relationship being nominally voluntary has nothing to do with whether it is abusive.
- la_barba 7y agoI still don't see how applying for a job is abuse.
- IshKebab 7y agoIt's not that complicated. Some people are desperate for a job. They will do anything for it. You can abuse that need. Like, imagine if the TSA strip-searched everyone. Pretty abusive right? You wouldn't say "I don't see how letting people fly is abusive".
- la_barba 7y agoAh.. the old "some people" logical fallacy. Sorry, I don't wish to enter into an internet argument with you. Have a nice day..
- shanxS 7y agoHow much time did you have and which level of engineer (senior/architect etc.) were you applying to?
- gvand 7y agoI wouldn't have expected anything less from them, go Uber! Always the worst!
- PerfectElement 7y agoThat's a great way of getting an MVP done for free.
- astura 7y ago>Write a "Hello World" app on the iPhone that for a certain driver logging in shows all of his trips taken in the last simulation, the average rating that he got, and the total fares he collected during those trips. That's not "Hello World" app, a "Hello World" app prints "Hello World." The purpose of a "Hello World" app is to demonstrate you've setup the environment correctly, nothing more. Words and terms have meaning.
- EForEndeavour 7y agoIf I didn't know better, I'd interpret the question as a (pretty good) joke.
- diminoten 7y agoIt's a "Hello World" app for your system, the most basic app that can run on your platform.
- wingerlang 7y agoI got a take home assignment from a large company a few months ago, it was the whole shebang as well. Build an iOS application with full test suite, several screens, should work with their test-api, should be polished, offline/online work etc. I estimated it to take at least 2 weeks. Sent it to a colleague and he estimated it the same. In reality you had 48 hours to turn it back in. I gave up halfway into the project.
- jghn 7y agoSometimes that's intentional. As a hiring manager I find value in seeing what someone chooses to prioritize when given an impossible task. If you have 48 hours to complete a 2 week project, what portions do you choose to complete? Can you explain why you chose that? I also don't think it's cool to do what I just said without letting the candidate know that's what is happening. Otherwise they might just get frustrated and decline to work on it.
- walshemj 7y agoAny sensible candidate will prioritise your job and company to the round filing cabinet.
- wingerlang 7y agoIn my feedback they were quite clear in that I had not done everything required.
- busterarm 7y agoI remember my Uber interview. My interviewer was sitting in a room full of people when they called me, asked me questions and then proceeded to have conversations with the other people in the room without listening to me and would ask me to repeat my answers. And do it again. 15 minutes of this and I hung up on them. This was about 4 years ago and the equity that I have in the company I joined instead is on an upward trajectory instead of what Uber just did. Phew.
- xiphias2 7y agoI'm sure they were acting against the policy of the company. It wasn't Uber, just an asshole guy. Every company has that.
- barkingcat 7y agoBut that no one shut down the asshole, and that this was allowed to continue happening in an interview situation means that in addition to an asshole guy, there are also a bunch of asshole employees who don't care enough to speak up, or would rather have side conversations with the main asshole guy. Especially when in a new hire/interview situation, HR is absolutely involved. So the HR department is also full of assholes who won't enforce the policies of the company.
- busterarm 7y agoInterviewer was not a guy and would have been my manager. I guess I'm glad it went this way for other reasons. It was for an entirely new team within Uber to build something very specific that nobody had done successfully yet (though there was a paper about it...it's security-related). The manager was an external hire and the entire team was to be as well. This was a big warning sign to me that management didn't care very much about this team or if they accomplished what they set out to. 4 years later they still haven't delivered on that feature yet.
- dlandis 7y agoWell, you are talking about one of the most infamously toxic tech companies. Harassment and discrimination were also against their company policy: https://www.nytimes.com/2018/05/21/technology/uber-sexual-harassment-lawsuit.html https://www.nytimes.com/2018/05/21/technology/uber-sexual-ha...
- zoomablemind 7y agoWas it an interview for lead position or just coder? How did this end? It looks like a good chance to outline the resource requirements for accomplishing this. No way should this be a work of team-of-one. State the expected stages and some ideas for possible architecture and frameworks. Then ask for resources needed to implement this with some rough-optimistic estimates, including the budget. That should be enough for a serious conversation to begin with interested party.
- desireco42 7y agoThat is excellent point, I really like where you are going with this. It shows maturity of the applicant as well. Sometimes I would like to say, you know, I like to work with good devs, so if you don't mind, I would like to ask you some coding questions. It freaked out some people with that, but it is in the same range as the questions they are asking.
- Tepix 7y agoThat's clever!
- andrei_says_ 7y agoA company which has no problem pushing beyond any conceivably reasonable bounds of exploitation. A vision to push anyone who works with/for them to the maximum possible win/lose ratio. Including drivers and riders.
- watfly 7y agoDid you complete this? To me this sounds like they were not looking to hire but would hire someone exceptional who goes through this task and does better than their own team did.
- throwaway373674 7y agoI've been a software engineer at Uber since 2015 and have lead over a hundred onsite interviews and countless phone screens. In four years I have never seen a take-home exercise be used. Every other interviewer also holds a strong negative opinion of them. It's possible we were doing this many years ago, but that certainly isn't the case now.
- GuiA 7y ago> “I interviewed at Uber before they launched” > “I’ve been a software engineer at Uber since 2015” Perhaps they need to test reading comprehension in their interviews!
- nan0 7y agoHow long did Uber give you to do this?