Hacker News new | ask | show | jobs
by moonka 4218 days ago
I've used Uber since they showed up in Seattle, and was a big proponent of it. Lately, I've been seeing a lot of issues with the estimated eta being off by 20 minutes or so, which has led me to start using other services (Lyft, sidecar, & crown car), all of which seem to do a better job of giving me an ETA which is within a couple of minutes of them showing up.
2 comments

I have also seen the GPS estimates degrade over time -- which begs the question: shouldn't those estimate be improving over time, unless something shady is going on?
I would guess that GPS experiences like the article mentions are either driver app errors or scaling problems. That is, it sounds like the server is calculating the ETA of the driver based on a stale location. The location would be stale either because the driver app is not updating it correctly or because even when it is updating location correctly, the server is (sometimes) using an older location, probably due to an eventually consistent data store.

When I worked for Flywheel (Uber competitor, same general needs of "figure out the closest driver and provide an ETA"), we'd occasionally see drivers whose phones seemed to get "stuck" in a location, essentially because the location service crashed in the O/S and would stop updating the app (though this was on Android phones and not iOS, and I'd be slightly surprised to see it happen in iOS).

But I think that the scaling issue is the most likely. Location updates come fast and furious, and must be queried quickly. I wouldn't be at all surprised if Uber is using some kind of big scalable highly available database that could in the event of fairly routine network partitions report stale driver locations some of the time, and/or a cache in front of their underlying store that sometimes fails to get invalidated. That seems like it's consistent with the experience of the driver that the problem tends to happen on particular nights (when they're having some kind of underlying problem with, say, communication between components of their data store cluster), and why you might see it getting worse over time (as they scale).

I've seen my iPhone GPS get "stuck" in one place (sometimes in the wrong country!) a couple times since iOS 8. Once it lasted for hours. It seems it's not smart enough to say "well this location is a day old and I've changed tower locations 10 times, maybe it's not valid anymore".
Why can't they just serve the client's location to the driver's device and then have the drivers device handle the estimate?
That would lose scale-dependent ways to improve estimates like current traffic data from other cars, historical traffic and trip-time records, etc

Also won't help with stale GPS location on the phone (which anecdotally has been happening on my N5 more since upgrade to L as well)

My experience with Uber in Seattle hasn't been so hot, but I rarely use taxis or taxi-like services so maybe it's just the luck of the draw. One driver actively campaigned for me to start using Lyft and another decided that downtown to Ballard (as in just outside University Street tunnel station to 15th and Market) needed to go via the Fremont bridge.

It's easier for me to just take Metro and use car2Go to fill in the gaps.

I took an Uber already a couple of times in Seattle and noticed that the Uber GPS seems to take a longer route than necessary in some cases. A former taxi driver told me too that the Uber GPS is not very good.

I'm wondering if they developed their own routing algorithm which would explain why it isn't as good as other navigation systems.