News for hackers. Stuff that matters.
Re:How we spent $30k in Firebase in less than 72 hours by sciurus on Wednesday August 01, 2018 @09:50PM (#17668681)
When you have an unexplained performance problem, your response shouldn't be to "upgrade every single framework and plugin" that you use. The 36 hours that they spent doing this cost them $21,600 dollars on GCP and didn't solve their users' problem.

Understand the services you depend on. Track the number of requests you're making to them, how long they're taking, and how many are failing. Reason through your system and look at the data when you have issues, rather than grasping at straws.

Re:How we spent $30k in Firebase in less than 72 hours by Lazare on Wednesday August 01, 2018 @10:12PM (#17668774)
That jumped out at me too.

Obviously they were under a lot of pressure and it's easy to stand here and criticise, but...

...if my site is slowing down with load or usage, I'm not sure how you make the jump to "I should update my UI libraries!". Angular 4 isn't getting any slower, so best case is you've got some unknown performance bottleneck in your UI that is somehow causing 30s page load times, and which just happens to be fixed in Angular 6, and you don't accidentally add any new issues when you upgrade.

Conversely, it feels like if you're struggling with "slow load times" on a SPA, the first thing you'd do is open the network tab and see what requests are being made, to what, how often, and how long they're taking.

Grasping at straws does seem to be the right metaphor. (Or maybe the old chestnut about the drunk dropping his car keys in a dark parking lot, then looking for them under a streetlight, since it's too dark to find them in the parking lot?)

I'm happy for the team and it sounds like things are going great for them, but wow, that was an almost fatal bit of blindness. On the plus side, I bet everyone involved will check for inefficient database calls first next time. :)

Re:How we spent $30k in Firebase in less than 72 hours by cpplinuxdude on Thursday August 02, 2018 @03:43AM (#17669846)
That’s why you need good humans who’re expert at responding extremely well when things break. It’s one thing to prep for a whiteboard interview, it’s another to intuit that needle in the haystack.
Re:How we spent $30k in Firebase in less than 72 hours by tdumitrescu on Thursday August 02, 2018 @04:37AM (#17670060)
It's only about finding needles in haystacks if you don't have sufficient instrumentation and monitoring in place. For most production issues your tools should be able to guide you at least the first 75% of the way to your issue, even if they can't usually offer a good fix (though sometimes they can, such as when new relic points out missing db indices causing unnecessary full table scans).
Re:How we spent $30k in Firebase in less than 72 hours by nevi-me on Thursday August 02, 2018 @06:01AM (#17670342)
I agree. It's also about trusting developers' intuition when debugging problems. We recently (past few working days) went through something similar; where we had a problem blocking us from a release, and people scrambling to figure out the problem.

We have some software that was returning different results from different environments, and we couldn't figure out the problem. There was a lot of panic in the room, from upgrading and downgrading Maven dependencies, building things inside and outside of Jenkins, and all sorts of random things.

We kept telling the project leadership that we're poking at the wrong part (intuitively), but they kept pushing. I've had to explain how Maven works, how building on Jenkins doesn't differ to building from our IDE's, etc.

It's only when we asked for isolation from the (human) elements, that we had the freedom to properly debug.

In the end, an unstable sort was the cause of the issue. We were taking the last element from an array, but not sorting the array first.

All of the stuff we did since last Thursday to Tuesday evening didn't help us.

So, I agree, you need good humans who are good at responding well when things break.

Re:How we spent $30k in Firebase in less than 72 hours by fouc on Thursday August 02, 2018 @06:45PM (#17676089)
I've been in situations where the whole developer team is trying to solve a production bug, and the managers have never tried to tell us where to focus.

That wouldn't make any sense at all.

Every developer would have their own guesses that they would need to explore and validate, sometimes there's some grouping around where the focus is, but there's usually one guy that's exploring a totally different area to find that bug.

Re:How we spent $30k in Firebase in less than 72 hours by IshKebab on Thursday August 02, 2018 @03:46AM (#17669856)
On the other hand I've spent hours debugging an issue in a C++ program I work on only to eventually find that it was a bug in the oldish version of GCC we were using and simply upgrading the compiler would have fixed it.

It's entirely possible that they could have spent hours or days debugging their issue only to find it had already been fixed.

Re:How we spent $30k in Firebase in less than 72 hours by bananaboy on Thursday August 02, 2018 @08:08AM (#17670812)
But after those hours you knew exactly what the problem was and exactly what the solution was. You were in a much better position and could make better judgement calls at that point. It's better to dive in and figure out a problem than to just randomly upgrade things.
Re:How we spent $30k in Firebase in less than 72 hours by rco8786 on Thursday August 02, 2018 @10:19AM (#17671552)
This isn’t really the other hand. This is saying exactly what OP is. Debug your system and fix the bug when you find it. Don’t randomly change things hoping the problem goes away.
Re:How we spent $30k in Firebase in less than 72 hours by sitkack on Wednesday August 01, 2018 @09:56PM (#17668701)
> Reason through your system

modern stacks have a huge opacity problem, everyone wants to be magic, and everyone fails. abstractions make reasoning harder, what tools and techniques would you suggest for doing this?

I'd probably run the application in some sort of sandbox and measure the outbound request load vs inbound request load, something a containerized deployment should be giving the end user (developer) as an affordance for application maintenance and visibility. Differential analysis and graphing built directly into the execution substrate.

Judge away!

Re:How we spent $30k in Firebase in less than 72 hours by cloakandswagger on Wednesday August 01, 2018 @10:09PM (#17668758)
Basic metrics around platform API calls would have done the trick, no need for fancy container solutions.

edit: I would have also assumed they would get this for free from GCP's billing breakdown, but I'm not familiar with it. My first intuition when facing unexpected billing would be to figure out what the major contributor to the bill is (in this case, massive reads from FireStore), not update my frontend packages.

Re:How we spent $30k in Firebase in less than 72 hours by dkoston on Wednesday August 01, 2018 @10:18PM (#17668803)
Exactly. Not having proper tooling meant they didn’t know what to do. When your check engine light comes on, you don’t replace every system in your car, you get out a scanner and check the code.

Google cloud has trace built in which could have shown them execution times and is dead simple to drop into most frameworks.

The real story here is that hey didn’t have engineering leadership on the team who knew how to properly diagnose issues, put tooling in place before launch, and understand how their system is architected.

Kudos to the engineers for solving this issue under pressure.

Re:How we spent $30k in Firebase in less than 72 hours by chrisweekly on Thursday August 02, 2018 @02:09AM (#17669540)
>"When your check engine light comes on, you don’t replace every system in your car, you get out a scanner and check the code."

^ Best response, hands down.

Re:How we spent $30k in Firebase in less than 72 hours by themarkn on Thursday August 02, 2018 @07:19AM (#17670623)
> My first intuition when facing unexpected billing would be to figure out what the major contributor to the bill is (in this case, massive reads from FireStore), not update my frontend packages.

They didn’t upgrade packages to solve the mystery billing. They upgraded packages before they checked what was going on with the database. When they saw the high billing that pointed them to the problem and they fixed it.

There was some questionable judgement shown by not checking db requests first, sure, but in no way did someone think “our google billing is high, we better upgrade angular”.

Re:How we spent $30k in Firebase in less than 72 hours by TeMPOraL on Thursday August 02, 2018 @01:30AM (#17669403)
> modern stacks have a huge opacity problem, everyone wants to be magic, and everyone fails.

Also, lots of people are impatient and/or intellectually lazy. We have piled up a ton of abstraction layers, yes, but they aren't hard to pry apart. But people want immediate results without doing necessary cognitive work - understanding-guided exploration.

It usually isn't hard to identify which component of your product is misbehaving. Before getting into complex magic of containers and sandboxes and stuff, I'd start with the easiest - looking at the Network tab, at your server's resource use, reading the logs, adding some log statements measuring times in suspected areas, actually profiling the backend code (e.g. with a statistical profiler). This should quickly help you identify where the problem is manifesting itself. Then the search for the cause begins.

Re:How we spent $30k in Firebase in less than 72 hours by cm2187 on Thursday August 02, 2018 @03:33AM (#17669797)
There is also a common sense problem. Not trying to play the blame game but the guy who ran a subtotal displayed on the front page by having to download every row in the database probably isn’t a great programmer. It’s easy to say don’t write bugs, but there are bugs and moronic design decisions. This to me doesn’t feel like a real bug.
Re:How we spent $30k in Firebase in less than 72 hours by dmurray on Thursday August 02, 2018 @04:35AM (#17670051)
There's a good chance this is true, but this can happen even with competent developers. One person writes the unoptimized function figuring it can be improved later, someone else assumes this must be cheap and drops it on the front page. Or there was meant to be a caching layer, that didn't work because of some bug.
Re:How we spent $30k in Firebase in less than 72 hours by voltagex_ on Thursday August 02, 2018 @03:33AM (#17669802)
>Also, lots of people are impatient and/or intellectually lazy. We have piled up a ton of abstraction layers

Sorry, the guy that wrote/implemented abstraction layers 2 and 3 left 2 years ago and didn't document anything.

We've been understaffed for a year and we've been told not to hire any more staff until the new financial year.

I've got a "technical debt" item on the backlog but business drives the priorities and it'll never get done.

Re:How we spent $30k in Firebase in less than 72 hours by TeMPOraL on Thursday August 02, 2018 @07:37AM (#17670692)
> Sorry, the guy that wrote/implemented abstraction layers 2 and 3 left 2 years ago and didn't document anything.

Only matters when the fault is located or manifests itself precisely in that layer, and that's always a risk. Consider all the third-party dependencies you use. They usually have only their APIs documented. Fixing a fault usually requires knowledge of the internal implementation.

> We've been understaffed for a year and we've been told not to hire any more staff until the new financial year.

> I've got a "technical debt" item on the backlog but business drives the priorities and it'll never get done.

Yeah, I get that. I've seen that. Thing is, you can only play lottery so long with your main product - and also, if your workplace runs an assembly line so tight that you can't spend hours thinking per ticket (excluding the most trivial ones), then something is seriously broken on yet another level.

Ultimately, I guess what I'm saying is that the main problem here is cultural - possibly both on developer and management side. The actual technical tasks aren't usually that challenging.

Re:How we spent $30k in Firebase in less than 72 hours by gitgud on Thursday August 02, 2018 @01:56AM (#17669492)
Well a browser is basically a sandbox for a webapp.

To debug something complex, I would use chrome devtools, which can measure all kinds of metrics, and the function "Audit > LightHouse" automates the process and ranks a webapp in several key categories.

This case would appear to be related to network requests, so that issue should be fairly obvious in LightHouse.

Re:How we spent $30k in Firebase in less than 72 hours by pknopf on Thursday August 02, 2018 @09:19AM (#17671161)
> Understand the services you depend on. Track the number of requests you're making to them, how long they're taking, and how many are failing. Reason through your system and look at the data when you have issues, rather than grasping at straws.

This is a good thought-process even when debugging issues during development. I've seen many developers attempt to "fix" issues by trying to figure out what dance/keystroke makes things work.

Whenever you encounter an issue of any kind, anywhere, understand the issue before attempting to resolve it. It may require you to dig deep into things you don't currently understand, but your career is currently telling you that you need to understand it.

Re:How we spent $30k in Firebase in less than 72 hours by macspoofing on Thursday August 02, 2018 @09:12AM (#17671124)
>When you have an unexplained performance problem, your response shouldn't be to "upgrade every single framework and plugin" that you use.

Yeah. That jumped out at me as well. They spent an inordinate amount of effort to solve a non-problem. It's great to stay on evergreen with versions, but probably not a good thing to do so while you're desperately trying to debug a problem.

I suspect this was a hopeful but lazy attempt - in the spirit of "Maybe if we just do this, it will somehow fix the underlying problem". It's a lazy approach to solving problems. Debugging performance bottlenecks is hard and devs generally hate doing it. Upgrading version dependencies is a known factor and developers are comfortable with that.

Re:How we spent $30k in Firebase in less than 72 hours by overcast on Thursday August 02, 2018 @08:56AM (#17671046)
There has been MANY times, upgrading outdated libraries or software versions resolved similar performance issues for me. Should you just immediately run update all? No. But acting like that's not a viable solution is silly.
Re:How we spent $30k in Firebase in less than 72 hours by macspoofing on Thursday August 02, 2018 @09:17AM (#17671152)
>But acting like that's not a viable solution is silly.

Usually you want to understand the problem before solving it. In this case, they wasted a bunch of time doing a bunch of things (upgrading all the dependencies, and refactoring the app) in the hope that something (ANYTHING) they're doing hopefully fixes a problem they don't understand. Smart move?

Re:How we spent $30k in Firebase in less than 72 hours by overcast on Thursday August 02, 2018 @09:36AM (#17671252)
Everyone can sit back in hindsight and act like armchair developers. When you're in the shit, sometimes you make not so smart moves, now they've learned from their mistakes. Which is why they are talking about it.
Re:How we spent $30k in Firebase in less than 72 hours by macspoofing on Thursday August 02, 2018 @10:36AM (#17671720)
>Everyone can sit back in hindsight and act like armchair developers.

That's one perspective. But come on! I really don't understand that attitude that when presented with a problem, the first approach is to spend a few days blindingly refactoring code and upgrading all the underlying frameworks. Seriously?

The problem is also obvious if you just stop and think about it for a second:

- They are using Firebase. For the purposes of diagnosing our issue we can assume the backend will scale well (for trivial queries) and the pipe between server and client should be wide. Firebase could be the problem, but odds are Firebase didn't go down on you just as your go-live went ahead.

- Because they are using Firebase, their app is completely client-side.

You can go through the potential areas of concern:

1) UI has trouble rendering. That should largely be independent of the number of users. If this was only a UI issue you'd expect some users to have problems (maybe ones that created a large amount of artifacts) but not all users. Presumably before going live, the app worked well with their test datasets.

2) Some combination of UI or Network or Data model. They noticed their web-app got slower as the number of users grew. So question is why would individual user session slow down as the total number of users grow? It must be that a single-user view is somehow dependent on the total number of users in the system. WHY?!? We know Firebase is fast, but any fast system can choke if you have a bad data model. So it could be a slow query. Or it could be a too large of a response being sent down (again, why would a large response be sent down). Maybe it was a huge json object and the UI locked up. Or something like this.

It really shouldn't have taken long to at least target potential areas to explore. HELL, you should be able to see the issue immediately if you open up the network tab. You'll see which requests are either taking forever, or lead to large amount of data being transferred or both.

It really isn't about 'armchair developers'. I've been in situations where things are falling apart and you need to figure shit out. Our product is on-prem and used in hospitals and is connected to multitudes of other systems controlled by other vendors. When you're trying to diagnose issues, you have to have a rational approach based on some reasonable hypothesis.

Re:How we spent $30k in Firebase in less than 72 hours by dokalanyi on Thursday August 02, 2018 @06:46AM (#17670492)
To be fair I recently upgraded an old PHP install from 5.5 to 7.2 and it sped up the site tremendously. My workflow while troubleshooting is now always going to involve upgrading software.
Re:How we spent $30k in Firebase in less than 72 hours by aidos on Thursday August 02, 2018 @07:17AM (#17670610)
While upgrading should be an option, just don’t do it as a first step. Changing any dependency comes with risks and moving from version 5.5 to 7.2 of anything screams danger to me.

Sure, there are times when it’s going to work out for you but you should at least have narrowed down your issues before you go down that path.

Re:How we spent $30k in Firebase in less than 72 hours by zaarn on Thursday August 02, 2018 @10:27AM (#17671617)
I mean, it can be fairly safe. When I moved from 5 to 7.0 I simply left the PHP-FPM configuration for 5 around and 5 itself installed. It still is.

I can just spin up PHP5, 7.0, 7.1 in case anything goes wrong without delay.

Re:How we spent $30k in Firebase in less than 72 hours by Cthulhu_ on Thursday August 02, 2018 @08:09AM (#17670817)
Yeah I don't get it either, if you have performance problems you look at the network tab and see what's up, instead of yolo-upgrading your framework with fingers crossed and hope it works. Measure before fix.
Re:How we spent $30k in Firebase in less than 72 hours by planetjones on Thursday August 02, 2018 @02:30AM (#17669609)
Yep with performance like that it’s highly likely going to be a problem involving the persistent store of the application. The first instinct should have been to enable some tracing or logging to see where the time was being spent.
Re:How we spent $30k in Firebase in less than 72 hours by megaman22 on Wednesday August 01, 2018 @11:09PM (#17668993)
Scientific reasoning is a rare skill. I'm regularly met with bafflement and blank stares when I suggest that we measure something to determine performance, then perform the same workload, on the same hardware, after making a change.

I've literally had people try to make conclusions on comparisons of test runs with completely different parameters, different data sets, different resources, different versions of code, absolutely everything varying.

My head just explodes... I wamt to scream that this isn't how this works, it's not how any of this works.

Re:How we spent $30k in Firebase in less than 72 hours by michalprzy on Thursday August 02, 2018 @02:36AM (#17669631)
Unfortunately I often see developers asking for complex diagnose in urgent emergencies. When it's literally like a 30 minutes reaction time frame. So from business pov there should be first quick and dirty unperfect analysis which is necessary for emergency decisions. Sometimes you can just prolong caching time as quick fix, but sometimes there is no such option. Programmers like nice and calm working environment but business often is very different place. So, please have in mind what business goals are. And yes, I see there is a lot of stupid managers in It and basically you're right, we should use precise data. Just one point: when available...
Re:How we spent $30k in Firebase in less than 72 hours by jon-wood on Thursday August 02, 2018 @04:08AM (#17669956)
The first thing I'm likely to say to my team when an outage occurs is something along the lines of "stop the bleeding". That might mean bypassing the affected service if possible, rolling back a recent release, or reducing the amount of traffic (we're fortunate enough to have most of our traffic coming from sources we can throw a kill switch on).

However we go about it, the first priority is to give ourselves some space to properly analyse the issue and find the real solution without the rest of the business worrying loudly about things being broken.

Re:How we spent $30k in Firebase in less than 72 hours by aflam on Thursday August 02, 2018 @01:30AM (#17669402)
Managing those experiences takes effort, otherwise you're sure to end up with the issues you describe. Even when the data makes sense, sometimes people hand you over an unparsable csv with their results, while the conclusions comes from a gut feeling. Sadly not everybody understands standard tools like boxplots, and analyses are often hard to reproduce.

The tooling to make it easy not there yet.

Re:How we spent $30k in Firebase in less than 72 hours by notimetorelax on Thursday August 02, 2018 @01:33AM (#17669411)
I think you have a very valid point there, but I would argue it is also important not to react to such situations too strongly. This is something April Wensel talks about here [1] .

[1] bit.ly/2v37AzE

Re:How we spent $30k in Firebase in less than 72 hours by thatjsguy on Wednesday August 01, 2018 @10:32PM (#17668870)
I mean this in the nicest possible way: I see this all the time with the JavaScript set and I am absolutely not the least bit surprised. I used to work on a team that was TypeScript top to bottom, with people who didn’t really even understand how to debug (they were mostly bootcamp juniors). Whenever something would break, if restating it didn’t work, you know what they’d try? Yup, upgrading random dependencies. Refactoring was also pretty popular, although it usually just ended up making things more complicated.

It’s silly to suggest that JavaScript itself is somehow responsible for this. It’s obvioisly just a tool. But I have to say, the most professional cluelessness I’ve ever encountered was in the JS ecosystem.

Re:How we spent $30k in Firebase in less than 72 hours by ct520 on Wednesday August 01, 2018 @10:48PM (#17668922)
I concur. I’m having a hard time not coming off as a dick while trying to opine on how amateurish I think this is. I like JS but the devs and ecosystem leaves me wanting.
Re:How we spent $30k in Firebase in less than 72 hours by radicalbyte on Thursday August 02, 2018 @06:11AM (#17670371)
The sad thing is that this is in my experience the norm. Not just in frontend/js either. It's everywhere.
Re:How we spent $30k in Firebase in less than 72 hours by scrollaway on Wednesday August 01, 2018 @11:37PM (#17669090)
> the most professional cluelessness I’ve ever encountered was in the JS ecosystem.

A testament to how low the barrier of entry has gotten. It's both a good and bad thing at the same time.

It however leads to having to be ever more so vigilant about at least your first layer of dependencies in that ecosystem, if you do want to be professional.

The higher the barrier of entry is to a language, the more likely it is that when you're pulling in dependencies, the code isn't amateurish

Incidentally this is probably why JS juniors think to upgrade dependencies when they encounter unknown situations... a lot of problems in JS do come from your dependencies.

Re:How we spent $30k in Firebase in less than 72 hours by blub on Thursday August 02, 2018 @02:08AM (#17669533)
It's been a long time goal of the software dev community to lower barriers to entry through bootcamps and such, in an attempt to "democratize software".

And the result is unsurprisingly poorer quality software. So why is it a good thing?

Re:How we spent $30k in Firebase in less than 72 hours by projektir on Thursday August 02, 2018 @03:42AM (#17669839)
It's a good thing because it avoids the problem of blocking people from entering for largely arbitrary reasons (i.e., country of birth; exposure to computers in childhood).

I don't think the problem of quality should be addressed by arbitrarily axing people from the field. Some sort of a standardization / accreditation seems like a better approach.

Re:How we spent $30k in Firebase in less than 72 hours by blub on Thursday August 02, 2018 @06:20AM (#17670396)
The country of birth and exposure to computers in childhood are not preventing people from becoming software engineers. I'm living proof of that, as are many people all around the world.

And axing is not arbitrary, it's generally done based on experience and know-how. Not everyone can or should become a software engineer.

Re:How we spent $30k in Firebase in less than 72 hours by ddalex on Thursday August 02, 2018 @04:00AM (#17669916)
Because people think bad software is better than no software
Re:How we spent $30k in Firebase in less than 72 hours by toast0 on Thursday August 02, 2018 @12:56AM (#17669311)
So I completely agree, but let me play devil's advocate.

If you do go and track down the problem in your depedency and file a bug, one of two things is likely to happen: they close it and say it's fixed in the latest version or they refuse to accept your bug because it's filed against an old version.

Skipping the track it down part and just jumping into upgrading can be a time saver. It works fairly well if you fit into the 'common' part of the user base with frequent updates. (Incidentally dependencies with frequent updates are kind of a pain)

Re:How we spent $30k in Firebase in less than 72 hours by TeMPOraL on Thursday August 02, 2018 @01:34AM (#17669414)
> If you do go and track down the problem in your depedency

This is the part the parent's cow-orkers didn't perform. There's nothing wrong in updating a dependency to include the fix for the problem you're experiencing. But the people in question were apparently too lazy/clueless to even track down the problem, opting for randomly upgrading stuff instead.

Re:How we spent $30k in Firebase in less than 72 hours by macspoofing on Thursday August 02, 2018 @09:20AM (#17671170)
>If you do go and track down the problem in your depedency and file a bug

There's a difference between upgrading your dependencies because you traced a problem that you know is fixed in the newer version and upgrading your dependencies because you hope it fixes a problem you don't understand.

Re:How we spent $30k in Firebase in less than 72 hours by zaphirplane on Thursday August 02, 2018 @03:59AM (#17669912)
There is a possibility you found a bug and a workaround is known/suggested

There is the possibility you are told you made a mistake in thinking it’s a bug with the library

Re:How we spent $30k in Firebase in less than 72 hours by LolNoGenerics on Thursday August 02, 2018 @03:40AM (#17669833)
Js is currently more visible than other platforms, also the sheer size of the community takes a role. Idiots are everywhere.

The current trend and curse of DRY and NIH is to solve stuff by adding dependencies and gluing them together. Rookies expect that some software solved the problem at hand without thinking about it. Even worse is that they even apply this to rather simple things. The problem of OP - countig items inefficiently - is absurdly common. IMHO this is the heart of the problem, the new generation is highly uneducated how to handle data.

Re:How we spent $30k in Firebase in less than 72 hours by coding123 on Thursday August 02, 2018 @01:19AM (#17669373)
Are you... in the JS ecosystem yourself?

I used to be in the Java ecosystem, the C# ecosystem, the PHP ecosystem... and I could have made the statement "the most professional cluelessness I’ve ever encountered was in the X ecosystem."

I think it's just an industry thing.

Re:How we spent $30k in Firebase in less than 72 hours by curun1r on Thursday August 02, 2018 @01:40AM (#17669436)
Having spent more than a decade working and hiring in the Java world, I'm inclined to agree.

Having spent much of the past year writing Rust and interacting with that community, I'm inclined to disagree.

My overall feeling is that it isn't only JavaScript, but it is JavaScript and languages that attract a higher caliber of developer don't suffer from this problem the way that languages that appeal to a wider demographic do.

Re:How we spent $30k in Firebase in less than 72 hours by bshimmin on Thursday August 02, 2018 @04:57AM (#17670127)
I feel like JavaScript is a bit of a special case, because there are people out there who, 5-10 years ago, did HTML, CSS, and jQuery, and called themselves "front-end developers", and then along came Node, so they read a few tutorials because it was just JavaScript, and they got some stuff vaguely working and then rebranded themselves as "full-stack developers" - throw in Firebase and Heroku and you have people who can store data and deploy applications to the web with only the most superficial understanding of what they're doing (and yes, that's how you end up spending $30K accidentally on Firebase and thinking that upgrading Angular might fix the problem).
Re:How we spent $30k in Firebase in less than 72 hours by paulddraper on Wednesday August 01, 2018 @11:35PM (#17669085)
It has to do with the barrier to entry.

PHP, Ruby on Rails, and jQuery are other technologies that had low barrier to entry received the attention of the "unwashed masses".

This being 2018, JS has very low barrier to adoption (Have a web browser? You have a JS runtime.) and nature runs its course.

Re:How we spent $30k in Firebase in less than 72 hours by rspeer on Thursday August 02, 2018 @01:20AM (#17669374)
Oh come on. Tech does not need barriers to entry. It just needs debugging and improving one's code to also have a low barrier to entry.
Re:How we spent $30k in Firebase in less than 72 hours by blub on Thursday August 02, 2018 @02:15AM (#17669556)
Software engineering is very hard and can't be taught in bootcamps, blog posts or on the job. It takes years of concentrated effort and quality learning material.

A significant number of graduates of computer science couldn't do software engineering after graduation even before.

That barrier to entry is designed to protect society from poor quality software and actual software engineers from having to suffer through picking up the broken pieces after those people that were helped to jump the barrier.

Re:How we spent $30k in Firebase in less than 72 hours by projektir on Thursday August 02, 2018 @03:46AM (#17669858)
Where can it be taught, then? There are no resources for this right now, mostly people are left to their own devices.

Most barriers to entry are not designed to protect anyone, they're designed to preserve power. To protect people from bad products, you need regulation, accreditation, etc.

Re:How we spent $30k in Firebase in less than 72 hours by blub on Thursday August 02, 2018 @06:30AM (#17670430)
There are very good universities focusing on computer science and software engineering in most countries.

This is the first step. Then one needs to find a company with a good engineering culture, apply the theory they learned and gather experience. Ideally one should find a qualified engineer as mentor.

Self-study and being aware of developments in the profession are the last piece of the puzzle.

Yes, some people won't be able to do some of these things and as a result they won't be good software engineers. They could still be successful programers, the two aren't necessarily related.

Re:How we spent $30k in Firebase in less than 72 hours by projektir on Friday August 03, 2018 @02:04AM (#17677580)
This seems more like what you would like to happen, not what actually happens to most people, so it doesn't really qualify as resources.
Re:How we spent $30k in Firebase in less than 72 hours by Papirola on Thursday August 02, 2018 @10:22PM (#17676895)
Universities ?
Re:How we spent $30k in Firebase in less than 72 hours by projektir on Friday August 03, 2018 @02:01AM (#17677575)
Most universities don't even cover something as basic as version control. Monitoring? Forget it.
Re:How we spent $30k in Firebase in less than 72 hours by bushin on Thursday August 02, 2018 @02:37AM (#17669634)
Type with one hand, make your software better!
Re:How we spent $30k in Firebase in less than 72 hours by paulddraper on Thursday August 02, 2018 @10:20AM (#17671558)
> Oh come on

Apologies if I suggested otherwise, but of course programming doesn't need barriers to entry. Just like PCs and the internet don't.

Re:How we spent $30k in Firebase in less than 72 hours by emodendroket on Thursday August 02, 2018 @01:45AM (#17669450)
Something about jQuery does remind me of JavaScript
Re:How we spent $30k in Firebase in less than 72 hours by intothemild on Thursday August 02, 2018 @03:49AM (#17669871)
Most JS Devs think debugging is just console.log(), that's nice and all, but it's not connecting a debugger, adding breakpoints, and watching the data go around. The amount of times I've caught issues with just a simple game of follow the calls and objects around with the debugger.

As soon as I got to the part where they just upgraded a bunch of libraries.. I rolled my eyes, I was expecting a serious look at something, perhaps even a bug in Firebase or something in-depth. But nope, what we got was "Ooops I didn't think about the number of API/DB calls we were making because we don't think that way, we just assume everything is the fault of the libraries we use."

That kind of attitude is why I cannot wait to abandon JS all together..

Re:How we spent $30k in Firebase in less than 72 hours by weavie on Thursday August 02, 2018 @08:24AM (#17670902)
> Refactoring was also pretty popular, although it usually just ended up making things more complicated.

Yeah I'm guilty of this one. Sometimes you know the problem is somewhere in a particular area of code, but that code is all over the place. Pulling it apart and refactoring it can be a good way of understanding all its dependencies. If the refactoring doesn't help, just don't check it in..

Re:How we spent $30k in Firebase in less than 72 hours by pandler on Thursday August 02, 2018 @11:31AM (#17672184)
I don’t think it’s necessarily something to be “guilty” for. Especially if it’s someone else’s code I’m debugging, I agree that rewriting it “in my own words” can be a great way to understand what’s going on. Like you said, its not like you have to check in the changes.

However it sounds like people are talking about refactoring an app solely for the purpose of hoping that the refactor shakes out whatever bugs. That sounds like the debugging equivalent of “8 hours of coding saved me 30 minutes of planning”

Re:How we spent $30k in Firebase in less than 72 hours by foxylad on Thursday August 02, 2018 @05:46PM (#17675731)
r/Javascript/PHP/g # 7 years ago

r/Javascript/Visual Basic/g # 14 years ago

r/Javascript/Basic/g # 21 years ago

Us old/wise/thoughtful folk have denigrated the tools that young/foolish/impetuous kids use since we were they.

We need both: yes, these young people made some mistakes, but I'm in awe at what they achieved. They built, triaged and fixed a massively successful campaign in the time I would have taken scoping out the requirements. Oh, and gladhandled Google into paying the tab... impressive!

[Update: formatting]