News for hackers. Stuff that matters.
Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @02:51PM (#30948789)
I think the most applicable warning for engineers when it comes to the actual work, as opposed to whether one should join a particular startup, is this:

> Engineers calculated the load Fast had in needing to serve their traffic. The Fast button was rendered less than 500,000 times per day - rarely needed to ever serve more than a few requests per second.

> One of the few warning signs engineers noticed is how Fast spent far more on infrastructure than the scale of the operation would have called for. Engineers sometimes brought up suggestions to scale infra down, and save costs - given there was not much revenue generated.

Sounds like the whole thing could have run on a single cheap VM, perhaps with a second one for redundancy.

Re:What software engineers can learn from the rapid collapse... by rockostrich on Thursday April 07, 2022 @03:58PM (#30949634)
This is pretty hilarious to read.

I did an interview screen with them at the end of last year for a data engineering position (former coworker was high up on the design side of things and he gave a referral). The first bit of the technical question was just "write a SQL query" and boiled down to doing a group by, count, and limit. The second was something like "what if we needed to return this query from a distributed system without going to the database?" without much context.

As any sane interviewer would do, I asked for context around scale, infrastructure, and what "without going to the database" even meant. The interviewer just reiterated the question. I started talking about different approaches depending on context and all the interviewer did was tell me to program a solution. Turns out all he wanted was a time-windowed hash-map to cache values and the fact that it's a distributed system didn't matter at all.

I think that just about sums up their approach to engineering solutions.

Re:What software engineers can learn from the rapid collapse... by teruakohatu on Thursday April 07, 2022 @11:58PM (#30953191)
What is a time-windowed hash-map? Just a time based key-value store?
Re:What software engineers can learn from the rapid collapse... by agilob on Friday April 08, 2022 @03:20AM (#30954233)
Yes, a hash map that expires objects and loads new KV when key isn't present inside

https://github.com/google/guava/wiki/CachesExplained

Re:What software engineers can learn from the rapid collapse... by lupire on Friday April 08, 2022 @08:37AM (#30956112)
No, it's a rolling buffer of last N hours/days of data, but compressed into a hash table of counters instead of a log array.
Re:What software engineers can learn from the rapid collapse... by omalleyt on Friday April 08, 2022 @02:39AM (#30953987)
I think he means an LRU cache
Re:What software engineers can learn from the rapid collapse... by lolsoftware on Thursday April 07, 2022 @03:07PM (#30949008)
The TailScale folks caught a bunch of flak for their "do things that don't scale" approach to databases. But, honestly, most startups would be better off following that approach than what Fast did. Sounds like the engineers were just entertaining themselves with shiny toys rather than solving the problems they actually had.
Re:What software engineers can learn from the rapid collapse... by enra on Thursday April 07, 2022 @04:03PM (#30949695)
> Sounds like the engineers were just entertaining themselves with shiny toys rather than solving the problems they actually had.

This is often the problem when hiring too fast. New employees don't have context or direction but generally people try to be productive, so they start inventing work.

Management team is new too, and not built up either direct or handle the bandwidth and they also are lacking the direction. Senior leadership and founders are likely busy hiring more folks and potentially trying to sort through the chaos described before.

IMO, pre-product market fit company shouldn't have 500 employees, maybe not even 10. These things don't become easier with more people, usually everything gets harder and slow. You also shouldn't have massive marketing or sales force before you actually have product to sell and have figured out your sales motion.

It seemed that Fast was just trying to shortcut their way to be the next Stripe by hiring people instead of actually working on the fundamentals like the product and business.

Re:What software engineers can learn from the rapid collapse... by kevan on Thursday April 07, 2022 @04:32PM (#30949973)
It's not just limited to startups. When my business unit in Amazon spun up we hired way too fast and ended up having a harder time shipping v1 of the product than if we would've started lean and grown organically. We ended up spending a lot of time on a modularized platform to enable ~5 matrixed feature teams to contribute across iOS and Android apps. Looking back, a small dedicated team for iOS and another team for Android probably could've shipped v1 in less than half the time with a lot less tech debt.
Re:What software engineers can learn from the rapid collapse... by enra on Thursday April 07, 2022 @06:17PM (#30950996)
Yeah for sure. I think even senior leaders forget the team culture/context piece, and try to scale up too fast because they are used to it in their current orgs or previous companies.

If you have a 500 person org that has operated for years you can probably add 10%-20% new people each year without it breaking too bad. But it can be very hard to build a complete function from 0 to 100 people within a year because there is no infra, culture or understanding how things work. The new people cannot be absorbed/aligned because there is no central gravity so people easily end up pulling different directions and spending their time on internal coordination vs actual useful output.

Re:What software engineers can learn from the rapid collapse... by tootie on Thursday April 07, 2022 @07:38PM (#30951627)
There's always misalignment incentives. If you put a tech manager in charge they're going to look for tech solutions that increase their head count.
Re:What software engineers can learn from the rapid collapse... by lostcolony on Friday April 08, 2022 @01:00AM (#30953470)
Not really. Managers don't have incentives to grow their team size; they have incentive to deliver. And Amazon is known for 'two pizza teams' anyway.

The parent mentioned 5 teams instead of 2. That's director or higher level decisioning. Which is where you frequently end up having someone far enough away from the actual work that needs to be done, starting early to come up with a roadmap. Given fixed deadline and fixed scope, you lean on your PM triangle knowledge and try to get as much headcount as possible to ensure success, because you don't have enough knowledge yet to really decide at what point adding headcount leads to a negative gain. It's usually less about empire building and more about trying to plan things early rather than growing in response to need.

I've been in this situation, as a manager, being told to hire three teams (two being teams of contractors), pushed back to say I should hire only one (the FTE team) as we didn't have enough work for them, was rebuffed and told I needed to hire (the roadmap said we had the work!), hired, and then had leadership panicking about the fact the teams were idle with nothing to do. After a couple months had enough work we could split it (unnecessarily finely) between them so they could all look active, which lasted about a month before the FTE team just started doing it all, as that was more efficient. I didn't stay there long.

Re:What software engineers can learn from the rapid collapse... by noisy_boy on Friday April 08, 2022 @04:03AM (#30954497)
> Not really. Managers don't have incentives to grow their team size; they have incentive to deliver.

This may be true about Amazon but it is not a given in general. Managers can operate in the grey area where they deliver just enough to justify more headcount "in order to deliver more" where the underlying motivation is increasing headcount. Not atypical in political environments like banks etc.

Re:What software engineers can learn from the rapid collapse... by AtlasBarfed on Friday April 08, 2022 @02:15AM (#30953858)
If you have a small team, and well hired, then the stack rank grim reaper kills off 20-30% of your labor each year.

For your huge hires, 1/3 of the people were hired to be fired in the stack ranking, which of course is a huge morale hit.

The ones that aren't setup to fail lose 20-50% of productivity doing machiavellian backstabbing, defensively or offensively, for promotions other culturally ingrained/highly encouraged organizational sociopathy.

With 50% turnover per year (IT stats, not warehouse worker stats), it'll be hard to sustain development as well.

So it makes sense that Amazon would overhire.

Get out as soon as you can.

Re:What software engineers can learn from the rapid collapse... by weatherlite on Friday April 08, 2022 @09:15AM (#30956416)
Where the hell were you working? This isn't normal for any company.
Re:What software engineers can learn from the rapid collapse... by fbanon on Friday April 08, 2022 @09:19AM (#30956449)
They're talking about Amazon.
Re:What software engineers can learn from the rapid collapse... by AtlasBarfed on Friday April 08, 2022 @12:22PM (#30959103)
This is essentially the long term endgame of any diehard adherent to stack ranking its employees.

Heavy stack ranking basically means for a life event, a worker is very likely to get axed. Any health event, having a child, partner has hard times, or management reorg that puts you with a boss that doesn't like you, and the writing is on the wall.

Companies with a good long term focus should concentrate on acquiring and developing long term workers.

Amazon in particular structures its pay (payoffs come from bonuses and vesting 3-4 years in) in such a way that if one takes a perverse sociopathic view of how they manage workers, that management is incented to rug-pull workers three-four years in so the vesting doesn't happen.

Amazon is DEFINITELY sociopathically and perversely managed to do this.

Once that fundamental disdain of your work force becomes ingrained, then all other organizational abuses (stack ranking, hire for fire, backstabbing) is all fair game.

It starts with stack ranking and the fundamental management sociopathy. Which anyone that looks into accounts of Jeff Bezos becomes apparent of the source.

So why has Amazon been successful? Amazon's advantage in the overall corporate competition landscape was simply that they built an integrated business+IT strategy while every other company treated IT as a cost and annoyance.

But they treat their people like utter shit, and as Amazon transitions from an explosive growth company to a more sustained presence, and from AWS from explosive growth to "utility", the now-huge middle management and workforce devolves from stack ranking and sociopathic disdain into a cesspool where only the wicked survive.

https://en.wikipedia.org/wiki/Toxic_workplace

Unfortunately, Amazon continues to ride a growth momentum, so the toxic workplace will be viewed as a positive. Nothing will change until serious incidents occur.

Of course Amazon is huge, so there are workers who may be in less troubled areas. Just keep in mind that toxic areas of companies that derive from corporate practices will inevitably spill over to the "good" parts. Amazon is acquiring massive amounts of pure sociopaths in their management culture, and those sociopaths will "eat" other idealistic parts of the corporate management.

Corporate america is adapting. Better integration of IT and management is going to come to Amazon's competitors. Amazon's apathy to its product fraud and fake reviews, now stretching into a three year ongoing problem shows that it is faltering. Its lies during its AWS downtimes show a blame culture in action.

Re:What software engineers can learn from the rapid collapse... by jakey_bakey on Thursday April 07, 2022 @04:52PM (#30950207)
I find it absolutely crazy that companies do this.

My company's strategy is get one extremely solid person across all our verticals (Android / iOS / Backend / Infra) to minimise communication overhead and maximise iteration speed (since we throw out half the code we write anyway).

I would be very hard pressed to hire more than 2-3 people in each role even if we were offered 10s of millions.

Re:What software engineers can learn from the rapid collapse... by ChrisMarshallNY on Thursday April 07, 2022 @06:30PM (#30951103)
> My company's strategy is get one extremely solid person across all our verticals (Android / iOS / Backend / Infra) to minimise communication overhead and maximise iteration speed (since we throw out half the code we write anyway).

but ... but ... that makes sense ...

I have found that having fewer good engineers is much better than lots of bad ones.

That approach is treated as heresy, in today's tech industry.

Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @06:41PM (#30951189)
Perhaps the thinking is that it's easier to hire multiple good-enough programmers to get dependable productivity, and to replace one if something goes wrong. In the extreme case, if a company has one programmer who is very good when they're working at peak productivity, but then they have a period of low productivity for whatever reason, that company is in trouble. I've been that person.
Re:What software engineers can learn from the rapid collapse... by hn_user82179 on Thursday April 07, 2022 @07:07PM (#30951411)
Additionally, it's a bigger loss felt when that person leaves.
Re:What software engineers can learn from the rapid collapse... by ChrisMarshallNY on Thursday April 07, 2022 @07:19PM (#30951505)
...which is why it's so important to foster an environment, where they don't want to leave.

I kept engineers (really good ones) for decades. They had many "life problems" (like divorce, cancer, etc.) during that time, and I kept them on.

It's entirely possible. I have done it. I ran a team that was all "top-shelfers."

Re:What software engineers can learn from the rapid collapse... by lostcolony on Friday April 08, 2022 @01:05AM (#30953497)
You still should avoid being too siloed. Bus factor matters; their life problems you might be able to keep them, but you're ensuring you suffer death problems the same time they do.
Re:What software engineers can learn from the rapid collapse... by ChrisMarshallNY on Friday April 08, 2022 @05:12AM (#30954908)
Well, the software industry seems to believe that, for some reason, we get to live by different rules from every other company on Earth, throughout all of human history.

Depending on key roles is something that every company in history has had to do. It’s a risk, but one that has been paying off for hundreds of years, for millions of companies.

There are ways to reduce “bus factor,” yet still maintain high Quality work. The corporation I worked for, managed this, but the price is extreme levels of overhead and rigidity. That has its own risks. I was treated as a “cowboy” in our company, and was considered to be borderline “reckless.” Most folks here, would have considered me to be destructively conservative and risk-averse. I got the job done, though. Our team consistently delivered high-Quality solutions to difficult problems, for decades.

The “easy answer” is to keep expectations and demands on labor low. Keep quality to a minimum. Rely on “black box” dependencies. Don’t use advanced development techniques. Squeeze your coders like lemons. Treat every employee the same as every other one, and control for the lowest common denominator.

That’s not how I worked.

It's OK. The industry is safe from me, and my radical views. It was made abundantly clear, years ago, that no one wants people like me in their company, so I have been forced to work with people that can't afford even crappy programmers.

Poor bastards are living the nightmare.

Re:What software engineers can learn from the rapid collapse... by infinite8s on Thursday April 07, 2022 @09:40PM (#30952396)
I assume you were able to do it with more than just money?
Re:What software engineers can learn from the rapid collapse... by ChrisMarshallNY on Friday April 08, 2022 @05:05AM (#30954863)
Definitely. My company offered “competitive” salaries (i.e. “low”).

I feel as if I was a very “human” manager, and that seemed to make the difference.

My employees were loyal to me, not the company. Not an ideal situation, but it WFM.

Re:What software engineers can learn from the rapid collapse... by erikerikson on Thursday April 07, 2022 @08:57PM (#30952134)
And most companies can't seem but try to run them off.
Re:What software engineers can learn from the rapid collapse... by TuringNYC on Thursday April 07, 2022 @07:05PM (#30951390)
>> I find it absolutely crazy that companies do this.

It has changed a bit, but a large part of it is due to HR policies around salary bands. You can have one person do 10x or 5x and another do 1/3x but their salaries are often max .5 factor apart. Ive been in situations where i'd rather reward (perhaps with a vest period) one person with 3x the salary and just skip all the inter-person communications bs, but HR makes it hard.

We were able to do this at hedge funds, and i'm sure small startups can do this, but as companies grow, HR will generally not allow this.

Re:What software engineers can learn from the rapid collapse... by JonChesterfield on Thursday April 07, 2022 @08:17PM (#30951903)
It strikes me as a fundamental mistake that HR are not responsible for the consequences of their policies. Failing to hire people leads fairly directly to failing to ship products, yet that doesn't appear to be attributed back to the team that insists they are all asking for above 'market rate'.
Re:What software engineers can learn from the rapid collapse... by recuter on Thursday April 07, 2022 @06:17PM (#30950991)
Headcount perversely increases the valuation sometimes. Hence, big head positions.
Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @09:57PM (#30952495)
This seems so backward to me. Since technology is all about achieving more with less work, shouldn't headcount always count against the valuation?
Re:What software engineers can learn from the rapid collapse... by saila on Thursday April 07, 2022 @09:18PM (#30952262)
I've been wondering why a seemingly stable startup would go on a massive hiring spree leading to all kinds of chaos rather than take a more measured approach and have started to suspect that this is the reason right here.
Re:What software engineers can learn from the rapid collapse... by rongenre on Thursday April 07, 2022 @09:53PM (#30952474)
Headcount absolutely does.

In the 90's there was a joke that they'd take the engineering headcount and multiply it by 10M (or something), subtract a multiple of management and there's your valuation.

Re:What software engineers can learn from the rapid collapse... by Nextgrid on Friday April 08, 2022 @04:51AM (#30954788)
"Hiring too fast" happens because managers, company executives and sometimes even investors want to play with shiny toys rather than solving the problems they actually had.

The "shiny toys" in this case are employees and the task of managing them.

As a (future?) lead/manager, having more people on your team bolsters your resume. A lot of people would benefit from the company hiring more too as it generates demand in other parts of the business - HR, IT support, etc (which in turn causes more hiring if you need more people to deal with the increased workload). As a higher-up in the company, it looks better on your resume if it was a "big" company with 100+ employees rather than a scrappy garage startup with 3 people, and likewise for investors.

Re:What software engineers can learn from the rapid collapse... by SkyPuncher on Thursday April 07, 2022 @05:36PM (#30950636)
I've done startup engineering for a while. I've seen exactly 1 issue that we couldn't solve easily (N+1) or with simply turning our server count up (often way cheaper than putting an engineer to a problem).

Basically, to move development velocity faster we "load everything". Seems like a really bad idea on the surface. In practice, we only ran into an issue with a single customer that was literally 1000x as large as the other customers. It took about two weeks by 1 engineer to rework a select few calls that were egregiously slow and we were back at it.

----

In other words, even with some arguably inefficient technical decisions, I've rarely if ever seen performance issues at early stage startups.

Re:What software engineers can learn from the rapid collapse... by irjustin on Thursday April 07, 2022 @10:59PM (#30952878)
Exactly, the cost of turning on additional servers is measured in ~US$100's/mth vs an engineer's time ~US$10k-25k/mth.

If you can make the problem go away by spending more in servers always do it.

For startups, the life and death is product market fit and you only get there by iterating on the business as many times as possible, not making something more efficient.

Put engineers on business iterations.

Re:What software engineers can learn from the rapid collapse... by dgb23 on Friday April 08, 2022 @04:03AM (#30954501)
Using more machines also introduce complexity.
Re:What software engineers can learn from the rapid collapse... by tomp on Thursday April 07, 2022 @07:02PM (#30951358)
Even before using more servers, one should consider using (one) bigger server (and another as backup).

Massive servers are laughably cheap these days. E.g. 16 cores, 128GB RAM is €112 from Hetzner.

Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @07:05PM (#30951392)
Damn, wish those dedicated servers were available in Hetzner's US data center. As far as I'm aware, the closest thing to a competitor in the US is OVH, and the server you get for that price is about a quarter of the capacity. That's plenty for my little company, but still...
Re:What software engineers can learn from the rapid collapse... by hardwaresofton on Thursday April 07, 2022 @07:54PM (#30951735)
Same here -- I'm eagerly awaiting them having a dedicated server offering

In the meantime have you looked at leaseweb?

https://www.leaseweb.com/dedicated-servers#US

I'm planning on running nimbus web services[0] there and there are a few other smaller providers I have earmarked depending on how brave you are:

https://www.defendhosting.com/usa-unmanaged-servers/

https://cc.delimiter.com/cart/dedicated-servers/

https://greenserver.io

[0]: https://nimbusws.com

Re:What software engineers can learn from the rapid collapse... by SkyPuncher on Friday April 08, 2022 @05:11PM (#30962577)
In our case, we're running on top of a PaaS (think Heroku). Vertical vs Horizontal scaling is essentially the same complexity for the scale we're currently at.
Re:What software engineers can learn from the rapid collapse... by lmeyerov on Thursday April 07, 2022 @05:50PM (#30950754)
It wasn't "doesn't scale to 10-100X bigger" but "doesn't burn themselves and their teammates out 6mo from now and needlessly risk a stressful & prolonged sev0 when one of the 1-2 people who did weird things gets COVID / goes on a honeymoon / leaves for netflix".

Spending time on needless infra (scale you don't need, AI you don't need, infra you don't need, things could have been postgres as in this case, ...) both prevents building useful stuff ($-generating features/experiences/...) and increases operational cost (maintenance, debugging, ...). Both the lost revenue growth and the increased costs are compounding. Imagine a maniac steadily piling on a bit more technical debt every day and eat a bit more of the seed corn every day instead of growing it.

A good phrase for this is "playing house": http://www.paulgraham.com/before.html

Re:What software engineers can learn from the rapid collapse... by randmeerkat on Thursday April 07, 2022 @03:49PM (#30949541)
> Sounds like the engineers were just entertaining themselves with shiny toys rather than solving the problems they actually had.

More like, sounds like management was trying to get as much money as quickly as they could from their VCs before it all imploded. The engineers aren’t at fault that management didn’t have a real product or vision.

Re:What software engineers can learn from the rapid collapse... by mrkurt on Thursday April 07, 2022 @05:42PM (#30950696)
We all know plenty of engineers who want to build things for inappropriate scale. The company was a disaster, but part of building a disastrous company is hiring the engineers who want to make everything webscale and have no sense of pragmatism.
Re:What software engineers can learn from the rapid collapse... by randmeerkat on Thursday April 07, 2022 @06:31PM (#30951114)
> The company was a disaster, but part of building a disastrous company is hiring the engineers who want to make everything webscale and have no sense of pragmatism.

I mean, the engineers held up their side of the bargain. They were hired for webscale, the company got webscale…

Now, if this was a more strategic startup, that had tried to hire pragmatic engineers, that insisted on webscale, I would blame the engineers. However, in this case, I think it’s pretty clear that the engineers did exactly what they were hired to do.

Re:What software engineers can learn from the rapid collapse... by zozbot234 on Thursday April 07, 2022 @05:18PM (#30950459)
Tailscale's "database from 2022" is neither here nor there. What you should do in this situation is use the most boring tech, such as PostgreSQL with a simple HA setup. Thus avoiding the "play with nifty toys" trap and maximizing the chance of making appropriate choices.
Re:What software engineers can learn from the rapid collapse... by kragen on Friday April 08, 2022 @05:26AM (#30954980)
Your server has 128 gibibytes of RAM, and has for five years now. In fact, you can buy off-the-shelf servers with a tebibyte of RAM now. As long as you have some way to recover from a power failure, if there's something you could do with Postgres without sharding fifteen years ago, you can do it in RAM on a single server now. But, if it was disk-bound, you can do it about a million times faster than you could do it then.

It's reasonable to argue that shelling out the US$800 for a server with 128 gibibytes of RAM (or renting one from a cloud provider for US$150 a month) amounts to buying nifty toys for the engineering department. But if you're paying each engineer US$200k per year in salary and a similar amount in benefits, that's US$190 an hour, so each engineer's workday buys you almost four such servers. Your RAM has a minimum transaction time of about 100 ns, while an SSD is more like 10000 ns. If you have 100+ GiB of data to query, the alternative to buying nifty toys is paying the engineering department to do optimization work that wouldn't be necessary if your data was stored in memory that was 100x faster.

The rough equivalency here is that adding one more engineer to your team costs as much as adding 16 dedicated Xeon servers at Hetzner with 128 GiB of RAM each.

Sometimes the best answer is still a relational database, of course! It's often easier to write your queries in relational terms than by looping over hash tables, though probably not if you're using an ORM, and Postgres is delighted to cache all your data in RAM.

At some point, you may grow beyond being able to run your production environment on a single server, at which point splitting things into tiers is worthwhile. (In some cases you start at that point, for whatever reason, but a lot of web services can serve a million users on a single server. It sure sounds like Fast's service would have worked fine on a single server.)

Re:What software engineers can learn from the rapid collapse... by zozbot234 on Friday April 08, 2022 @06:25AM (#30955313)
The point of a RDBMS has never been to save on RAM, raw files have undesirable properties for lots of data management scenarios. You can have a very simple schema if you like, e.g. a RDBMS makes for a damn good key-value store.
Re:What software engineers can learn from the rapid collapse... by randomdata on Friday April 08, 2022 @12:57AM (#30953454)
The most boring tech imaginable would be a file. Perhaps containing JSON or similar structured data that can be handled using commonly available libraries. Which is exactly what they used for a long time.

I've done something similar before and it saved countless hours wasted on configuring databases, writing queries, fighting impedance mismatches. Postgres brings a lot of work. With a file you just need a couple of lines to write your memory out to a file and a couple more to read it back. Simple and effective.

Until it stops scaling, but at that point you've established that your business is successful enough that it warrants the effort of doing something shiny. Postgres has a place in this world, but no need to put the cart before the horse.

Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @05:27PM (#30950546)
Perhaps one problem with the current backlash against over-complicated infrastructure is that for some of us, doing everything in one process on one machine using a local embedded database is its own form of playing with nifty toys.
Re:What software engineers can learn from the rapid collapse... by bryanrasmussen on Thursday April 07, 2022 @06:23PM (#30951059)
yeah, I guess, I'm not going to get too specific here but I do think it would be nifty if I didn't go through a couple 10 minute periods every day where I have to basically shut everything down run a number of scripts, then restart individual processes that are problematic, to be able to work again.

Note that this basically works 99% of the time now and is part of a learning process that had the whole thing taking 2 - 5 hours every day for several weeks, down to 2 hours a day for several weeks after that, and now down to the nearly inescapable 20 - 40 minutes a day I have now.

Yeah, not doing that would be my own form of playing with nifty toys.

Re:What software engineers can learn from the rapid collapse... by collinmanderson on Friday April 15, 2022 @08:17PM (#31047626)
Wow. I would find it super annoying to be interrupted twice a day to do a 10min task. Can’t you try to narrow down the underlying bug? Or somehow automate the restart?
Re:What software engineers can learn from the rapid collapse... by nonameiguess on Thursday April 07, 2022 @04:36PM (#30950022)
Staying employed for another few decades without losing seniority in an industry that expects you to stay current on all of the latest hottest fads is a problem the engineers actually had.
Re:What software engineers can learn from the rapid collapse... by wnevets on Thursday April 07, 2022 @05:56PM (#30950814)
> Sounds like the engineers were just entertaining themselves with shiny toys rather than solving the problems they actually had.

Programmers love to add the latest tech to their resume then move on to a new position within ~18 months

Re:What software engineers can learn from the rapid collapse... by CoastalCoder on Thursday April 07, 2022 @06:18PM (#30950999)
That may be specific to early-mid career focus

If/when a developer builds deep knowledge of a problem domain, things like framework-of-the-month may become an unwelcome distraction.

Re:What software engineers can learn from the rapid collapse... by teaearlgraycold on Thursday April 07, 2022 @08:06PM (#30951842)
Seeing someone using nothing but tried and true tech to solve new problems is a resume green flag.
Re:What software engineers can learn from the rapid collapse... by Nextgrid on Friday April 08, 2022 @05:02AM (#30954853)
Is there a place where such "green flags" would net me money? It seems like as a software engineering employee, the roles that require me to waste time reinventing the wheel and battling self-inflicted complexity pay significantly more than those who require solving actual problems with boring tech.
Re:What software engineers can learn from the rapid collapse... by teaearlgraycold on Friday April 08, 2022 @10:07AM (#30956924)
> Is there a place where such "green flags" would net me money?

Well the best way to reap the benefits of your experience is to run your own company. Not screwing yourself over with BS tech is a competitive market advantage. However you might need to hire people so you can’t pick something too old.

Working for other people it’ll mostly net you less on call headaches.

Re:What software engineers can learn from the rapid collapse... by mooreds on Thursday April 07, 2022 @07:56PM (#30951756)
Yes!

I've seen a few startups that seemed to overengineer things (or build custom solutions rather than use something off the shelf) in expectation of massive growth.

I also thought it might have been due to resume driven development and the need to keep engineers engaged so they didn't leave.

I've also seen successful startups with a monolithic rails or PHP application that ran on heroku with next to zero custom architecture components.

Re:What software engineers can learn from the rapid collapse... by xen0 on Thursday April 07, 2022 @04:23PM (#30949910)
I wonder, how many engineers had full time jobs just developing and maintaining the various integrations with all their small clients?
Re:What software engineers can learn from the rapid collapse... by mywittyname on Thursday April 07, 2022 @05:09PM (#30950362)
I have to imagine they were all stepping on each other and/or reinventing slightly different shaped wheels too.

My experience has been that companies who will customize integrations for you have poorly designed products. By that, I mean, when we ask for a feature, and they bring on an engineer who does some requirements gathering then comes back with some invisible solution. That's a major redflag.

The success of an integration, in my experience, is directly proportional to the amount of the work I'm able to handle as a client.

Re:What software engineers can learn from the rapid collapse... by vimwizard on Thursday April 07, 2022 @06:13PM (#30950957)
>My experience has been that companies who will customize integrations for you have poorly designed products. By that, I mean, when we ask for a feature, and they bring on an engineer who does some requirements gathering then comes back with some invisible solution. That's a major redflag.

I'm feeling a bit called out right now (not an owner but that's my experience, too)

Re:What software engineers can learn from the rapid collapse... by lupire on Thursday April 07, 2022 @06:32PM (#30951116)
> The TailScale folks caught a bunch of flak for their "do things that don't scale" approach to databases.

I've seen this repeated on HN, but never saw the alleged flak.

Re:What software engineers can learn from the rapid collapse... by Aeolun on Thursday April 07, 2022 @08:53PM (#30952113)
It’s a post from around a week ago. They went from embedded JSON, to something else (equally crazy), to embedded JSON again. Lots of laughs were had (and a lot of, just use postgres).
Re:What software engineers can learn from the rapid collapse... by randomdata on Friday April 08, 2022 @01:11AM (#30953535)
> They went from embedded JSON, to something else (equally crazy), to embedded JSON again.

They went from a JSON file, to etcd, to SQLite. etcd seems a little misplaced, but presumably it was already in their infrastructure and they thought they could save time leveraging it. The file-based approach seems appropriate for their particular use-case, though. It's not like it's a Rails app.

Re:What software engineers can learn from the rapid collapse... by Aeolun on Friday April 08, 2022 @03:46AM (#30954385)
Crap, I’d forgotten about the sqlite part. You are of course correct. Apparently I’d only remembered the fact they went back to something file based :/

I’m still of the opinion that whatever you are storing, if your alternatives are JSON or Sqlite, etcd is a really strange/unconventional choice.

Re:What software engineers can learn from the rapid collapse... by hobs on Thursday April 07, 2022 @03:52PM (#30949568)
Pretty sure the reason they caught that flak is because they chose to reinvent the wheel instead of do a normal thing that would work until later - they're on their what - third rewrite of that now?

Tootally worth the time /s

Re:What software engineers can learn from the rapid collapse... by lolsoftware on Thursday April 07, 2022 @04:20PM (#30949870)
I don't think that's a fair characterization of what happened. First, they scaled a simple solution for a long time and migrated away from it before it exploded spectacularly. I don't recall them explicitly saying how much time they spent on it, so how is it possibly to say whether it was worth the time or not? I also don't remember if it was here or on Twitter, but one of the engineers listed the many features they built and shipped _instead_ messing with their database. I'd say that was a good business decision - they got more features to their customers sooner and dealt with a scaling issue before it impacted customers.
Re:What software engineers can learn from the rapid collapse... by hinkley on Thursday April 07, 2022 @03:24PM (#30949203)
I would hope this problem doesn't exist at startups but I've seen it at entrenched institutions any number of time:

If your boss's boss or peers signed a contract for $1m a year from Oracle, you're going to use Oracle even if Postgres is a better product. And the only way to use Postgres in this situation is if they don't know you're running it. Which puts you in the uncomfortable situation of wanting to say, "But Oracle sucks, look how successful we've been at using Postgres?".

Basically if you don't already know that someone higher up the food chain is comfortable with saying, "I've made a huge mistake", you aren't going to 'help' them learn to do it by pointing out they fucked up. What they're going to hear is that you're asking them to say, "I just wasted a million dollars of company money on something everybody hates," which not only are they not going to do, but they're going to start thinking about how to shoot the messenger.

As many conversations go in a couple of my hobbies and talking to friends and acquaintances about health concerns, the answer often starts with, "first, get a time machine" and ends with, "or learn to live with it," often with some useful compromises in between.

One of the important things to do early in your tenure at a place is to bid various people in the management chain and those who seem to be on a management track to see how open they are to having their minds changed. Because you want to know this when the stakes are low (also the blowback on low stakes things seems to be less problematic). Then you know if or when a boondoggle is in the making whether you can stop it before it starts, or amplify all of the problems and kill it along the way, or whether you should keep your head down and conspire to keep the 'doggle at arm's length with those who agree with you.

Re:What software engineers can learn from the rapid collapse... by zozbot234 on Thursday April 07, 2022 @05:25PM (#30950522)
> If your boss's boss or peers signed a contract for $1m a year from Oracle, you're going to use Oracle even if Postgres is a better product.

What you'd do in that situation is make the best of that $1M contract you're stuck with anyway, while being flexible enough to migrate away from that solution when it actually makes sense to do so. Just because you've made a huge mistake doesn't mean that making a different choice after-the-fact is more sensible. Hindsight is always 20/20.

Re:What software engineers can learn from the rapid collapse... by Aeolun on Thursday April 07, 2022 @08:58PM (#30952143)
Only if your $1M solution is already integrated.

Otherwise it’s just a sunk cost fallacy.

Re:What software engineers can learn from the rapid collapse... by hinkley on Thursday April 07, 2022 @10:32PM (#30952716)
Which of course it isn't, if you or your coworkers are dreading that 'they' will find out you're happily using Postgres...
Re:What software engineers can learn from the rapid collapse... by edmundsauto on Friday April 08, 2022 @09:04PM (#30964324)
I've never used Oracle, but from what I've heard it's a good piece of tech. If your boss is footing the bill for a BMW, why not drive it?
Re:What software engineers can learn from the rapid collapse... by suresk on Thursday April 07, 2022 @08:27PM (#30951963)
It's always funny to read about crazy overspending on infrastructure and I have a few funny stories myself, but this was far from their biggest problem. For one, we don't know how big those costs were or how much time it would take to wind some of it down.

I absolutely hate waste and was always proud of myself when I found ways to shave a thousand here and there off our AWS bill, but it was a bit depressing when I went through the thought exercise of "What would it be like for the company if I managed to get everything onto the AWS free tier?" And then compared that to what it would be like for the company if we found a way to make 1 or 2% more in revenue.

Early on, the math heavily favors worrying less about infra spend and more about product enhancements that can build revenue.

(Although often reducing the size of your infra for other reasons - usually around complexity for ops or ease of development can also have the side benefit of reducing cost and it seems worthwhile in those cases.)

Re:What software engineers can learn from the rapid collapse... by geoduck14 on Thursday April 07, 2022 @08:42PM (#30952052)
>Early on, the math heavily favors worrying less about infra spend and more about product enhancements that can build revenue.

YES! This is VERY true

Re:What software engineers can learn from the rapid collapse... by myrandomcomment on Friday April 08, 2022 @12:40AM (#30953377)
It is a careful balance. At my last startup we knew we had scale technical debt in our SW. Not something we could fix by tossing HW at the issue. It was all great until we landed that major customer that blew past our supported scale. 6 months of engineering work and a complete stop of feature process. A more careful consideration of the tradeoffs when making them would have saved a huge headache, but no one wanted to look at the issue preferring to ignore it.
Re:What software engineers can learn from the rapid collapse... by mwcampbell on Friday April 08, 2022 @12:59AM (#30953458)
> Not something we could fix by tossing HW at the issue.

I'm curious to learn why, if there's any more you can share. What about vertical scaling, i.e. bigger machines instead of more of them? Can't that go pretty far?

Re:What software engineers can learn from the rapid collapse... by myrandomcomment on Friday April 08, 2022 @11:13AM (#30958124)
Shipping unit was a VM to a customer. Tossing more CPU & RAM at the VM would hit general issues of how VMware allocates CPU to a guest. Within the VM we had containers for each sub-unit of the tool. For some part of the system we made the deployment model more than one VM, distributing more containers to the other VMs. However for a key part of the design there was an in-memory DB and we just it the scale limits of the number of elements that could be handled that way without a rethink of how and what we stored.

For everyone that will say "well why..."

1. real products need a generally available shipping unit (SKU) when your customers are enterprise / telco types.

2. for item 1, what is the lowest common thing this type of customer would take - a VM they can run on their existing virtualization setups. the reality of K8s, containers in this type of customers at that point was near zero.

3. there was thoughts about a SKU of a HW appliance, ie, beefy server and just toss CPU/RAM in it and ship that. shipping some stupid HW appliance that we controlled would just be a distraction and a waste of money also requiring 2 shipping artifacts, 2 test setups, etc. not to mention the need to sort for support for HW failure (you can contract with Dell for example to have them label their Kit as your appliance).

Re:What software engineers can learn from the rapid collapse... by mwcampbell on Friday April 08, 2022 @02:13PM (#30960601)
Shipping a VM makes a lot of sense. I wish there were better off-the-shelf tools for packaging up a web application into an easy-to-deploy, self-managing VM, without trying to stuff the typical cloud complexity (e.g. Kubernetes) into a box.

I don't understand the issues with using a bigger VM, but I have no reason to doubt you.

Re:What software engineers can learn from the rapid collapse... by Spivak on Thursday April 07, 2022 @03:09PM (#30949024)
And if you think this is undersized for comedic effect I did ops for a company that went from <1mil to 15mil revenue (with the same sales strategy of targeting lots of small clients) on 4 1u white label supermicros. Two app servers and two MySQL dbs. Never in my life had such reliable infrastructure.
Re:What software engineers can learn from the rapid collapse... by StillBored on Thursday April 07, 2022 @04:56PM (#30950247)
Early in my career when in a discussion with my manager at the time, he threw out the "planes with two engines have twice as many failures as single engine planes" line.

So in my now close to 30 years of experience later, working on systems expected to run 24/7/365, I can't tell you what percentage of failures and outages were caused by the redundancy/fail-over/etc software and hardware layered into a system, but its definitely a very significant part of the problem. Frequently because its just that a "layer" someone bolted on, even if that layer was some software engineer designing for "web scale". All the edge cases are frequently not completely thought out, and when you hit one its a lot harder to recover, than simply restarting a single service running on a single server.

Re:What software engineers can learn from the rapid collapse... by amluto on Thursday April 07, 2022 @05:07PM (#30950349)
I once managed a thoroughly non-critical server that lived in a closet. In the couple years I managed it, we had quite a few failures due to the UPS tripping and no unscheduled downtime at all from any other reason.

I’ve had massive problems with fancy (HPE, IIRC, but it wasn’t called HPE then) raid arrays caused by the controller being a POS. Using plain mdraid would have been far more reliable.

Sometimes I wonder if all the effort people put into protocols that run Paxos and Raft could be better spent running a small number of coordinator servers with manual failover. I’m suspicious that, in many use cases, leader elections cause failures more often than the leaders themselves fail.

Re:What software engineers can learn from the rapid collapse... by hef19898 on Friday April 08, 2022 @03:18AM (#30954218)
>> "planes with two engines have twice as many failures as single engine planes"

Sounds like someone didn't understand redundancy...

Re:What software engineers can learn from the rapid collapse... by robocat on Thursday April 07, 2022 @07:13PM (#30951465)
> "planes with two engines have twice as many failures as single engine planes"

There has to be a smart reply to that, like: 100% of pilots of single engine planes don’t make it home after a single engine failure. 100% of pilots of dual engine planes do make it home after a single engine failure.

Re:What software engineers can learn from the rapid collapse... by Jasper_ on Thursday April 07, 2022 @07:19PM (#30951508)
Planes are natural gliders and you can recover from engine failure. It's not like they just fall out of the sky.
Re:What software engineers can learn from the rapid collapse... by RobRivera on Thursday April 07, 2022 @08:34PM (#30952008)
say for the zoomy lawn darts we call fighters.

pushes glasses

Re:What software engineers can learn from the rapid collapse... by asmithmd1 on Thursday April 07, 2022 @10:53PM (#30952838)
If you lose an engine on a twin engine plane, you have to decide if you have an emergency or not. If you lose an engine on a single engine plane, you have to decide where you can make an emergency landing.
Re:What software engineers can learn from the rapid collapse... by jjav on Thursday April 07, 2022 @04:46PM (#30950137)
This is a big lesson to heed. Sure, sometimes a startup really needs extravagantly scalable infrastructure. For the 99.9% of startup, no, you don't.

So the odds are you don't. Keep it very simple, very small. I can't highlight this enough. A few boxes will get you very far. If you ever actually hit the limits, throw a big party to celebrate success and only then start to think about making your infrastructure a bit (just a bit) more complex.

Re:What software engineers can learn from the rapid collapse... by gnarcoregrizz on Thursday April 07, 2022 @11:54PM (#30953170)
We have 10 petabytes of storage and a ~terabyte scale Postgres instance. It runs on a few racks and we get a respectable amount of traffic. It’s not “WeBScALe” but it’s not peanuts. Better uptime than AWS and our operational expenses are negligible. People forget how insanely powerful and cheap hardware is nowadays. Now, you can buy a 64 core chip for $7k. That alone could handle some serious traffic.
Re:What software engineers can learn from the rapid collapse... by fourseventy on Thursday April 07, 2022 @03:59PM (#30949651)
I run a company in the e-commerce tech space. We handle ~1M requests per day and run it all on a few medium sized VMs on Google cloud for like $1k/mo.
Re:What software engineers can learn from the rapid collapse... by whymauri on Thursday April 07, 2022 @05:52PM (#30950772)
time to raise a $100M and go w e b s c a l e
Re:What software engineers can learn from the rapid collapse... by EinsDueTresFour on Thursday April 07, 2022 @03:20PM (#30949150)
I would add that the "Sales vs engineering and sales winning" would be a very relevant warning also:

> [sales] signed up a large number of smaller businesses on the platform. [...] However, integrating these smaller businesses was challenging thanks to several customizations needed for each new customer.

The ratio of revenue per each small customer vs the total cost of integration (and very likely on-going maintenance) was probably at least an amber flag somewhere for those who had visibility of it.

But maybe there was on-going hope that they would be able to sign up a big customer and integrate them before they ran out of money?

Re:What software engineers can learn from the rapid collapse... by vosper on Thursday April 07, 2022 @03:55PM (#30949601)
> The ratio of revenue per each small customer vs the total cost of integration (and very likely on-going maintenance) was probably at least an amber flag somewhere for those who had visibility of it.

At the last company I worked at (won't call them a startup, just a 10-year old small business that somehow kept raising funding but has never made a profit) I was astonished to learn from a new CPO that in our tenth year we didn't know if we were making money from a customer.

We had no idea how individual customers used the application, which was very data intensive, or what that was costing us. The information was there, but no-one ever looked. Every sale was considered a success, even if it turned out to cost us 3x in data costs and customer support. Often customer support alone would make a sale into a loss.

We spent a relatively large portion of our revenue running very expensive servers to respond instantly to searches that no-one ever performed. I created detailed monitoring to show this. I talked about them to everyone, including Product and the CEO. No-one disputed those facts. But instead we had several people essentially dedicated to downsizing application servers and deleting unused S3 buckets, trimming three zeros a month when we could have trimmed five.

I have learned not to assume that warnings are visible, that people pay attention to them if they are visible, or that anyone cares.

They're still circling the drain, still raising money (somehow!) and I doubt anything's changed.

Re:What software engineers can learn from the rapid collapse... by truffdog on Thursday April 07, 2022 @05:11PM (#30950381)
> We spent a relatively large portion of our revenue running very expensive servers to respond instantly to searches that no-one ever performed.

The last 7 years of my life as an SRE. It's maddening.

Re:What software engineers can learn from the rapid collapse... by vosper on Thursday April 07, 2022 @05:29PM (#30950564)
We also had multiple contractors working full-time for months on a CI project that was projected before it began to save us at most a few thousand dollars a year. In the end they half-delivered a poorly-built system everyone hated, and I forced the abandonment of the project and we went back to the old system.

It was the pet project of another team-lead, that no-one else wanted. Group decision making is bizarre.

Re:What software engineers can learn from the rapid collapse... by mywittyname on Thursday April 07, 2022 @05:23PM (#30950501)
> We had no idea how individual customers used the application, which was very data intensive, or what that was costing us.

Cost can be a difficult problem to solve! I've been working on a project for about six months trying to identify just how much it costs to deliver a unit of the thing we sell. There's just so much variability, one customer might have widgets that are 40kb in size and rarely ever run widget analytics workloads, while another customer has 40mb widgets and can't stop looking at them.

I feel for the whole "how do customers use the application" thing too. Product analytics at most places seems to be a concern long after features are developed.

"So how many customers have been using that feature we spent two years and $20MM developing?"

"Good question."

"Soooo, mywittyname, can you figure out how many people at companies with over 200 seats look at dog pictures after opening an email with a 'C' in the title?"

Re:What software engineers can learn from the rapid collapse... by jimbokun on Thursday April 07, 2022 @07:32PM (#30951587)
I worked on a project that had similar issues.

I think what saved us was the unlimited license we had negotiated for the database server we were using (which wasn’t bad technology), expired and then the company was going to charge us through the nose for any new servers.

That triggered a rearchitecture of our system, into micro services that made sense for the kinds of queries, volume, and load we were dealing with. We did have a lot of data, but many of the queries could be satisfied by a key value store, for example, which didn’t require the same amount of hardware resources.

The original project did lead us to products our customers wanted to buy. Then we just had to change the architecture to fit those actual products.

Re:What software engineers can learn from the rapid collapse... by ben7799 on Thursday April 07, 2022 @04:38PM (#30950051)
Management probably really screwed this up if they were really only making $600k/yr.

Places I've worked yearly contracts for B2B have been in the $100k-$5M/yr range.

The customers paying $100k/yr barely get any integrations and feature changes... they go for the ride. The customers paying $1M+/yr get features on the double.

If Fast was doing integrations and customization for customers that were paying $1000 or less a year something was very very wrong.

Re:What software engineers can learn from the rapid collapse... by Aeolun on Thursday April 07, 2022 @09:02PM (#30952168)
Well, they had 150 engineers sitting around for a product that required at max 3. Need to give them something to do to justify those 300k salaries.
Re:What software engineers can learn from the rapid collapse... by lumost on Thursday April 07, 2022 @03:37PM (#30949383)
At some point managers often fear the "red flag" of "we have a giant team with no work/customers". Hence, they will often push for dubious consulting(ish) work to at least ensure everyone remains busy.

Unfortunately this can lead to the outcome that the company just loses more money.

Re:What software engineers can learn from the rapid collapse... by jonas21 on Thursday April 07, 2022 @03:16PM (#30949112)
It would not have made a difference. Maybe they'd be losing $9.9M a month instead of $10M a month.
Re:What software engineers can learn from the rapid collapse... by weezin on Thursday April 07, 2022 @07:41PM (#30951655)
The problem was that the engineers were building a scalable infrastructure rather than a scalable business.

from the article: "The average volume of Fast customers was low because most customers were from small businesses. And yet, every small business needed custom engineering work to be done, making integration slow. Several engineers mentioned how they did not understand how spending lots of engineering effort for each small client resulting in little revenue would result in building a company that could be worth $12B one day."

Re:What software engineers can learn from the rapid collapse... by mwcampbell on Thursday April 07, 2022 @03:29PM (#30949265)
Sure, their primary problem was extravagant hiring, but I think this is still an important warning for developers working in fledgling companies that are appropriately cautious on the hiring side.
Re:What software engineers can learn from the rapid collapse... by mcphage on Thursday April 07, 2022 @04:42PM (#30950091)
> Sure, their primary problem was extravagant hiring

I think their primary problem was a huge valuation—with correspondingly huge expectations—but no real revenue. If you're pulling in $600K revenue, but valued at $500M... you're gonna have a bad time.

Re:What software engineers can learn from the rapid collapse... by whateveracct on Thursday April 07, 2022 @03:26PM (#30949226)
Heh maybe if they also didn't hire a bunch of engineers to scale out too, it would've helped..
Re:What software engineers can learn from the rapid collapse... by ec109685 on Thursday April 07, 2022 @10:41PM (#30952772)
They had 20 user designers / researchers. Just massively over done for a company that was just getting traction: https://twitter.com/marianoaavila/status/1511410574327881728
Re:What software engineers can learn from the rapid collapse... by Nextgrid on Friday April 08, 2022 @04:44AM (#30954758)
> Sounds like the whole thing could have run on a single cheap VM, perhaps with a second one for redundancy.

You're describing most startups here.

Re:What software engineers can learn from the rapid collapse... by ejb999 on Friday April 08, 2022 @07:22AM (#30955612)
very true
Re:What software engineers can learn from the rapid collapse... by mylons on Thursday April 07, 2022 @05:19PM (#30950468)
this sounds like Ridgeline, a startup most have never heard of, founded by the founder of Workday and some of its early employees.
Re:What software engineers can learn from the rapid collapse... by ammanley on Thursday April 07, 2022 @08:03PM (#30951820)
I have actually heard of this startup amazingly, as well as the founder, but I wasn't aware it was/is? as much of a s.show that the article portrays at Fast. Do you have any context you might be willing to share, I am genuinely curious.
Re:What software engineers can learn from the rapid collapse... by mylons on Thursday April 07, 2022 @08:59PM (#30952154)
bizarre tech decisions have led to insane costs with 0 customers. launch is about 2 years behind. having a lot of trouble hiring senior engineers, when they do they don't listen to them. they have a strange platform that every product team must use. tech leadership has never launched a successful startup before. they have over 300 employees, maybe 400 now. 4 levels of management already, and a _lot_ of them. it's independently funded for now, and has the potential to keep on going like this as long as Dave D. doesn't pull the plug.
Re:What software engineers can learn from the rapid collapse... by ammanley on Friday April 15, 2022 @07:39PM (#31047303)
I guess its not _that_ different than that one time I had 4 VPs of Engineering, for 30 engineers </s> Sounds like an absolute bonkers-fest, thank you for sharing.