Just for clarification, So you can't really host this without open-sourcing my product (since your server is AGPL). Isn't it a stretch to call this really open-source? I compare this to something like a temporal which I can self-host without worrying (and which I believe is MIT license [https://github.com/temporalio/temporal/blob/main/LICENSE])
AGPL is fully open source, and definitely allows you to host it without open sourcing anything of your code. That's one of the very freedoms that the open source definition contains.
Congrats to anyone who worked on it! However, I'm guessing the cost of just running this team be quite large and not significantly different from the savings (6M), and add on top of it the overhead of maintenance. Payments would not likely be a long-term bet as well, so kind of interesting why teams take up such projects ? Is it some kind of sunk-cost with the engineering teams you already have?
At one end of the spectrum, some people here claim to write this kind of software over a weekend. Some others claim they require a salary of $600,000, and still need nine additional colleagues to pull something like this off.
There is a lot of room in between, where cost estimates are more realistic.
Plenty of things can be prototyped over a weekend, but many will require months and even years to get production-ready, feature-complete, and useful, especially at scale.
This answer pretty much sums a lot of my experience. Of course when the guy somehow pulls this off in 2 weeks it is seen as an easy side project with proof that it is, haha
The estimate sounds suspiciously similar to just the data storage component of DynamoDB. 1.7PB of data and indexes is about $5.1m/year in DynamoDB storage at list.
Supporting that, Uber’s blog post linked from the article mentions cost savings as a benefit from going from three systems to one, and doesn’t really mention any dollar figure afaict.
Developing and maintaining a totally bespoke DB system with that kind of volume even for $5m/yr, spitball you could get yourself 25 top-notch engineers without AI PhDs and have another mil left over for metal. Sounds plenty feasible to have a nice tailored suit for a core part of your business.
> you could get yourself 25 top-notch engineers without AI PhD
Not in the US though. According to levels.fyi, an SDE2 makes ~275k/year at Uber. Hire 25 of those and you're already at $6.875MM. In reality you're going to have a mix of SDE1, SDE2, SDE3, and staff so total salaries will be higher.
Then you gotta add taxes, office space, dental, medical, etc. You may as well double that number.
And that's just the cost of labor, you haven't spun up a single machine and or sent a single byte across a wire.
> Then you gotta add taxes, office space, dental, medical, etc. You may as well double that number.
Economies of scale help a bit with this for larger companies, so it's probably not quite double for Uber, but yeah, not too far off as a general rule of thumb. Probably a 75% increase on the employee facing total comp to get fairly close to the company's actual cost for the employee.
"and have another mil left over for metal" was the part accounting for hardware, infrastructure, etc.
And you can fudge the employee salary a mil or two either way, but the point is that spending that much on a team to build something isn't infeasible or even unreasonable.
Uber is a technology company that tracks 'rides' between drivers that are contractors and customers, and accounts for taking money from one and giving it to another. I wouldn't just call it a core part, I'd go so far as it say it is the intrinsic essence of their business. They're not a bank, but they're not running a branch with tellers taking cash and running ATMs, either.
They are in the transportation market serving transportation needs for a transportation-seeking customer base. How they accomplish that is obviously interesting, but their attempts to move laterally haven’t been amazing from what I can tell (though I don’t follow them closely).
They are structured and run like a tech company but imo they don’t produce a tech product.
> They are structured and run like a tech company but imo they don’t produce a tech product.
This kind of comment could kill their stock :P
Uber said they were going to produce self-driving cars, so technically they are a failed tech company, which is now just a company. I am surprised they didn't get crushed by a competitor that didn't waste their capital on worthless stuff. So much for capitalism working. Uber should have gone bankrupt.
There is just no way that their database is actually technologically novel. Uber just doesn't have the expertise.
> I'm guessing the cost of just running this team be quite large and not significantly different from the savings (6M), and add on top of it the overhead of maintenance
I'm guessing they know a lot about their costs, and you know very little. There's little value in insulting the team members like this.
> I'm guessing they know a lot about their costs, and you know very little.
I'm curious what makes you believe the OP doesn't know about cost? They might be director-level at a large tech company with 20+ years experience for all you know...
> There's little value in insulting the team members like this.
I'd argue it's not insulting to question a claim (i.e. 'we saved $6MM') that is offered with little explanation.
If you read the article the system was a layer on top of DynamoDB they updated it to use internal product Docstore which required adding a feature to Docstore. So it's not as involved as people make it out to be. Also records are immutable which makes a lot of things way easier.
Off the self software doesn't make sense for a company that is planning on lasting a long time. These solutions are all designed for multiple use cases. That means that there is complexity and inefficiencies that are not required for your particular problem. If you were to just focus on your problem wouldn't you just end up at an ASIC as the most optimal solution? Reason most software doesn't is 1) people like to re-invent the wheel 2) As you go start going lower level the less qualified people you can find.
I'd be curious as well to see a more complete cost-benefit analysis, and I'd be especially interested in labor cost.
We don't know how much time and head count Uber committed to this project, but I would be impressed if they were able to pull this off with fewer than 6-8 people. We can use that to get a very rough lower-bound cost estimate.
For example, AWS internally uses a rule of thumb where each developer should generate about $1MM ARR (annual recurring revenue). So, if you have 20 head count, your service should bring in about $20MM annually. If Uber pulled this off with a team of ~6 engineers, by AWS logic, they should about break even.
Another rule of thumb I sometimes see applied is 2x developer salary. So for example, let's assume a 7-person team of 2xSDE1, 3xSDE2, 1xSDE3, and 1xSTAFF, then according to levels.fyi that would be a total annual salary of $2.3MM. Double that, and you get $4.6MM/year to justify that team annual cost footprint, which is still less than $6MM.
Of course, this is assuming a small increase in headcount to operate this new, custom data store, and does not factor in a potentially significant development and migration cost.
So unless my math is completely off, it sounds to me like the cost of development, migration, and ownership is not that far off from the cost of the status quo (i.e. DynamoDb).
The cost doesn't suddenly drop to zero once development is done. Typically a system of this complexity and scale requires constant maintenance. You'll need someone to be on-call (pager duty) to respond to alarms, you'll need to fix bugs, improve efficiency, apply security patches, tune alarms and metrics, etc.
In my experience you probably need a small team (6-8 people) to maintain something like this. Maybe you can consolidate some things (e.g. if your system has low on-call pressure, you may be able to merge rotations with other teams, etc.) but it doesn't go down to zero.
If you follow the various links on the Uber site, you see that they have multiple applications sitting on the same database. see https://www.uber.com/blog/schemaless-sql-database/ . It's not just 1 design of a database, with 1 application on top...
That has been my experience, yes. You need one full-time manager, one full-time on-call/pager duty (usually a rotation), and then 4-6 people doing feature development, bug fixes, and operational stuff (e.g. applying security patches, tuning alarms, upgrading instance types, tuning auto-scaling groups, etc. etc.).
Maybe you can do it a bit cheaper, e.g. with 4-6 people, but my point is that there's an on-going cost of ownership that any custom-built solution tends to incur.
Amortizing that cost over many customers is essentially the entire business model of AWS :)
Nice work, looks like a lot of effort would have gone into building something this comprehensive.
But what are the problems you are trying to solve, as far as I can see that forma is a mix of few things - it offers google for works features and then some other tools to automate processes. But does it target any specific problems? I think the tool might be too generic for SMBs. From my limited knowledge most popular tools focus on one or two problems, before expanding.
We started to build Forma, was actually due to us having to subscribed many tools and softwares to run our startups previously. But we realised things like "Leave Management" or Expense Claims", it's really just "Forms to collect Data" and what happens next?
We thought why don't we replicate all the different small features behind all those softwares and tools out there, put them in a blank canvas and allow any non-technical individual to build whatever they need.
But yes, going back to your question on being too generic - We are focusing more on use cases in the HR and Business Admin area.
Hope this helps to clarifies~
Definitely work in progress for us! So much things to do. :)
Nice, this is useful for building tutorials. There are couple of things which you could think about -
1. How to host a page on a custom domain?
2. How to add dynamic content to the code? (example I change some variable which reflects in the code as well)
3. It would be useful if you can get the geenerated js/css files for any tutorial which can be embedded in other docs.
Because I guess this kind of tool is an addition to standard documentation. I built something very similar for our startup. Although in my case the code is built from dynamic content.
https://test.cashfree.com/docsdemo/create-order
Interesting, the most common narrative in most circles is how OYO is cheating its hotel partners left, right and centre. Basically, the OYO model is quite simple. Small hotels should upgrade their facilities and services to be in line with OYO standards (this upgradation is financed by the hotel owners).
With this new OYO branding, it provides new customers to hotels. Better services would mean more customers and a higher revenue, right? But this ends up killing the hotel's regular supply lines and traditional channels.
The real issue for hotel owners though is that while upfront OYO promises monthly payments higher than their current revenue, this seldom happens. Also apparently OYO is always late in paying dues and adding unsubstantiated penalties. Most news is littered with such examples.
You're right, that was/is a phase. The FHRAI (federation of hotels and restaurant association of India) complained against some of OYO's business practices in July this year and it made a lot of news (mostly changing policies with regards to commission and also delaying commission) to the Competition Commission of India.
Currently, OYO is making news for 4 reasons:
* Protests from hotels (so called OYOpreneurs)
* OYO founder's buyback funded by debt against shares and Sequoia, Lightspeed exit
* OYO growing a lot and acquiring companies worldwide
I can add some perspective. One and a half years back I took a 80 percent pay cut to join a 10 member startup. My salary now has improved to almost 60 percent of my previous company. I don't really regret that decision though and here are few things I clearly thought about before making the decision.
1. Learning and growth opportunities at the new place
2. Autonomy around my work
3. People
I think people derive meaning when they see that their ideas are appreciated and users care about the product. I liked the people at my previous job, however the first two items were somehow missing.
It also helped that one of the co-founders at the startup was a friend from undergrad.
> "Slamming hands in drawers hurts; one should not do it."
This is a fact and don't think this is what the author is trying to say.
I guess he's more focused on the kind of theories which people throw around as some sort of self-evident truth, when in fact it's a personal truth which they learned through trial and error.
But I guess there's a point in learning from some of these "self-evident" truths (this is more rare though)
There always has to be a balance between learning from other people's mistakes and making your own. However learning from the right people is important.
You wouldn't use avocadoes when a recipe asks for flour but in the start-up world, everyone seems to think that what works for the well-known successes will automatically work for them.
What really frustrates me (rant, rant... :)) is the notion that if I build, they will come. So so many of the start-ups I work with think that. What happened to people understanding basic business theory? Basic marketing theory would be useful but I don't hold out much hope for that!
This. Any good data science person needs to understand how distributed systems work. They need to be decent at applied statistics. I think an average engineering grad can easily work with simple statistics they learn in Linear algebra and intro to ML. The good software engineering part is what has been brought on in the last few years.
I once saw some code written by a "data scientist". The overall code was non-complex, but the Java/Scala code was the worst of my nightmare. Additionally, I think other engineers have also matured enough to understand that underneath the veneer of data science, the fundamentals do not change much.
Apart from being a great teacher, his Financial Valuation course is one of the best you'll find online. To top it all he provides all the resources/datasets needed (including the quizzes/solutions etc.). Wonderful guy :-)