Uber lays off 435 people
techcrunch.com
techcrunch.com
Obviously everything I say is personal experience and opinion. I think the layoffs were long overdue and should've happened sooner. There was a general understanding between my coworkers and I that Uber definitely over hired in 2016. Thanks to that a lot of engineers ran out of things to do which led to political infighting over roadmap, ridiculous redundant resourcing - every single team had mobile/web, severe shortage on infra teams since head count was already taken by main Uber teams. We even started building and maintaining our own chat app. I disagree that all the cool eng project that we put out and share here is a waste of time or resources. Those project was initiated by real needs on Uber and only the best make it out into the rest of the world. Engineers that shipped those projects are still here and we would've done it regardless of whether the 435 people that were hired in the first spot. I fully realize that it's an insensitive thing to say but I think it's important that it's expressed somewhere.
I think the lesson here is to grow responsibily, and it's real people's lives that are being affected. Don't hire people to alleviate your current engineer's burnout and stress. Learn to plan better and to prioritize aggressively instead of just hiring and getting everything done.
God I love the Not Invented Here disease. Somebody, somewhere, thought "hey, slack is way to expensive, we don't want to get 'locked in', and 'mumble mumble privacy cloud evil stallman' so lets write our own chat application.... how hard can it be?"
Boom, now the company is straddled by a shitty, homebrew chat application that is maintained by nobody because the original author left for greener pastures. Nobody dares replace it though because that would be sacrilege. That chat app is part of the company, after all!
Arg.... I hate, hate, hate when engineers with a bad understanding of business and too much time on their hands lock their organisations into homebrew crap that has nothing to do with the value delivered by the business.
/rant
https://news.ycombinator.com/item?id=17623005
I have the impression that Slack has gotten worse. We're again having problems of notifications not showing up.
Bridging in Slack, Gitter, IRC and other platforms makes working with external teams a breeze, everything is in one place.
Yes, really, for business. Look past the theming.
Discord has a much more solid tech base (and engineering team) behind it than Slack, IMHO. A better API, too; and—unlike Slack—real support for third-party clients!
I built my own niche team-collaboration app back in 2012, and I tried out a lot of things, but ended up building my whole own stack. That was back then. If I was doing it again today? I'd just make it an alternative Discord frontend.
(There are also offerings specifically designed for the "build your own custom frontend for our chat backend" use-case, like https://pusher.com/chatkit, but IMHO Discord even has these beat.)
You don't have to make those links (and you can turn off, per server, the ability to create those links.) You can invite specific users. The user already has to have a Discord account, though.
And that's the thing; Discord has a different accounts model. Which is part of what I was referring to when I said they had a more solid tech base: when you're signed into a dozen Slack workspaces, the Slack client has to keep a dozen websockets open, because the open connection is for a given Slack account's view of the world, and Slack accounts are a sub-resource of Slack teams. This isn't a scalable model, and when the Slack app is using 1.2GB of memory and two full CPU cores, this is much of the reason why. When you're signed into a Discord account, on the other hand, you just have one connection to the server—and one state-sync session that includes all your open channels in all those servers—because your profile on a given Discord server is a sub-resource of your global Discord account.
It's the difference between how an email client connects to N accounts through IMAP, and how the Gmail mobile app is connected to N GSuite accounts.
And, as such, it wouldn't really make sense to have Discord SSO at the account level, because a Discord account is associated with the individual, not with a particular employee record of a particular Enterprise. It's not like an email address; it's more like a Keybase identity or a Facebook profile. (You could certainly have particular profiles under the Discord account that did SSO to a particular server, but this wouldn't be traditional SSO-as-we-know-it; it'd be more of a "connector" flow, like when an app wants to use your Github profile.)
Github is a good comparison, actually. Most corporations just use Github, not Github EE. You don't Enterprise-SSO to Github.com. Github.com is an SSO provider, in fact, that other sites (e.g. Asana) can take auth from!
[1] https://github.com/Microsoft/vscode/wiki/Performance-Issues
[2] https://github.com/jhallen/joes-sandbox/tree/master/editor-p...
I'm quite fine with that, frankly. Highlighting correctly requires actually parsing the file. I use vim and the colors get wonky way too many times, because it tries to "keep it fast".
As for github.com, our official IT recommendation that people don’t use their personal accounts, but create one just for work. This way there is no worries about personal data there.
(This is at a subsidiary of a large international company. I can believe small startups use a simpler methods)
Keep in mind, putting SSO into Discord’s account system (if that ever happened) wouldn’t be like putting Enterprise MDM on your personal phone. It would be more like having Chrome Sync signed into both your personal Gmail account and your GSuite account, as separate Chrome “People” (or whatever those are called.)
With Chrome Sync, the profiles are still isolated from one another; but updates to them ride in the same sync carrier connection, because that connection is going to Google either way. In this sense, the Chrome installation itself, and its “installation-specific sync client ID”, is like a Discord account. It’s not a personal account, or an enterprise account; it’s a nothing in-and-of-itself, that has those types of objects under it.
Slack has decided that each team workspace must be firewalled off from the others: such that it needs its own websocket, its own client-side sync session, its own open channels, etc. This is because Slack was first-and-foremost a web-app, and in the Slack web-app, you’d just have one browser tab per Slack team. Slack built up its infra assuming this “one tab per workspace” model, and it crept into their backend API design, and now they’re kind of stuck with it. So now, even in the native mobile app (let alone the desktop Electron app), when you have 12 Slack teams open, you have basically 12 copies of the app’s view-controllers open and idling in the background, 12 background sync controllers, etc. In the case of the Electron client, that’s also 12 renderer processes, just as if you had 12 literal browser tabs open!
You might not notice this at first, because Slack won’t initialize all those resource for a workspace’s “tab”-equivalent until you actually focus the given workspace at least once. But if you just skim through all those workspaces once in the morning, and leave Slack open, it’ll be hogging those resources all day.
(And, on mobile, that’s especially a concern, because despite what you say, web-sockets themselves have heartbeats, and 12x the heartbeats is 12x the reasons for your phone’s modem to wake up. If you’re ever wondering why the part of your phone around the antenna is getting hot even when you’re not actively using data—it’s probably that you have several active Slack workspaces in a live Slack app-container.)
Don’t put words in my mouth. A heartbeat is not high resource usage.
Your wall of text doesn’t negate the fact that multiple websockets can be maintained with trivial resource consumption. It absolutely cannot be generalized to assume that multiple websockets means copies of everything. I’ve seen multiple clients supporting multiple websocket connections to distinct servers while re-using all of the same UI components.
And even then they could have just used Matrix, which ticks all of those boxes.
What what does scale mean anyway? Just employees using it or employees + contractors?
It's easy to armchair quarterback on this stuff, but I find it hilarious how tech companies that employee supposedly smart people justify writing this kind of stuff. I'm sure some junior engineer did a cost/benefit that completely neglected the total cost of ownership for writing a chat app and focused on the sticker shock of having to pay tens of thousands a month for a chat app.
I've worked in plenty of companies with engineers who think they are legal, privacy and security experts. If we made business decisions based on these folks, we'd never do anything. Hell, every damn text change we makes invokes a few who worry about the legal ramifications ("should we file a JIRA ticket with legal?").
Sadly without somebody stepping in, people actually listen to them instead of the actual experts employed by the company... thus you wind up wasting tons of engineering bandwidth building a feature / platform / product that has no business existing all (or worse, not building some feature / platform / product) because nobody bothered to check with the legal / privacy / security team that some concern by a engineer was actually a genuine concern.
And even then, in any good organization legal / privacy / security teams exist only to point out all the risks in any business decision... sometimes it is worth the risk despite what legal / privacy / security say. What appetite the company has for the risk depends on a lot of things that are well outside of legal/privacy/security.
Booo on legal.... like I said earlier, it's easy to armchair quarterback. Sometimes I wonder how the fuck humanity even manages to make progress with so much waste and boneheaded decision making.
the general counsel and thus the entire legal org required for any company approved comms system a way to automatically by default destroy chat logs after 7 days (and to turn that off for folks who were on legal holds). slack in 2016 did not have that capability.
Running your own DC is the same as building your own chat app. It is almost always more expensive and almost all the people who claim they can do it cheaper inhouse aren't factoring in all the costs--both costs that are easy to measure and those that are almost impossible to measure
Examples of hard-to-quantify costs for running your own infrastructure include:
- What is the cost to the company of being three versions behind on mongo because IT doesn't have the bandwidth to upgrade? How many work-arounds do teams have to do because they couldn't use the latest features of mongo?
- What is the cost to the company when developers cannot quickly spin up new environments like they could using a service like heroku?
- How much innovation and new business (read $$$$) is not happening because the in-house IT simply doesn't have the toolset so a dev can quickly riff on an idea?
- How many engineers have good ideas and don't bother building them because spinning up an environment is too much trouble?
I'd argue by not using AWS you are holding your product teams back and stifle innovation. Unless of course you want to waste company money to build out your own half-assed provisioning tools that are lousy knock-offs of AWS's tools. But then, you might as well just use AWS...
What I was trying to point out is someone engineered a system that costs 8M/mo to run yet only handles 1M rides per day.
It is sizable, not ridiculous. And optimizing your cloud cost is definitely your own responsibility and deserves every bit of attention.
That doesn't really sound that bad, considering that rides can easily cost dozens of dollars. Just about any other non-tech business would kill for such low overhead.
Other non-tech businesses, hell EVERY business that I've ever worked in that used AWS did better per transaction - healthcare, digital advertising, virtual office tooling, gaming. If you can't do better than a credit card processing fee per paid customer interaction across the company on AWS, you might as well be selling retail goods...and depending on age, your company might be soon.
Companies like Lyft are doing a lot more than updating a few fields for each ride. They would be processing massive amounts of location data and they are building out models to eventually use for self driving cars.
None, they're all independent contractors.
Even the public kubernetes workspace has almost 75k people in a single channel.
Which is even more scary. Why isn't uber laying all these people off and paying cash money for a real chat application? What competitive advantage does uber have maintaining a chat application?
What's it called this week?
You can take your hands off completely, even go and do something else, read a book, write an email, book some flights, and the chat will drive itself ... somewhere.
[1] https://en.wikipedia.org/wiki/Trade_dress
[2] https://revisionlegal.com/trademarks/lessons-trademarking-tr...
Except Snapchat, I still can't work out what that's about.
I am talking about Samsung and Apple here..
> hey, slack is way to expensive, we don't want to get 'locked in', and 'mumble mumble privacy cloud evil stallman'
gets followed up immediately (almost inevitably, in my experience) with
> so lets write our own chat application.... how hard can it be?"
...rather than, say, "hey, I googled and there are a few FOSS alternatives for 'group chat with history': Zulip, for one; Mattermost, for another. Let's see if either of those fit our needs. If they don't quite, though, let's also see if either one of them has a solid, customizable codebase to fix up!"
Since when did wanting to be a software developer mean there’s “one true way” to do software dev?
Why are developers supposed to be budget babysitters for a huge company with tons of people watching budgets?
I don’t owe my employer being an expert in all contexts to the benefit of their business. I am not their servant. I write code to serve contexts they want served.
The real issue here is a lack of vision at the top. The current CEO needs to step down for the health of the company. He has a clear lack of vision for the company, as evidenced by his statement of "do your divisions look like what they should if we had to start over?" Who says that? Something so vague that is basically grasping at straws and shows a complete lack of strategy. Would Jeff Bezos say something like that? I highly doubt it, because he has complete control over his company and a vision that has worked at micro and macro levels.
You can do things that aren't directly related to your core business and these things should generate value both internally and externally. If you can't do this, eventually, your company will stop growing.
This where understanding business matters. AWS makes sense as a business and it benefits mostly from economies of scale which is something unique that a massive company like Amazon can provide the service which few other companies could.
NIH stuff is also rarely externalized outside of the business. Even as open source. Which as the OP pointed out needs proper investment of human capital. Not some side project of a bored engineer or two.
Most innovation happens outside of mega companies by small teams for a good reason. Even the Skunkworks type approach is only useful for certain types of work like Googles X projects. Some B2B SaaS programs roll out of parent organiations but typically they are started by teams who quit the bigger company to solve the problem they had.
If a different company had dominated the on-demand computing space before Amazon’s peak load issues became too big a problem, they very may as well have gone with that and not made AWS.
Almost nobody needs to write their own chat app. Slack is fine.
The first AWS service was launched over 15 years after Amazon.com started selling books on the Internet. It wasn’t even a separate brand until after Amazon S3, SQS and EC2 were launched.
Close. It was roughly 11 years. I've been using Amazon AWS since early 2007; I believe it launched to the public in the form we know today in early 2006. They started selling books online to the public in mid 1995.
If you go back to the very first AWS services - 2002 - it's closer to being only seven years.
> Slack began as an internal tool for Stewart Butterfield's company Tiny Speck during the development of Glitch, a defunct online game.[13][14] "Slack" is an acronym for "Searchable Log of All Conversation and Knowledge.
His first game company also didn't do well, so they pivoted to release Flickr.
Like I completely agree with your overall point about reckless overengineering, but you also just listed three true and really good reasons to avoid integrating Slack.
No reason to use Slack when such options exist, but also no reason to write your own chat app, either.
If it takes you that many engineers you are either using the wrong software or using it incorrectly.
Adding to other large company problems, these people will need management layers, the team will need a charter for growth. Who wants to be the maintainer of the Mattermost servers in a large company? Add all of this up and then the slack deal starts to look reasonable.
Edit: Just to add some real numbers, slack costs $12.50 per user per month [1] - that is ~$750k per year for 5000 users = 5 engineers. (More like 3 really in the Bay area)
There's no way it suddenly needs a new team of dedicated full time resources.
There's no way a company with 5000 Slack users is paying the sticker price per head - they'll call Slack's enterprise sales team and negotiate some volume discount with whatever shiny enterprise-grade features, SLAs, support guarantees, etc. they need.
Moreover, email is hard and does require a dedicated team, but the order of magnitude is wrong here. 5 people is plenty.
These Bay Area tech people must be either incredibly inefficient (especially when comparing to what they get paid), or your estimate must be waaaaay off.
This is valid not just for Mattermost but many other apps that support sending e-mails. And that's why it's important that instead of giving up and outsourcing it, we all try to set it up and have first-hand experience in challenges we have to face in the process. Because if everybody just uses Mailgun & SES, in a decade or two it won't be be possible to set up your e-mail server anymore (of course you will be able to, but your e-mails won't reach most customers).
I ended up outsourcing DMARC report processing, if I wanted to do it in-house I'd have to setup and maintain an Elastic stack[1] which seems like huge overkill.
Unfortunately, I found this to already be somewhat of a reality. Even with all the best practices I went to, many MTAs simply don't trust my IP address. Most "sane" MTAs seem to greylist me rather than blacklist outright, so it just adds a bit of delay to users receiving their emails. Thankfully it seems to be gradually getting better, but gone are the days of simply pointing your apps at sendmail letting them go.
You'll find a lot of times the champion of the new hotness moves on and leaves someone else to maintain the old hotness at costs that were never factored into the original deployment.
As I noted in another comment, it's a trilemma where you have to pick and choose your battles. The initial deployment time is rarely the most important factor when introducing a new stack within an organization.
For example, large MMO guilds have a quite different regulatory environment from, say, a large healthcare organization in the US governed by HIPAA. It's an extreme example, sure, but a homegrown, dumbed down solution, might be the only way to ensure regulatory compliance.
It doesn't take a lot of imagination to come up with other scenarios. I can't defend Uber doing it because I'm not involved, but large MMO guilds are not archetypal of enterprise systems.
When OP says they built their own internal chat app, that's not entirely accurate - uChat is built upon Mattermost.
Mattermost has been rock solid for the last couple of years for my team BTW.
Compare with a small development team for a significant percentage of their time to build a halfway decent chat tool.
Miles of difference.
Perhaps the memo didn't make it around to everyone.
Look at their competitors in Asia (all-in-one services like WeChat, GoJek etc. where search, chat, ride hailing, banking etc. are all built in one app) and it would make sense for them to have an engineering team building a chat app.
Well that's the incentive for that kind of behaviour, pad your resume and get another job.
Given that Slack can be seen as IRC with some pretty decoration glued up to an Elasticsearch instance, and that Uber already has a highly trained tech org in place, if it wants to make a Slack "clone" for less than, say, $25million (cost of Slack to Uber for 5 years), it could actually be a pretty sensible decision- especially when you take into account the tax and stock-price benefits of capital expenditure.
Maybe they realised it was a superior solution to building their own app.
Uber's internal chat tool is built on top of Mattermost.
Not directly related to mattermost and Uber, but companies tend to list clients even if the product is not widely used or was even dumped.
You are a small team in a big company, you evaluate a product and find that it satisfies some of your basic needs but want to work with it for a while, so you purchase a couple of licenses for you team but stop using it after a year or two.
voilà ! you are a client listed on their web site
Anyway, as another commenter pointed out, on an enterprise scale I'm sure you can get a good deal. I can also imagine however that at that scale you'll want multiple Slack servers / instances - which would add cost given how slack charges per person, per server.
So there's a few alternatives then; self-hosted (some parties will offer enterprise customers the option to host an instance of their application on the customers' internal hardware), or rebuild it yourself. The latter one however takes a bit of math - how much is it going to cost to build, maintain and run it? It's easily underestimated.
And yet, it's also easy for people working in an engineering culture with nearly limitless engineering capacity to just build it themselves - motivations being "how hard can it be", and "I need something more challenging than tweaking this button for my employer to earn 0.1% more money on this particular feature". I've seen it happen far too often.
But even if they didn't, it's not as simple either as "can those engineers clone this software for less than X", it's whether they can afford to take the opportunity cost of not having engineers work on something core to Uber's business.
The equal and opposite problem is managers who don't understand the sunk cost fallacy and refuse to throw out home grown solutions. Sometimes there might have been a good idea to homebrew a thing years ago because nothing good existed. Now several better solutions exist but the company refuses to adopt them because doing so would mean "throwing away" years of work, and the managers who signed off on that work are afraid they'll look bad.
Apparently there was a serious suggestion that this new www was shoddy and we needed to write our own version of http - this got stamped on by some senior people at Martlesham (UK version of bell labs)
RMS was always right especially with regards to privacy.
Look familiar? https://mattermost.com/
There was some earlier discussion here on why trust between employees and employers is so low now, and this is a great example. Employees being laid off while new positions open up for that exact same role so that they can hire new developers at a lower cost or avoid having to promote other employees.
I often wonder how accurate the roadmap prioritization can be. I do agree it’s pretty silly to build a lot of infrastructure that will never effect your clients.
If you have for instance a billing process that needs to be automated, custom infrastructure is needed. Manual approvals of all transactions is a lot even for banks. Operations can always benefit from something that cuts their overhead time down a significant chunk. Operations approval on transactions seems like an operations problem but clients having to wait for approval means now the problem is shifted.
Disclaimer: I work on the M3DB team.
I assume you're not on the side that got laid off. I wonder what their opinion is...
>I think the lesson here is to grow responsibily, and it's real people's lives that are being affected. Don't hire people to alleviate your current engineer's burnout and stress.
Because those are trivial matters, and they should just suffer through them?
Seems like infrastructure/devops always gets short-staffed, presumably due to being considered a cost center. Interesting to hear someone observe this even as they're saying a company "over hired" and "engineers ran out of things to do".
That's interesting, I interviewed with Uber for an engineering management role in 2016, and was blown away when my potential boss said he had a "hiring target" for next year of close to 100 people. This was a relatively small product offshoot of Uber that is now closed. I thought that was absolutely nuts, not just the magnitude of the number but that getting bodies in seats was a metric that he/I would be measured against, but thought maybe that I just didn't understand how hypergrowth startups work and it would be a good way to gain a new perspective!
Full Disclosure: I did not get an offer, even though I walked out of that interview feeling I had never nailed an interview as much as I had that day.
In contrast to companies like Google, Apple, Microsoft, Amazon etc. that have mountains of their own money to burn (rather than investors') on research and OSS side-projects, it always seemed to me that Uber was trying to play the same game, but far too early. Paying lavish SF engineer salaries to generate cool, but not revenue generating, software is probably excellent for morale, culture and recruiting, but a dubious use of resources when you are losing money seemingly faster than it would be logistically possible to literally burn it.
Saying they're ~ "culling the low performers" can be entirely true, but it is also a Silicon Valley, meritocracy-culture-friendly way of saying "we're losing far too much money to pay bloated growth-stage poaching-game salaries to engineers, so if you're not working on something that generates revenue, glhf"
You're not just flipping the public/private flag on the repo.
If it helps you attract better talent, well - there's a financial incentive there through increased efficiency which I'm sure on its own is more than equal to the review cost.
Depending on context, sure this could be true. Like if you're comparing the cost of releasing some small OSS module of Uber's to Uber's annual revenue, sure, it's going to be a negligible cost. But if you compare against the cost of developing the module in the first place, it can easily be an equal expense. For example I spent several months on a BLE library for Android (https://github.com/iDevicesInc/SweetBlue) and asked my company to open source it. It took several more months to get the library to a point that was suitable for a proper OSS release. So cleaning up code, making sure no sensitive info, swear words and such, documentation, lawyery stuff, icons, PR copy, blog post, basic website, wiki, and much more nitty gritty I'm glossing over.
I mean a company can just throw code over the wall into GitHub and call it OSS, but I associate a basic level of polish with a proper OSS release that does indeed take a good amount of effort. And that's just initial effort! If it becomes at all popular then you have further ongoing overhead.
I'd say a general rule is that open-sourcing something is at least 50% of overall cost of the project.
I'm the manager of one of Uber's OSS projects, and all that the things you listed here ring true. I just know that in our case at least, OSS prep absolutely pales in comparison to the feature/operational work put in by the team.
To be clear, when I added "really" to that first sentence it was meant to communicate that there is some cost, but in the sense that it's negligible to Uber's losses, as you point out. I was responding to OP's "dubious use of resources" comment. But I can see that wasn't clear.
Do you expect to still be doing this same job (or one step higher) in 6 months?
THIS is the one that comes into play. All that stuff you listed before is a slog to go through when you go to open-source, but unless you're parking the thing as a proof-of-concept/end-of-life, you're now signed up for maintaining the repo. That means triaging issues, pull requests, helping out when contributors don't understand why their build is breaking, etc.
And there's the PM aspect of it: you don't just want to develop a bunch of features without talking to your community, so communicating (in a public friendly way) what you're planning to work on, when folks might reasonably expect that, how they might be able to help out, which of their contributed features you might be able to take depending on where you're at in your lifecycle, and RESPONDING TO COMMENTS all takes way more time than just "building [closed-source] product" in a team of 5-20.
And of course, one of the hardest of all: telling people "no, we can't take that change" when they've spent hours and hours doing work for your project for free. In that regard, we're still very much iterating on a transparent design process that allows for consensus BEFORE too much work has been done (though as we all know, building prototypes is often one of the best ways to find out if a design works right or not).
If you're doing it all right, everyone involved in the project should be doing some amount of all of this every single day. There's no compartmentalizing an engineer on an OSS project as "someone who just writes feature code" vs. "someone who does the repo stuff".
So going back to OP's point: no, it doesn't literally "cost anything" (or very much) to do the basic act of open-sourcing, doing it the "right way" at scale where you're truly engaging and working with the bazaar is very expensive.
Full disclosure: I'm a PM at Microsoft working on PowerShell and was heavily involved in it being open-sourced and ported to macOS/Linux.
But also, lots of folks prefer an object-oriented pipeline. Many of those folks (our primary use case for 10+ years has been IT management) are used to PowerShell on Windows and starting to learn or be exposed to other environments.
We've also got lots zsh-style optimizations in PSReadline. In some cases, we've got some catching up to do, but there's also lots of unique interactive optimizations hiding around[2].
It's also great for interactively exploring REST APIs and building scripts via that experimentation. Try running
Invoke-RestMethod [or irm] https://api.github.com/.
Store that as a variable:
$a = irm https://api.github.com
And then look at all the properties you can explore:
$a | Get-Member [or gm] $a.<tab><tab><tab>
Oh, and of course, one of the big reasons is "so you don't have to open a Windows VM to remote into your Windows Server boxes and manage them from a Macbook".
This is obviously not an exhaustive list, but it'd take a lot more time to write about every benefit and scenario here. In any case, it turns out that our user base is pretty spread out among different scenarios, but between our repo and usage numbers, we've been really happy with how excited that such a diverse group of folks really love PowerShell.
And feel free to reach out to me on Twitter @joeyaiello if you ever want to talk more about your experience (or just hop into our GitHub repo). :)
[1] https://aka.ms/PSGitHubBI [2] https://docs.microsoft.com/en-us/powershell/module/psreadlin...
Yes, it costs next to nothing to just open source a project if you mean literally just putting the source on some hosting site.
However, open sourcing something properly, where you respond to issues, document things properly, and provide build/test infrastructure to external developers is much more work. Not only that but you have to be much more careful when creating APIs and be much more vigilant about keeping backwards compatibility.
If the presumption is that the software would be useful ("developed for a reason") economics suggests there is some price people would be willing to pay for it, and you forfeit that when you make it OSS. That absolutely costs something.
Sure you may not want to be in the business of commercial software (support, maintenance, ultimately just responsibility) which is a completely sane thing to avoid. However when you are bleeding money at the rate of a small country's GDP per year, avoiding opportunities to generate profit based on intangibles like community engagement can come off as ill-advised. In fact, if your company is declared bloated, it stands to reason that you should have the capacity to take on the additional overhead of selling the software. It is not that contributing to OSS is wrong, or that your points are wrong, just that there is a time and situation for this kind of strategy.
Contrast with Amazon, whose entire development of AWS was for the reasons you point out. Instead of open-sourcing it, to the extent that would be possible, they made it into a product and almost in a single move turned consistent overall loss into a massively profitable company.
So this is not at all to argue against the merits of having healthy OSS contribution at a company, but more to say that a company can't contribute to OSS if they are bankrupt - so avoiding the latter should be prioritized over the former.
Even if it isn't they have just branded everybody with 'Uber' on their CV that is on the market a low performer. Think before you speak.
Why would you do that vs moving the high performers to the business critical projects?
In the first case, you're losing team members with tribal knowledge of the system and its requirements. In the second case, you're exponentially increasing the pathways of communication. In either case, you still have the ramp-up time for new team members.
I'm implying that rather than laying off top performers you find them a different role in your organization.
Granted if the skill set is incredibly niche--such as hand optimizing HC12 assembly and you've moved to ARM then perhaps not.
It's hard to imagine a scenario where an entire project teams skillset is so niche that they couldn't find a home for top developers in other parts of the org.
_Why haven't you already done that?_
Nobody likes low-performers, even when you're flush with cash. Fixing their mistakes is demoralizing for your high-performers. The word gets around that you have low standards, and it's hard to recruit.
The only way to get your money's worth from them is to put them in death marches and grind them down until they burn out and quit.
I am always extremely suspicious of claims that a company is going to lay off its poor performers and magically be better. If they're telling the truth, they are actually saying that their existing managers are incompetent.
There's a reason that all tech companies try to brag that they only hire the top performers.
There's a reason that all tech companies try to brag that they only hire the top performers.
Performance of an engineer is relative to his environment. I was a top performer on some teams/projects and a low performer on others.
Even if they ace your hiring process, you still can't know how they'll fit with the team long term.
Another way to think about it is that everyone has some productivity, some contribution to the company’s net progress. If someone’s contribution is negative, they should already have been let go.
If their contribution is less than others, maybe “bottom 10%,” but it is still positive, you may be letting go a relatively poor performer in a round of layoffs, but you’re still shedding a person with a positive contribution.
You are going to be worse off, no matter how you sugar-coat it.
If you define performance as change over time then this would seem to have nothing to do with mistakes. From what I've read about the space shuttle programmers, they would have been classified as low performance (low change over time) but who also made with very few mistakes (as I understand their process). At the other end you could have high performing programmers (lots of change) with high defects that they're always fixing (which could in turn qualify as still more change).
With layoffs you want to apply “cut once” approach or at least as rarely as possible, in batches.
Constant trickle of layoffs is very bad for morale, no matter who is laid off. It is also bad for an external image of management.
For example, closing a plant, or getting out of a line of business. If Uber decides not to have anything more to do with self-driving vehicles, they might lay off everyone in its division.
That would have nothing to do with poor performance on the part of individuals.
On the other hand, there is “These people are underperformers,” which is part of Uber’s allegation as they throw their former employees under the bus rather than take responsibility for their management choices.
I contend that if people are underperformers, a constant trickle of letting such people go is not bad for morale. It’s perfectly normal.
“Did you hear they let Dave go?” “Yeah. What took them so long?” That’s the usual talk.
Whereas, “Did you hear that they shut down ML?” “Yeah, and it was half the database tuning group last month, who’ll be next?” “I dunno, but I’m not hanging around to find out...” is the thing you are describing.
Long story short, I agree that a trickle of layoffs is not good, but I suggest that this is true when the people being let go are not thought of as holding the company back.
I disagree that it doesn’t matter who it is. If they are underperforming in the sense of being bottom 10% but still carrying their costs, I agree with you about trickle, but then we can’t claim that letting them go makes the company stronger.
But if they are underperforming to the extent that letting them go makes the engineering group more effective, then management should have identified them earlier, done everything in its power to make them perform, and let them go if they didn’t improve.
Ignoring net negative employees, or being blind to whether they are net negative, or keeping them around even though they are known to be net negative is bad for the company’s bottom line and bad for its morale.
I agree with your points, but optics might depend on a company. In a startup or smaller company being aware that underperforming employees are let go might actually improve morale. For bigger companies it is a typical situation that you notice or get to know that people from other teams are gone, but you may not be aware of their performance.
> Nobody likes low-performers, even when you're flush with cash. Fixing their mistakes is demoralizing for your high-performers. The word gets around that you have low standards, and it's hard to recruit.
Fixing mistakes is part of development. I am yet to be part of a team that never made a mistake. Mistakes are how we learn and get better.
If the same mistakes repeat, THEN you have a problem but if a single individual is to blame everytime, then it's not the individual's problem - you have a bad team. Your team has failed at teamwork - the primary focus of any team.
If you have a team of dozen engineers making a car, the car does not drive until all the parts are not only in place but they all work well together.
The way to make all parts work well together is to have the designers of the parts communicate and work together, well.
If the engine guy is not talking to the intake and exhaust guys, don't be surprised if there are leaks at best or the engine blows up at worst.
I AM assuming each team member went through an interview process. If the going was tough where you could not interview and had to let just any person in, hopefully this person helped you through the tough times.
What value does the interview process provide if you can't figure out if your candidate is a high-performer or not?
Why did your interview process select a low-performer?
Also, performance is the output of a team - a single person should not be expected to provide high-performance day in and day out.
That's impractical to expect out of a human being. A machine and a person have vastly different characteristics.
If my team is working well, we will have a high performance team. There is no other way to have high performance sustained over a long term.
Each team member needs to actually looking forward to working with each other.
The other extreme is programmers work in these silos and come up with solutions that barely work well with each other and then there's blame game being played.
Why do that nonsense? Save money? No - of course not!
Just work as a team!
> The only way to get your money's worth from them is to put them in death marches and grind them down until they burn out and quit.
I don't follow.
Death marches?
First of all WHY do this at all?
What's wrong with the alternative "Hey, it looks like it's not working out. We will be letting you go and support you in looking for a job elsewhere over the next X days"
At one point in time in the past, you and your team interviewed this person and found them useful - what changed that they are no longer useful?
Was an error in hiring made?
Own up, take responsibility and move on. Make the interview process better.
Did the person expect to get a larger bump come bonus/review time that did not happen and now they are demoralized and upset?
Own up, take responsibility and move on. Clarify better what bumps and bonus would be like and how much effort that would entail next time.
> I am always extremely suspicious of claims that a company is going to lay off its poor performers and magically be better. If they're telling the truth, they are actually saying that their existing managers are incompetent.
I also don't follow this and want to hear more about this perspective.
What happens to the people working in mining, transporting and delivering ice from Iceland to California when refrigerators get invented?
Are those people inherently low performers or has the industry they work for shifted beneath them?
We (developers) work in an area of high specialization and the market values us for it (to the tune of six figures).
I have worked at both product and service companies before where entire departments were laid off because a contract did not get renewed or the market changed.
Most employees AND manager involved there were and continue to be competent. We even hire and refer each other wherever we might happen to be to this date even though we met decades ago.
This is a story for retail that will be buying stock. "We cannot afford X" can be an stock buster.
I completely disagree. Which would you rather have:
(a) Business is booming, but leadership holds off on hiring because they believe the boom won't last forever.
(b) Business is booming, so leadership hires to support the boom. The boom eventually subsides, so leadership decides to lay off as the business is no longer there.
Fortunately, even as an employee, I'd much rather have (b) (assuming the timeframe was relatively decent, i.e. I didn't get hired and laid off in 3 months).
I've said this before, but in growing industries, I do not believe lay offs are something to fear. I mean, given the desire for experienced engineers and product people, I have no doubt these Uber folks will get snatched up extremely quickly. (and to emphasize, I certainly do NOT believe this is the case with shrinking industries)
A job candidate with solid skills will be able to show their value to employers, and if an employer puts more weight on this quote over a candidate's qualifications then it was a bullet dodged.
I generally agree with this, except when the candidate in question needs the money paid from a job more than they need a good job.
In any case, yeah, in that respect it is a massively shitty and unnecessary thing to do to employees. They could have easily left it as "re-structuring" without a risk of tainting the reputation of former employees.
I totally agree with everything you're saying. But I'm going to quibble with your phrasing. Apple's cash reserves belong to the shareholders just as much as Uber's funding rounds.
Too many CEOs operate under the mistaken belief that retained earnings is "play money" in the way that paid-in-capital is not. For investors, retained earnings are subject to the same opportunity cost of capital as funds raised by equity or debt.
Its management's responsibility to deliver returns exceeding the firm's weighted-average cost of capital. If they can't do that, then they should return capital to the shareholders, who can then use it an alternative higher-returning venture.
My sentiment was that if a company is losing money consistently and egregiously, they are on borrowed time and a borrowed dime in very real terms as the trajectory is towards 0 - but the context is largely psychological. To your point, waste is waste. I agree wasting cash generated from profits is equivalent to wasting it from earnings.
I'd insist there is some practically relevant difference in there though.
Wasting money during a trajectory to bankruptcy creates a narrative of negligence that accelerates failure, while wasting it during a consistently profitable trajectory seems like sub-optimal management. The kind of thing that is theoretically identical, but in the real world of behavioral economics, the former seems more certain due to how easily the trajectory to failure can be estimated. The latter creates a weak narrative because of hidden information - nobody will ever know what "could have been" and so can never quantify how sub-optimal the management was.
E.g. nobody is dragging GE executives out of retirement/the grave to answer for long-term effects of sub-optimal management, and further nobody could prove at the time it was sub-optimal, only hypothesize. On the other hand, everything Elon Musk does at Tesla is torn apart and front page news, because they have a trajectory towards failure a high school student could easily calculate.
So "management's responsibility" to optimally allocate capital is sound in theory, but in the real world of imperfect and outright unknowable information, nobody ever really knows what optimal is. Sub-optimal comes to be expected as normal, but accelerating a trend towards failure is a powerful defining narrative. Somehow this matters.
Worker-owned firms are a great idea, but if that's the only ownership model then you lose some ability to diversify your investments. Everyone's 401k goes poof.
Thinking through this, what are the alternatives? Simple cash reserves are out (because most societies can't seem to shake the tendency towards inflation). Bank savings accounts are a good idea, although impractical in our current society because interest rates are so low.
Put it this way: gravity turns space dust into supernovas. Dust is just ever so slightly attracted to other dust, so it accumulates and accumulates, and eventually it becomes so massive that it forms a star.
The theory that firms should beat the market makes money gravitational. A shareholder who beats the market will get more money than other shareholders. Now they have more money that they can use to invest in other market beating schemes, etc. If whether a firm beats the market is random, then some investors will win and some will lose but it all balances out. But if beating the market is not random (and how could it be totally random?) then those with the most money can invest in the best firms faster and more easily than smaller investors and crowd them out. Remember that companies only have a finite number of shares, so not everyone can invest in a winner. If there's even a slight bias towards having more money making it easier to beat the market, then eventually you will get a supernova.
We all understand this on some level. Why is insider trading illegal? Because it makes it trivial to beat the market!
Airbnb is a business innovation with a shiny website frontend. But I really don't get all the hype around Airbnb engineering.
You are assuming that these companies are letting engineers to do side-projects that are unrelated to their day to day work?
As far as I know the OSS projects these companies put out are in line what they use internally for day to day work and it is absolutely core to their business.
Examples:
- Amazon: https://firecracker-microvm.github.io - Google: https://github.com/google/guava - Microsoft: https://github.com/microsoft/vscode - Apple: https://github.com/apple/foundationdb
Am I missing the point? Are OSS projects from these companies that are side-projects?
While on the subject, I am not sure about Uber's contribution to OSS. Their projects tend to be outside of my purview.
>> Paying lavish SF engineer salaries to generate cool, but not revenue generating, software
Nobody is forcing Uber to employ people in California.
The motivations for making software OSS are varied and often strategic. For example software is often open sourced to:
* deliberately commoditize it - to eliminate competition and differentiation in that area / stack layer * leverage additional (free) testing and development. * Drive ecosystem / platform adoption * Literally free up customer budgets to be spent with them, rather than on licensing 3rd party software * Intangible benefits like community image, employee satisfaction, etc. * Some combination of above when the software is useful internally, but simply not in a market that the company wants to compete in, or a market worth their time
In any case, the point was that they are "side-projects" from a business perspective in that they cost money but don't generate revenue - the benefits are hard to quantify. Successful, stable companies have much more breathing room for strategic and the "hard to quantify" ROIs than does a company on a trajectory towards bankruptcy. It is kind of like an individual out-of-work engineer with a month's expenses left in the bank choosing to contribute to OSS instead of seeking out paid work. It is not that contributing to OSS is wrong, it is that the priorities in that situation are backwards.
RE: "Nobody is forcing Uber to employ people in California." That is entirely true, but I'm not sure what your point is. My comment is a post-mortem on what led to the layoffs. It is a priori that nobody has forced Uber to do anything that it did...
I have said this before but they seem to have a strong "must be built here" culture. You typically see this in highly political environments where engineers are trying to create projects as a career highlight and as a justification for promotion.
Really?? They have O(thousands) of drivers in O(hundreds) of cities with the app open, sending and receiving data approximately all day.
What companies in your mind are data heavy?
The "data heavy" businesses often have the ability to cache their data in CDNs. Uber's data is realtime and dynamic, you scale that the hard way.
Data heavy to me means terabytes of data with potentially multiple dimensions, like Google or Facebook.
Not to say that Uber's problem isn't challenging, but I don't expect that the amount of data is necessarily the problem.
Think of that vs. a company like Instragram where people are uploading probably terabytes of media content every day, and they have to maintain/host all that content to be served on-demand basically forever. This is probably a low-key reason for pushing "stories" - they get a reprieve by only having to store that for 24 hours. In any case, you're looking at orders of magnitude larger data usage in all aspects.
Uber gives estimates of when your ride will show up.
They do lots of stuff in fairly real time with that data and a lot of it is probably compute intense.
Not at all comparable to Instagram.
FWIW an Instagram pic, 1080x1080 is around 100kb.
Uber has to do a lot more processing on it's data. I'm sure there are real challenges and the OSS projects from Uber I've seen/remembered on HN seem to be the type one builds because existing tools don't solve the problem well enough for their cases.
https://instagram-press.com/blog/2017/12/05/introducing-stor...
5 billion rides in 2017. That's 14 million a day on average. I would guesstimate peak days have at least double the average.
That is data heavy to me. (-;
A single video doorbell can use 200GB / month. With only 10,000 users that is 2 Petabytes of data traffic per month. Not to mention recordings that have to be stored and hosted for streaming later on.
Everything is relative (-;
Often though they don't cull low performers, they give each department a budget or a head count they have to hit. A department made up of high performers will have to cull a high performer to hit budget, a department which is overloaded will become more overloaded and people will quit in response.
In a company the size of Uber a restructure is often a pretty blunt instrument.
[1]: https://www.chicagotribune.com/business/ct-biz-uber-hiring-o...
On the database side, there's a place in my city that has some permanent bad data in the db so that it won't allow anyone to get picked up or taken there. I go there frequently by Uber and have to set the pin a few blocks away from the corrupted area then explain to the driver where I am or where I am going. It's like there's a ghost car attached to that place because every time I try to get a ride from there, it says it's finding me a ride, followed by an error message that the driver is unavailable. Had a painful back-and-forth with support about this and of course nothing every got done.
While the Android app is of poor quality and no one is rushing to fix it, Uber engineers are busy putting out open source software and plenty of it. Talk about resource mismanagement!
1: https://www.nbcdfw.com/news/local/Dallas-Leaders-Approve-Abo...
I still see zero reason a company like Uber should be based in San Francisco. We landed a man on the moon with parts built all over the United States, so it's not "that's where the talent is".
It's exceptionally difficult to get investment money if a tech company isn't located in the Bay Area or Seattle.
With Uber, it could be either one, but I certainly don't think it's just run-of-the-mill 'marketing speak'.
edit: After reading a few different articles it seems like every article says a different story about how much space Uber is committing to, so maybe you're right, it does sound a little wishy-washy.
It's really so tone deaf to have recruiters to be talking about their unique culture and rapid growth right after HQ lays off hundreds of people.
1) This is a public company with shareholders. If they think they can cut costs without hurting their revenue outlook that's not a bad idea!
2) We all know that interviews for engineers in SV suck ... So why can't you fire someone if you make a mistake?
3) I work at a company (Google) where the prevailing assumption is that if a team is not getting enough done it should ask for more engineers. That almost never helps. It adds communication overhead and doesn't address the problem of why the team wasn't getting to where it thought it would. Just smothers the issues. The most effective teams I've ever worked with were 3-10 people who were motivated and working in their area of expertise.
4) We all know that one bad teammate can undo the work of two good ones.
I could go on. Yes I truly have sympathy for anyone who loses their job suddenly. It sucks for them and those who depend on them. It's probably good for Uber though.
What I'm finding at Google is that whenever a team takes longer than 2 quarters to do pretty much anything, that's considered some kind of "problem" that needs to be "fixed." Sometimes the problem is that the technical challenge really needs more than 2 quarters to be adequately addressed. And yes, the first instinct is to ask for more headcount. But often times the problem is also with the headcount you have, not the headcount you don't have.
What is usually needed is to get rid of the TLM who got into a management position through the IC track because of the collective delusion that someone who has worked their way up to Senior or Staff SWE by writing dank design docs and uber code (often in vast quantities) has also acquired senior engineering management competency.
Once you've hired somebody who has significant education and/or experience with engineering management is managing the team, the next thing for that person to do is figure out how to increase the health and effectiveness of the team they have. You might even need to reorg to get the team size down to 7-10. In the process you need to give the team a couple more quarters to cut their MVP down to the bone and deliver on it.
Then, and only then, should you think about throwing more headcount in the team's general direction. And it needs to be done with the goal of adding a layer of management hierarchy, making sure than no more than 7-10 people are in the daily standups.
Uber is in a precarious position and I can't help but wonder what would be different if Travis Kalanick were still in charge. I know it might be an unpopular opinion, but I think his leadership and vision were really instrumental to Uber's early success.
I don't think that's an unpopular opinion at all.
Never heard someone say otherwise.
EDIT: From the the downvotes I can tell I am wrong.
Please help educate me: Honest question: Who or what was "really instrumental to Uber's early success"?
Using VC funding to bankroll an unprofitable business model, undercutting existing industry players who didn't have multiple billion dollar rocket boosters, mostly. Ignoring laws and other unethical practices no doubt helped.
The on-demand rides industry (Lyft, Uber, et al) managed to not only lower pricing, but also bring Karma (bi-lateral user ratings) to the whole industry so that a driver can't just say "fuck you" to a passenger without consequence (nor could the passenger to the driver). If this didn't improve the world, I'm not sure what does.
Their fixed costs are servers and engineering. If they set their prices higher than what drivers are willing to accept they should make money.
I don’t see how “basic economics” is the enemy. Their enemy is setting expectations too high. If they were happy with a profit of $100M a year they would be sustainable forever.
If they raise prices then quantity of rides will go down. If quantity of rides goes down, it becomes harder to earn a living as a driver. If it is harder to earn a living as a driver, there are fewer drivers. If there are fewer drivers, then the cost of drivers goes up.
Not to mention the fact that if uber becomes 10% more expensive a large chunk of those customers will just go to lyft.
A driver only gets paid if a passenger rides. If Uber increases the costs of their rides over a competitor, the the customers will opt to the competition.
Uber will see their margin squeezed down to nothing because they add nothing of value to the transaction: Any random cab company can buy a dispatch app.
That is actually the case in many markets - in Russia local city cab companies all have their apps, so you have three-four installed and you're good to go. And Russian Uber (aka Yandex.Taxi) is here as well
Because if anyone can be a taxi anytime (aka open market), then you get a race to the bottom, both in quality and availability. Then there isn't a steady supply and a lot of collateral problems (accidents, crime, etc). The solution a century ago was to regulate: limited number of taxis and minimum driver qualifications. In the days before apps and routing, it meant that there were taxis available most of the time, except for maybe at peak times.
My point is that taxis are an extremely good example of why you need regulation. Uber and Lyft will succeed to the point they can replace that regulation (cheap enough fares, good enough cars and drivers).
You could also argue that Uber and Lyft are controlling the taxi market because they don't let drivers set their own fare. From the point of view of the driver, taxi-driving is an Uber-Lyft-sanctioned cartel right now.
The cost structure of any urban car service company has four components: vehicle costs (typically 18 percent of total, including acquisition, financing, maintenance, and licensing), corporate costs (15 percent, including dispatching, advertising, overhead functions such as IT and legal, and returns to shareholders), fuel (9 percent), and driver compensation (58 percent, including benefits).5
Uber’s business model shifts the vehicle costs (ownership, maintenance, insurance) that traditional companies used to incur to its “independent contractor” drivers. Passenger fares need to cover total (Uber plus driver) costs. But shifting the burden of vehicle costs and financing onto drivers makes those costs higher, since hundreds of thousands of drivers with limited capital and business experience cannot possibly manage these costs as well as even a typical traditional cab company. Traditional cab companies also have much lower corporate costs, as they avoid Uber’s huge expenditures in areas like political lobbying, global branding, IT development, big corporate headquarters, etc.
Uber should also have higher driver costs than traditional operators, because the huge increase in the demand for drivers should have improved wages, benefits, and working conditions. As will be discussed below, however, Uber initially offered incentives that increased its driver costs, but since 2015 has suppressed take-home pay to minimum wage levels. This exercise of artificial market power cannot be considered an Uber efficiency or productivity advantage.
===== On Structural Problems:
Far from revolutionizing the future of transportation, Uber has not solved any of the industry’s long-standing structural problems.
Most taxi demand is low-income; higher fares would shrink traffic and reduce utilization. Taxi demand is sociologically bipolar: 55 percent of demand comes from people earning less than $40,000 per year while 35 percent comes from people earning more than $100,000.10 Demand from lower-income people is driven by access to jobs in areas (or at times of day) when transit service is poor or nonexistent. Given the current income distribution of riders, any attempt to balance supply and demand will either drive lower-income passengers out of the market or result in wealthy customers being charged less than they might be willing to pay. Uber does not have the lower cost structure needed to improve service while keeping fares low, and apparently realizes that only a small portion of the market is willing to pay fares that would cover the true cost of its service. Higher prices would also reduce vehicle utilization and destroy any notion that Uber’s business has exceptional growth potential.
Uneven geographic demand creates unavoidable empty backhaul costs. Taxi demand, as with demand for every other form of urban transport, has extreme temporal and geographic peaks. Most cities have a dense core area where taxi demand is highest, and taxis operating within that zone can maintain reasonably high daily utilization. But the true cost of trips to neighborhoods outside that zone can be as much as twice normal trip costs since they will have an empty backhaul. Low-income neighborhoods receive poor taxi service because drivers rationally avoid trips where they won’t find a return fare. Uber does nothing to create new demand that can fill those empty seats, and has no way to vary fares based on backhaul utilization. People expect that the fare to the airport should be roughly the same at 6 a.m. (when the cab will return empty) as at 4 p.m. (when return fares are queued up).
Extremely high cost of peak capacity. Peak taxi demand occurs during the late evening, especially on Friday and Saturday nights. As with rush-hour transit and expressway peaks, the cost of the capacity needed to serve peak demand is four to five times the cost of serving demand on Tuesday morning. Cab companies cannot afford to provide all the expensive capacity demanded, creating conflict as wealthier people headed to restaurants and clubs fight over the limited supply of cabs with late-shift workers at hospitals and warehouses. Uber has done nothing to reduce the high cost of peak service or find paying passengers anxious to travel at off hours. Uber’s core business proposition (“push a button, get a car!”) by definition requires far more capacity and much lower utilization rates than traditional operators.
Overcapacity risk. Taxi businesses in unregulated markets have no natural barriers to entry, and thus face the risk of ruinous overcapacity that reduces utilization and precludes a workable balance of supply and demand. As both Uber and past cases of unlimited market entry have demonstrated, new entrants don’t charge fares high enough to cover full operating costs, ensuring major losses for everyone.
Uber did not suddenly discover ways to dramatically improve productivity and service quality that everyone else in the industry had been too stupid to recognize for the past hundred years.11 In fact, nothing in Uber’s business model solves any of the major problems that have long frustrated users.
Otherwise, yeah, Uber did fundamentally improve both productivity and service quality vs. traditional cab companies. Mobile apps are an obvious service quality improvement (predictable waiting times, ease of finding cabs in remote locations, ease of payment), and allow Uber to provide the same level of service (i.e. availability / waiting times) as traditional cab companies, but with less drivers (since a user doesn't need to actually see a cab in order to hail it).
All other issues apply equally to cab companies - e.g. empty backhaul costs, cost of peak capacity, bimodal income distribution of users - except that Uber does, or at least could, solve them better with technological means - e.g. Uber Pool and Uber Eats for backhaul costs, automated and/or predictable surcharge for peak capacity issues, Uber Black to target richer users.
Overcapacity risk: in some locations, cabs were practically unlimited (e.g. Slovenia) so this existed before, in other locations limits were either because of monopoly (e.g. NYC) or skills (e.g. London), both of which Uber improves - breaking monopoly lowers prices for users (without decreasing driver wages, simply by destroying the profits of rent-seeking medalion owners), and there's no need to know every street of London in the era of Google Maps (and I definitely don't want to pay for it).
So, let's not kid ourselves - Uber is strictly better than what was before, and given its global availability, it also has a moat (when you land in city X, are you gonna load and set up local taxi cab that you don't know or trust, or just use Uber?), though there are still some regulatory / monopoly issues (e.g. in London Uber can't use bus lanes, whereas black cabs can). But I want to take Uber whenever I can and I want London cabs to die in fire.
(Having said that, I'm short on Uber as I think it's overvalued - but that doesn't mean without value. Also, I'm not against regulation - cities could improve relevant regulation e.g. preventing Uber from lying about surcharges, driver availability / location and preventing drivers from cancelling rides, but most cities choose to instead serve entrenched interests by (attempting to, yet fortunately often failing) enforcing monopolies.)
TL;DR: quoted part of article is mostly wrong.
This was true when they started and not really true today. There are many taxi companies with proper licenses and full time employees using the same app model as Uber. Taxify (nowadays Bolt) is one example.
As someone who used call cabs in various Polish towns and suburbs since early 2000s, is claiming this was particularly bad is short memory or is the US bad at not just mass transit but also taxi service? I could get a cab within 15 minutes pretty much in any agglomeration, and even close suburbs. I didn't even need an app.
...I had that happen _once_, and:
> at least they tell you immediately if the driver cancels.
...exactly that happened. Amazing, it's like they ask you for your phone number for a reason. This wasn't much of a problem pretty much since cell phones became a mainstay. I am not sure how Uber improves on that, guesses from the travel path that the driver gave up even if the driver decides not to report?
With cabs, you're expecting a cabby to call to dispatch that they're not picking you up. A cabby can easily be on the way to pick you up, find someone on the way and never let you know. That's a big difference in both what's possible, and what the reality is: cabbies never let you know if they're not coming in my experience. That said, many cab companies have an app now.
...what? That sounds really unlikely.
> cabbies never let you know if they're not coming in my experience.
Well, that's opposite of mine.
Even if Uber isn't operating with more efficiency right now due to R&D and global expansion, there's no reason why they can't be given that they aren't operated by a guy on a telephone manually dispatching cars.
"Nearly impossible" is a simultaneously weak and strong claim. Let's try to break it down.
It may be useful to distinguish between shared rides and people using Lyft / Uber / X for a single group riding to a single destination. If there are stats on the distribution of number of parties in a single trip for the major providers, that would be a helpful stat. My anecdotal experience is that most rides I've taken and that I've seen others take are not shared, particularly for those on the higher end of the willingness-to-pay spectrum mentioned in the article. (If you're on your way to an important meeting, do you really want to throw in the variability of maybe picking up someone else along the route?) I don't think Lyft and Uber are perceived primarily as shared-ride services -- they originated as alternatives to single-party, single-destination rides. IOW, as direct alternatives to existing taxi service.
In terms of efficiency, please look at the breakdown of costs in the article -- I even excerpted some of those here. The cost of dispatch is actually quite low among the components of costs to run an urban hail-ride fleet. Look at Uber's R&D costs and, even amortized over the anticipated rides, and compare that to "a guy on a telephone." One fully-loaded Uber engineer's salary would pay for tens of full-time dispatchers in N. Amer. / European cities and hundreds of dispatchers where labor costs are lower. Similarly, the costs of fleet operations in terms of cars are going to be higher. Do you think "some driver with an app" can maintain and utilize a vehicle better than a taxi fleet, which can run the car 24/7 and have centralized maintenance facilities and bulk discounts on supplies and fuel? Efficiency considerations need to take into account both the costs and benefits. I think one of the points the article is trying to make is that Uber has been hiding these costs or relying on subsidies from private investors until recently.
One of the broader points the article attempts to make is that urban ride-hail fleets have attempted to optimize for things other than the pure efficiency of the rides. For example, they optimize for serving otherwise underserved areas (where some taxis won't go or won't take you because they're concerned about the unpaid backhaul). They optimize for some driver protections. I think it's useful to consider what is going into any definition of "efficiency." Is it utilization time of the vehicle? (This doesn't account for number of passengers served if the rides are longer because the rides are in suburbs rather than dense urban cores. It also doesn't account for taxis being utilized 24/7 while a privately-operated Uber maybe is operated 14 or so hours / day -- if the driver is willing to push the margins of safety and sanity.) The number of rides per hour? The time it takes per unit of distance? (On that last point, there's some evidence that the rise of uncapped ride-hailing services in urban cores has led to significant traffic increases s.t. it's actually slower to get around now in dense cities precisely because of Uber.) The article attempts to call attention to some of these other possible dimensions of optimization. Depending on which dimensions are optimized and the transportation network, it is entirely possible for "a guy on a telephone" to be more efficient. And questions of fairness -- for drivers, for pedestrians and mass transit riders, and for others -- will be affected by that choice of optimization.
Uber could be profitable at higher prices. But would we just be left with a higher-priced taxi service that significantly decreased fairness?
Incredible leader, amazing CEO with the raw ability to move mountains for the company's growth.
Remarkably bad at human and helping humankind.
If burning the Amazon rainforest helped Uber's goals he would have it torched in the most efficient and rapid method possible by morning light. Perfect CEO for the shareholders and maybe for keeping the lights on, not so much for the rest of us.
Perhaps to a fault. He seemed to be so singularly focused on increasing revenue that, when it became clear that people would line up around the block to buy crisp new dollar bills for $0.75 apiece, he didn't hesitate for a second.
I would say that the way how Uber aggressively expanded throughout the world has massively helped humankind. Because of Uber, many countries have changed their taxi laws, and many local competitors have sprouted up. More efficient taxi and ride-sharing services help save the environment and make cities nicer. Of course this is quite theoretical but I believe Uber was the needed company to push the mass transit development forward.
(More empty cars cruising around)
If you're going to do a full accounting of all the costs of all those additional cars on the road, and all that additional congestion, then rideshare doesn't come out looking so rosy.
I hope!
However, that doesn't mean he should still be CEO. Kalanick also created a company culture that became more and more toxic as it grew larger. Lyft was arguably on the ropes and might've failed without the #DeleteUber movement caused by all of the Uber scandals. Without Lyft for competition Uber might actually have the pricing power to be profitable now, but as it stands I'm not sure how viable they are in the long-term.
Uber’s corporate culture was ugly and toxic from the start. And it never got better or “came around” to a good cause. A better analogy would be Anakin moving from small-time massacres of Sand People to blowing up planets as Vader. The scale changed, but it was still evil all along.
I think it’s misleading to defend Travis as some misunderstood scoundrel whose enabling of sexual harassment didn’t “scale”. He’s just a shitty person who initially had less power to be shitty.
The Old Republic was flawed, but disruption in this manner was clearly a step towards a new, shittier status quo. Disrupting something and making it worse doesn’t make him a hero.
Disrupting something and making it worse doesn’t make him a hero.
Put it this way: I am posting this on a thread about Uber ;-)
The moral is, multiple things can be true.
When one side escalates to that point, and the other side takes away their weapon of escalation, it's false equivalency to try to equate the two.
You can have two different comedians tell identical jokes, word for word, and only one of them will be funny. Jim Jefferies does an entire bit about a journalist who reviews his jokes harshly after transcribing them to text. His conclusion is (paraphrasing) "my entire job is to say offensive things while still being likable."
This is with regards to businesses only, though. With people, it’s flipped. Poor? Bad behavior is vilified. Rich? Bad behavior is justified.
(Just an observation of a weird social phenomenon, without agenda).
If you do the same as the director of FBI, _excuse me_, Lord of the Sith, things are quite different.
Edit: but also, Uber and Kalanick were never small fries. So that's where it breaks down.
With all that said, I wonder if maybe Amazon or some self driving car startup steps in and buys them up for a lot less than it would to build that penetration. Can imagine your Amazon owned Uber driver bus picking you up, with half a dozen stops on the way, some people, some packages, doing the rounds. Things change, how will Uber adapt and more so, all those drivers on zero hour contracts, are just as easily laid off and much cheaper as well. Self driving cars are a case of when, not if as so much being done in the field, progress has become a hot competition and slowly getting there.
Alas google has become useless for finding useful information so I hope somebody who still has the book can confirm.
As others said, Sidecar was technically the first to the "ridesharing" model
Zimride (lyft) started the first rideshare site. Unless you count craigslist ads.
My skepticism of self driving vehicles in general is in desert climates. I really want to see a self driving taxi the day after a blizzard in Chicago (or elsewhere in the upper midwest... or even NYC when there's a good storm) where on some streets two lanes in each direction become one, and intersections can become "well, I'm not stoping because the car isn't stoping, thankfully the other drivers understand this and aren't asserting right of way when things are slippery". Some roads are closed and the smart drivers are happily driving 20 under the speed limit on the highway behind a snow plow.
Until then, self driving really strikes me as more of a California or summer time thing.
They say they're working on it ( https://www.bloomberg.com/news/articles/2019-04-23/alphabet-... )
> Snowy conditions are a serious challenge for the laser-based Lidar and other sensors that self-driving cars use to see objects in their path. Waymo said it’ll start working to overcome weather issues in Detroit’s notoriously tough winter months.
but I'll believe it when I see it.
"...create 3,000 full-time jobs and pay employees an average salary of at least $100,000..."
Considering the lower cost to operate in TX it would make sense to move IT roles to that area.
https://www.dallasnews.com/business/technology/2019/08/09/ub...
>The office would include engineers, finance executives, salespeople and other roles across Uber's business.
This directly quoted an Uber exec saying that it will be focused on HR, sales, and ops
That said, getting laid off like this would be much harder to bounce back from if you were not in a tech hub.
EDIT: Did I say I believe there's a recession coming? No. I said (accurately) that there are growing FEARS of one. There's definitely tightening of investments and capital happening.
Recessions happen on a somewhat consistent cycle (https://en.wikipedia.org/wiki/Business_cycle, https://en.wikipedia.org/wiki/Lists_of_recessions); people would be less fearful if they were better prepared for their inevitability. Antifragility would be a good concept to be familiar with.
The broader discussions within the markets are that one is on the horizon. I'm not so confident.
435 people, especially engineers, is no small sum of money.
That's how.
I read that they had 2,000 engineers out of 6,000 employees in 2016, though I don't know the numbers now. That seems gigantic.
Moreover, hiring a long-term employee today versus tomorrow might save money for a place like Google, assuming we expect competition and wages to continue to increase.
It strikes me that if Uber is laying off software engineers, their company outlook must be very, very dire. A layoff is perhaps better strategy than firing the bottom 5%, which would likely preclude the departed from re-joining at a better time. But probably the wrong message to send to a cohort like software engineers-- a layoff is a legal confirmation that the company made a big mistake.
(edit: sorry, see below too)
If anything, Uber has invested in too much tech for the sake of being tech heavy, which may not be best suited for their business (outside self-driving, which needs heavy tech investment).
Edit: By not that far away I'm talking 5-15 years. I'm not talking next week. Amazon burned cash for at least 20 years.
[Citation needed]
I wasn't referring to Uber's technology specifically, only that self-driving cars are what is required to make Uber as successful as they hope to be.
That's a pretty optimistic view; many people don't seem to share it.
But remember that there is a lot of value between "no computer on board" and "fully self-driving". Cars already have things like lane assist technology, smarter cruising technology, collision avoidance, software to help maintain distance between the car ahead of you, smarter breaking, better mapping and routing technology.
These are valuable features that can generate revenue even if fully automated self-driving cars never happen, or happen in 100 years. These are also features that can help older drivers with slower reaction times stay behind the wheel and keep driving, thus increasing the number of human drivers.
Alphabet was to more cleanly separate (in branding and organizationally) the core Google business from other ventures, which moved the moonshots out of Google proper. It wasn't to kill moonshots, though it may be accurate to say it was in part about being better at maturing them.
This assumes drivers that correctly allocate the source of maintenance costs among all uses of the vehicle in assessing cost/benefit of driving for Uber.
So, it assumes no new supply of drivers misjudging costs, and no drivers with multiple income streams that fail to recognize the source of maintenance costs and that Uber is losing money.
It's basically a “no one will buy lottery tickets or engage in other less-than-break-even gambling for non-entertainment purposes” argument, except that gambling venues are usually required to publish their net payout stats, while Uber isn't.
That is basically code word for political fiefdoms seizing power.
No cloud-hosted or SaaS company should allow silos or redundancy around communal services.
This is long overdue and Dara is making the right move to clean up.
But to your point.... should the Engineers be reallocated to a bench until properly utilized? Yes. Moves like this can be poisonous to culture long-term.
I doubt that. Uber's place in the market is very much theirs to lose. It's more reasonable to think that this is the market for software engineers in SV/SF starting to correct itself.
I just hope there won't be a kind of AI winter when some of these startups run out of money.
This is thrown out all the time. How exactly does this save them?
Are they going to spend billions to purchase and maintain a fleet of their own taxis? Are they going to be paying people to "borrow" their self-driving cabs? Something else?
I just don't see how this suddenly changes the equation in a meaningful way. People aren't going to spend more for a self-driving ride and the costs can only go down so much.
>This is thrown out all the time. How exactly does this save them?
They know that their days of paying drivers less than a living wage and no benefits are numbered. They have two options: Raise ride prices to pay drivers more, or get rid of drivers altogether. They're betting on the latter. The costs go down dramatically because buying cars is a one-time capital expense, rather than an ongoing cost of doing business. (Yes cars require maintenance but this is still cheaper than paying drivers.)
Are they? How much does a self driving car go for in today's market? And does your calculation include the fact that a driver comes with free car, maintenance, fuel, etc.
Even if the numbers do add up, SDVs aren't about to roll out next week. Remember how close we were to VR for about 30 years?
> It would also drastically decrease ubers cost of entering new cities
Entering a new market will require buying hundreds of cars + investing in facilities to maintain those cars.
They'll likely lease them, obviating much of the start-up cost involved.
I agree 100%.
There's a lot of evidence that self-driving cars will be MORE expensive that paying people to drive their own cars. Particularly since the R&D costs are just prohibitive.
Are they getting rid of under performers and getting new blood or are they cutting people from certain departments (in which case, they could apply to be rehired in another division?)
Many companies, certainly Uber as well, do smaller force reductions where the employees have ~60 days to find an internal role, after which they're laid off. It sounds like the same thing, but, it allows you to possibly keep the employees.
https://news.ycombinator.com/item?id=20558490
Edit: Guess not, that initial group was just marketing. From the article:
>These layoffs come shortly after Uber laid off 400 people from its marketing team.
Now take away the one-time IPO expense of $3.9B, and we're not even close to being true. Further take away the $300M "IPO driver appreciation award" and you end up with a $1B loss for three months ending June 2019. In other words, the quarterly R&D spend is over three times the size of the quarterly loss.
https://investor.uber.com/news-events/news/press-release-det...
Of the $3.95B total stock expense, $2.56B was from R&D, which suggests cash cost that quarter was more like $910m (still a lot!)
OP's inference that Uber's quarterly loss is more than double Uber's quarterly R&D costs in general shouldn't be propped up by a moment in time observation.
<joke>On the plus side, this may slightly delay the onset of type II diabetes related healthcare expenses!</joke>
Articles says 265 engineers.. 85% in the U.S. So up to ~200 will be looking for SF jobs? How many are remote or in other US offices?
Enjoy it while you can, I guess.
1) open the Uber app.
2) X - price of ride with uber.
3) open the Lyft app.
4) Y = price of Lyft.
IF Y < X -> Choose Lyft. Else : Choose Uber.
Currently, Uber is around 20% more expensive. Not good.
The rest is irrelevant to 99% of the customers.
Interesting. This hit seems to be mostly localized to the US. During their last mass layoff in July, employees from all over the world were affected.
[1] https://www.reddit.com/r/dataisbeautiful/comments/cwutan/oc_...
Recruiters salivating though
12h sort of performance.
while(true) { getHired(); work(); quitOrGetFired(); }
There's no logical explanation for any of these steps. Every company that is being funded is not funded for being responsible, but for showcasing a hockey stick growth and making investors go $$$$$$$. If you're lucky, there's a chance your company will be an unicorn, and if you are luckier, your stock will mean something, and if you are one of the luckiest, you can actually sell it and do something else with your life than work. Anecdotal evidence shows that you need to be really lucky than be meritorious to make money. It also shows that even with low luck, periods of employment basically give you that money stream.
Leave the analysis for someone else and get going! I've already done the good deed of referring the Uber engineers in my network.
IMO, about the open source thing - Now that you've left Uber, you still have the neat tools you need to build something better, faster, bigger and someone else already paid for the caveman to science work.
1k people to run the show in the main headquarters + some small-ish ~50-100 people regional offices should be enough to keep the company running.
I'm not going to try and give an exhaustive list, but as a rough explanation: things get really, really hard when you're operating at Uber scale (hundreds of thousands of riders on trip at any one time, each demanding low latency and reliability):
- Product: native clients for each side of the marketplace in each vertical (rides, eats, freight, atg, et al), maps, localization for every country with a presence (not just language, but tax, legal, hundreds of region-specific modes e.g.: tuk tuks)
- Infrastructure: hardware teams to build on-prem DCs (cloud can get very expensive at scale), software networking to deal with said low-latency traffic, storage to optimize for reliability/latency/cost, observability (metrics, logging, alerting, tracing), security, et al
- Data: insights, operational support, routing, et al
- ATG
Hope that gives a better idea.
VMware for example, assuming they don't use ProxMox lol, is super expensive, hardware maintenance, network, power, building, etc.
I still feel like this is a ridiculous amount of workers when one takes into account that the product they're offering is essentially a smartphone app with a backend service that pairs drivers and customers, which regular cab markets do without almost a single person.
To me Uber feels like some sort of soviet-era experiment of replacing a market with someone micromanaging cars
It's like saying Microsoft Office is "just an app that writes documents" or that GMail is "just an email client."
Uber and Lyft do a whole lot more than what you described on the scale of millions of concurrent users in dozens of countries.
Your comparison to a taxi isn't really a great one because you see taxis sitting around on curbs and driving around empty looking for a passengers all the time. A lot of the cost of a taxi is you paying for idle time.
which is my point. There's no use in engineering and coordinating something that organises itself. The utility of a centrally managed service needs to be balanced against the resources it costs to run the operation.
Taxis actually don't spent as much time sitting around as you think, traffic organises quite spontaneously, drivers know where to wait and downtime is usually quite low. Which is why it is so difficult for Uber to make a profit, the efficiency gains compared to the engineering effort that goes into them are miniscule, which is the disease of all centrally managed systems. The Soviet planning buro managed millions of factories which sounds impressive, it doesn't mean that they were any good at it.
If Uber would realise such huge efficiency gains in organising rides the result would either be higher wages than taxi companies or lower prices, which would make them instantly profitable, no billions of subsidies required.
I work in a big organization of over 1K people and although most people work extremely hard, I still don't see how most of what we do helps the company enough to warrant a decent ROI.
27k does sound like a lot, but your figures seem arbitrary if you've never looked at their internal software, operations, what's being developed that we don't know about, etc.
Good riddance.
Wow
¯\_(ツ)_/¯