News for hackers. Stuff that matters.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by tempsy on Saturday August 10, 2019 @03:44AM (#20660753)
Uber actually has a much more difficult engineering problems than both WeWork or Airbnb in the sense that they are operating a real time service that requires near perfect uptime 24/7 and work across multiple timezones in multiple languages, payment methods, and currencies with varying connection speeds. That isn’t easy.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by goatinaboat on Saturday August 10, 2019 @04:06AM (#20660828)
they are operating a real time service that requires near perfect uptime 24/7 and work across multiple timezones in multiple languages, payment methods, and currencies with varying connection speeds. That isn’t easy

It isn’t easy, but there are dozens of companies that have been doing it successfully for 40-50 years. Credit cards, airlines, telcos and more. Those challenges are a matter of meticulous application of well established best practices, and none of those are “tech companies”. I mean, Interflora probably has as good or better uptime than Uber!

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by taurath on Saturday August 10, 2019 @04:19AM (#20660879)
Poorly, and at great cost. They’re also not developing any new features, and if they do they have a product cycle measured in years if not decades. To say it’s easy to build consistently running real time services in a rapidly changing regulatory and business environment is a bit dismissive I’d say.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by nindalf on Saturday August 10, 2019 @04:24AM (#20660900)
Agree. It’s easy to have 5 9s of uptime when you’re not shipping any new features. In fact that’s the response that some companies have when their uptime SLAs are in danger of being violated - fewer features are shipped.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by thaumasiotes on Saturday August 10, 2019 @08:04AM (#20661589)
> It’s easy to have 5 9s of uptime when you’re not shipping any new features.

5 9s of uptime is five minutes and fifteen seconds of downtime per year. That's difficult to hit reliably no matter what, because pretty much anything that causes any amount of downtime can easily cause more than five minutes of it.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by mping on Saturday August 10, 2019 @04:18AM (#20660876)
All of those probably have huge tech. Imho engineering wise, Uber really needs tech. If you read uber tech posts, you can see the challenges they face. Even if you want to apply so called best practices you need an above average tech team at the very least. The proof is in the failure rate of our industry.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by goatinaboat on Saturday August 10, 2019 @04:25AM (#20660907)
you want to apply so called best practices you need an above average tech team

Actually, the opposite is true. To apply best practices you need people with attention to detail who can follow a runbook precisely. You need relatively few to keep the runbooks up to date. Traditionally the former were referred to as “operators”.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by NeverFade on Saturday August 10, 2019 @06:00AM (#20661150)
Best practices are guidelines, not exact and fully-specified recipes that an ant could follow. If only implementing complex tech solutions was so easy.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by marcinzm on Saturday August 10, 2019 @08:37AM (#20661713)
Rulebooks only work perfectly when everything is static. Even then they only work when you also know all failure cases perfectly which you almost surely don't. Uber is in a competitive market and can't freeze features for years at a time. Furthermore, it in a growing market which means scale alone will cause new failure points to come up.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by geofft on Saturday August 10, 2019 @11:48AM (#20662698)
> If you read uber tech posts, you can see the challenges they face. Even if you want to apply so called best practices you need an above average tech team at the very least. The proof is in the failure rate of our industry.

This is one possible interpretation.

The other possible interpretation (which I favor) is that good engineers like working on hard problems, and will gravitate towards places where they can work on hard problems—whether or not the business actually fundamentally requires hard problems. There could be simpler architectures. (Remember that pre-Uber, nobody really said that the problem with the taxi industry was that you had to call a dispatcher on the phone and that system couldn't scale. Dispatchers were bad at things, sure, but we didn't think that phones were fundamentally too low-bandwidth to handle the request rate.)

Some recent posts on Uber's tech blog:

- A zero-downtime migration from a payments architecture with eight microservices that needed a code update every time they launched something like Uber Eats, which was "an unsustainable use of development time," to one that was generic across new businesses Uber might launch in the future.

- A tool to automatically generate an iOS app with the same build structure as their current app or a slightly modified one, to see if certain approaches would speed up their build times.

- A new web interface, with feature parity to their mobile interface, based on the JavaScript framework previously developed by Uber Engineering and also using fancy new web platform features like service workers.

- A new framework for automatically submitting data analysis jobs to their scalable computing environment with the ability to update configs to match changes to which databases exist, which computing clusters exist, how to access them, etc.

- A conversational AI platform.

- An AI ant that walks around in better ways.

None of these, I think, fall into the category of Uber really needing tech. They're all cool, they all have long-term business value, but you could just declare that you're tech-skeptical and don't want to make platforms for platforms for platforms and still deliver Uber's core business - matching users with cars and moving money around - just fine.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by walshemj on Saturday August 10, 2019 @07:47AM (#20661538)
Those companies have large tech workforces to service those requirements
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by tempsy on Saturday August 10, 2019 @04:17AM (#20660869)
Do you really believe that Uber is run on a technology stack that is 40-50 years old?

It’s not just real time but streaming data. Handling millions of concurrent trips, and processing all those trips in real time is not something that any of the industries you’ve mentioned do.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by goatinaboat on Saturday August 10, 2019 @04:22AM (#20660894)
Do you really believe that Uber is run on a technology stack that is 40-50 years old?

Of course not, but I do believe - because it’s demonstrably true - that those challenges are not unique to Uber, and that they have been solved many, many times over.

For example sure, Uber handles a lot of trips. But every one of those trips is backed by a credit card processor, without the latter even breaking a sweat. I guarantee that Mastercard or whoever barely even notices the additional workload they get from Uber.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by adt2bt on Saturday August 10, 2019 @03:17PM (#20663978)
You’re correct, the transactional part is true, but MasterCard is following a relatively basic process:

1. Authenticate the transaction (is this ‘uber’ Company ok and is it reasonable this user is using it for fraud detection)

2. Check that the users balance + the cost of the trip < the users credit limit

3. Post the change to a transaction log

4. Some hours/days later, finalize the pending transactions.

That’s a whole lot simpler (outside of fraud detection) than what Uber has to do to get you from A to B.

*edited for formatting

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by geofft on Saturday August 10, 2019 @11:36AM (#20662623)
The question is not whether it is, it's whether it could be.

Here's an example: the stock exchanges also need to handle huge amounts of concurrent and real-time data (with much greater constraints on latency and correctness and linearizability than Uber's customers demand). They're not running on literally unchanged 50-year-old tech any more, but they're also not doing the sort of technology innovation that Uber's doing, and they're doing just fine.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by legulere on Saturday August 10, 2019 @05:48AM (#20661120)
x86 is 41 years old, which Uber uses for sure. Newer often doesn’t mean better or better enough. Telephone companies have been streaming voice data for millions of people with a reliability that I haven’t seen from any modern internet service.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by Barrin92 on Saturday August 10, 2019 @09:01AM (#20661807)
This whole situation is really funny because it looks a little bit like VC funded companies slowly discovering why soviet planning doesn't work.

We already had figured out how to move people around in cars in a way that doesn't require software at all, it's called a market and taxis have operated in it for a really long time. Uber is going to figure out shortly why there wasn't a giant taxi monopoly on the planet before they existed.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by thaumasiotes on Saturday August 10, 2019 @07:57AM (#20661567)
> they are operating a real time service that requires near perfect uptime 24/7 and work across multiple timezones in multiple languages, payment methods, and currencies

Uber is present around the world, but I don't see much reason Uber India needs to interact with Uber North America in real time. Operationally, they're completely independent -- no one is going to connect a ride in Canada to a ride in India -- so why do they need to be strongly coupled in terms of the software service? What would go wrong if Uber India only handled one timezone and didn't really support French?

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by danpalmer on Saturday August 10, 2019 @08:15AM (#20661619)
An Uber competitor, Hailo, did this. Rather than adapting their services to support multiple languages, time zones, etc, they instead just ran a fully separate instance of the service for each region.

Their costs, downtime, and tech debt spiralled out of control, mostly due to this architecture decision, and then spent a year or more rebuilding to try to get it under control.

Uber probably have the better approach, at least I don’t hear bad things about Uber’s tech where I have heard multiple horror stories about Hailo’s.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by arusahni on Saturday August 10, 2019 @12:15PM (#20662878)
Do you have a source for this? Not questioning the assertion - just interested in the issues and the design process for the solution.
Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by danpalmer on Sunday August 11, 2019 @02:48PM (#20669715)
I'm afraid I don't have a single source – this is from discussions about tech teams, culture, engineering, etc, at meet-ups in London over the past ~7 years. They had a relatively large engineering team so there are plenty of ex-Hailo devs around here.

There were some good things to come out of it, from what I understand. I believe Hailo were avid Cassandra users and many of the team went to Monzo who have deployed Cassandra very effectively.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by geofft on Saturday August 10, 2019 @11:33AM (#20662609)
Slack does (or did?) exactly this, I think. Each Slack workspace is its own deployment: its own web server, its own database, etc. This is loosely why accounts aren't shared across workspaces, you need to open a new tab per workspace, and so on.

What this forces you to do is to get really good at configuration management and orchestrating deploys, so that when something goes wrong, you can fix it for all your customers at once. You can't treat any single instance as a thing that it's meaningful to log into (you might still want to log into things to debug problems after a customer report, but making changes is infeasible, and ideally you notice problems before the customer report so you have to be aggregating logs/events/metrics). So many of the same maturity lessons as required for building a single scalable instance continue to apply to you. The distinction is that you don't have a giant distributed system, and you don't have the corresponding operational burden of a giant distributed system, so you avoid outages like https://monzo.com/blog/2019/09/08/why-monzo-wasnt-working-on... . (To be clear - this isn't meant to shame Monzo, that was a genuinely difficult problem and a genuinely good incident response. But there are advantages in not having a single company-wide database that runs everything from your core business function to your customer support chat.)

One of the engineering lessons I've been learning of late is you really want to avoid distributed systems wherever possible. They're cool, but the amount of engineering / operational effort required to get to a certain level of consistency or availability is way more than the effort required to get to that level of availability of a non-distributed system. It's fun as an engineer to solve hard problems, but it's better for the business to not have hard problems in the first place.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by marcinzm on Saturday August 10, 2019 @08:34AM (#20661701)
>What would go wrong if Uber India only handled one timezone and didn't really support French?

People travel.

That aside, you'd have 100+ different deployments that need to be independently updated, debugged, managed, etc. That takes people and effort and is still going to cause issues. For example, each country speaking French might have a different deployment so updating language files needs to take into account every single version running live.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by thaumasiotes on Saturday August 10, 2019 @06:13PM (#20664781)
> People travel.

So? People traveling to India are still going to be in India's timezone, and French covers virtually no one that English doesn't also cover.

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by chrisseaton on Saturday August 10, 2019 @09:36AM (#20661939)
Being able to fly into almost any major international city, and then just open the Uber app with my existing account and get a car is a massive benefit of Uber over all competitors and it's the real power of Uber for me.

(Lyft requires a US phone number, which I don't have, and local competitors I would have to research, install, sign-up for all individually.)

Re:Uber Freezes Hiring of U.S. Tech Staff as It Seeks to Cut... by fnord77 on Saturday August 10, 2019 @05:34AM (#20661087)
uber pool is an interesting optimization problem. an eng there was telling me about the graph theory she used to tackle it.