Sadly, this feels exactly like what working in big tech has been like for me. It amazes me that after so many years of these types of problems that in 2023 a team can have a bus factor of 1 across the entire team, with requirements often being one sentence in a Slack message or a Jira ticket with zero context that says "do this".
It still boggles my mind that they closed this down. To date, it was the best job board for software engineers, and had filters you just don't see anywhere else - like filtering by companies that sponsor visas.
Finding work there was a dream, and while there weren't many roles available, they were usually great quality roles. Finding candidates was also great, and all of them were solid candidates that met the basic bar of "can you write some basic code in a language of your choosing".
To be honest, it felt like SO went downhill when Jeff Atwood left.
It's all estimates, of course, but there's some good reading about what factors effect the herd immunity threshold here: https://en.wikipedia.org/wiki/Herd_immunity#Mechanics They estimate 50-83% vaccination threshold to achieve herd immunity for COVID-19. I believe the citation is this study, but I admit my ability to read scientific papers is lacking: https://pubmed.ncbi.nlm.nih.gov/32433946/
Right now they are saying that 95% had a substantial immune response. But we do not know whether it is substantial enough and lasting enough. Imagine that it is both for less than 70% of vaccinated. 5/6*0.7<0.6 (and yes, 0.7 is to prove a point).
Before lockdown, I had already been looking for jobs. Since then, I've been rejected pre-interview by a handful of companies, and have bombed out of a handful of interviews at the final stage.
I was also made redundant a few weeks ago, so I'm nearing the point where I need to find myself a new job.
Despite that, it's been weirdly nice to sit at home, on my own, and simply learn again. Obviously, I'm freaking out about being out of work soon, but I'm hopeful that the stars will align and at least one company will offer me something.
After receiving an email from a Big N recruiter, I decided to spend the last month working through LeetCode problems.
I'm glad I did, because literally every job I've applied for has had some kind of Codility or HackerRank style test - even bog-standard developer jobs have asked DSA-style questions. Yesterday, I was asked a Dynamic Programming question for a full-stack developer role at a bank.
It seems like these kind of interviews are becoming the norm, so I'll probably spend the rest of my furlough time working through DSA courses, grinding LeetCode, and doing daily Codility tests for different companies.
I'm not sure where you're based, but I've heard of Usher's Syndrome after hearing a talk from someone named Molly Watt, who also has Usher's Syndrome. It might be worth dropping her a line, as in her line of work she might be able to either give some advice, or point you towards someone in your situation that can help.
I'll probably get a lot of shit for this, but LeetCode.
I've recently been furloughed, and I think that redundancies aren't too far away. There aren't many companies hiring in my area at the moment, and if I'm going to move it's going to be for a big company, so I'm dusting off the CV and am applying to some Big N companies.
A recruiter recently reached out to me, and I've got an interview with one Big N company coming up soon, so am using my new-found free time to study and, at the very least, be a bit more employable at the end of this pandemic.
I don't hate you I pity you. Applied for Big N jobs last year, had to study leetcode for 1 month and I hated my life. I was legit depressed. I was already so busy at work and coming home to do leetcode just killed all motivation and happiness in my life. Did well enough to get to on site interviews but didn't get a full time offer from any of them. Such is life :(
I used to hate leetcode with passion because i associated it with being a failure in career.
I started leetcoding just for enjoyment and not for landing a FAANG job, when i had no interviews coming up. I started enjoying it a little bit and now i do it for "fun" and don't have an anatagonist realationship to it.
Like someone said, once you overcome something you have keep overcoming it, so you can never be successful if your strategy is overcoming.
It feels like studying for the SAT for me (something I also struggled really investing in). At least it’s more valuable than the SAT in the skills you develop.
It can be really hard to motivate yourself to jump through hoops.
I use to hate the idea of studying leetCode and I still refuse to do it. But then I realized how hypocritical I was being considering all of the time I’ve spent “grinding architecture and infrastructure”, reading white papers and studying videos on TOGAF so I could talk the talk on an “Enterprise Architect” or a “Digital Transformation Consultant”. But if I have to play a game to get the next salary upgrade after I top out as an IC in my local market (not the West Coast), that’s what I had to do. Who knows? I might end up working in consulting at AWS or Azure.
But now, with the entire world economy screwed up, I don’t think now is the right time to make that kind of move. I’ll stick with being just a regular old Enterprise Developer/Architect/Team Lead/Single Responsible Individual depending on how the wind blows focusing on healthcare.
Architecture is way easier than algorithms. I'm actually the opposite. I hate the idea that people are studying intensely for architecture because it just takes reading the wikipedia summary to get the main point.
Architects are usually just managers who are ex-engineers and have been out of the front lines for so long that they aren't technical enough to get back into coding. This is fine, but the idea that "architecture" is some kind of talent is absurd. Anyone can study a blog article about the latest architecture buzzword and understand the concepts front to back. Not to mention that the more physical nature of architecture makes it less flexible than code itself so "architectural" patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.
The true difference in ability is measured by who can actually Build an architecture, and usually its developers who build it, while architects (mostly) just talk about it.
Not to mention that the more physical nature of architecture makes it less flexible than code itself so "architectural" patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.
This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure.
I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters to vary the hardware environment (cpu/memory). After the environment was created, the script then ran a series of Artillery load tests, recorded the results of the load tests, gathered metrics from CloudWatch and estimated the monthly cost compared to the performance.
We reported that to management to let them decide how much they were willing to spend for the throughout they needed.
I’ve created entire environments with databases, Redis Caches, ECS clusters (think AWS version of EKS), etc as a proof of concept by using CloudFormation deploying code to it, showing management as a demo, and then tearing it all down just by clicking delete until we can come back to it after the contract is signed and then spin it back up with one command.
>This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure.
Note how I said "more physical nature," meaning that it's closer to physical but not completely physical. Either way, all abstractions suffer from leakage from the physical world. Data and processes, while seemingly abstract all occupy physical and temporal space and this fact leaks to all layers of the stack. Thus, technically, everything in the universe including computation is physical and nothing is ever purely a virtual entity.
Honestly, you think I don't know about docker? You think I don't know about the cloud? "Infrastructure as code" oooh buzzwords, you're just using a shittier domain specific language to write something that you can also do with Regular code (such as python, no buzzwords needed).
Give me a break, what web developer doesn't know about the above stuff? None.
>I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters...................
OK, the stuff you did isn't even usually what a "architect" does. It's devops. An architect just diagrams the boxes and lines and gives it to the devops guy to spit out working infrastructure or a POC. But that's besides the point...
Can you write your own programming language? Can you write your own database? Can you write your own Operating System? These are actual specialties (none of which involve "architecture"), not some garbage made up specialty like "architect." At the very least, if you want to be part of an actual specialty in the IT world you need to build shit and that shit needs to be HARD to build, you can't just do some easy diagraming of a bunch of stuff while acting like you have some superior understanding of the latest architecture pattern you can look up on wikipedia.
>Honestly, you think I don't know about docker? You think I don't know about the cloud? "Infrastructure as code" oooh buzzwords, you're just using a shittier domain specific language to write something that you can also do with Regular code (such as python, no buzzwords needed).
Well, using general Turing-complete code languages for infra and config vs specialized templates/languages is a legit point of contention in the industry right now, although judging by the style, GP isn't considering the pros and cons of each approach, which include:
* Forcing users to learn a specialized language vs reusing knowledge of a general purpose language
* Inevitable Turing-completeness creep and increasing complexity in specialized languages
* Complexity and difficulty of reasoning about general purpose code (and analyzability)
So GP does have a point. He/she is just not making it very well, I think.
The tradeoffs you mention are obvious right? I'm just sort of downplaying the huge bragging Scarface was doing when he mentioned he did some cloud formation and "infrastructure as code" because it's really not that impressive.
It's obvious that the logical consequence of using Turing complete languages for devops introduce a lot of complexity into infrastructure and can introduce configuration that executes continuously as well. Bugs that only existed in the application layer now creep into infrastructure. Infinite recursion can now be spinning up infinite instances.
That being said the devops thing was a side detail and that's besides the point. The point is that the role 'software architect' is useless.
Obvious? No, and even less straightforward. Personally I think it's a good thing both kinds of tools exist, because each dev/team/project has different needs and different sensibilities.
Personally, I prefer my configuration to be written in a plain-old language (e.g. Python) instead of a specialized config language (be it YAML or JSON based or whatever). I can test that code, I can reason about it, I can review it for bad stuff like infinite loops (not perfectly, but still), I know how it behaves when diffed and merged, etc.
Regarding software architects: I've seen a few companies where architects are hands-off demigods who prescribe complete architectures without ever having to contend with the results of their decisions. Those companies are, in my experience, few, and tend not to do well.
In a lot of other companies, the role of an architect is very similar to what Herr Scarface describes - individuals with a lot of experience who can make broad decisions based on both experience and data, and leave it to lower ranking engineers to work out the exact details. They do the hard/open-ended stuff and come to conclusions about the broad strokes (e.g. "yeah Redis will work well for this problem, but since you have denormalized data you might need a background process to restore consistency").
This is often called "scoping" and it is the main responsibility and impact of higher-ranking engineers (whether they're called "architects" or not, I personally dislike the term).
>In a lot of other companies, the role of an architect is very similar to what Herr Scarface describes - individuals with a lot of experience who can make broad decisions based on both experience and data, and leave it to lower ranking engineers to work out the exact details. They do the hard/open-ended stuff and come to conclusions about the broad strokes (e.g. "yeah Redis will work well for this problem, but since you have denormalized data you might need a background process to restore consistency"). This is often called "scoping" and it is the main responsibility and impact of higher-ranking engineers (whether they're called "architects" or not, I personally dislike the term).
It seems like these people are capable but most actually are not. The reason is because they spent too much time in this role so they lose the skills of actually being a software engineer and gain the skills of bullshitting about architecture. So when you "interview" or talk to these people it really sounds like they know they're shit when they don't. The reason is, it's basically their job to talk about technology so they become really good at it, and if an interview doesn't involve a technical coding part, then they'll ace those interviews with flying colors.
If you get down to the nitty gritty and literally ask these guys to perform some very easy coding problem or actually implement a product you will tend to see a very high amount of incompetence.
I work at a startup where we accidentally hired one of these architects. The guy bullshitted his way to the top but we're having a hard time giving him a ticket where he works on the actual product. He's politically maneuvering his way around to only work on proof of concepts and holding irrelevant meetings to talk about architecture. Even roped the CTO in to support his case, which completely pissed off the entire team. Startups need people who can get the job done, not someone who can create a little bullshit bubble so that he can keep his bullshit salary.
This is very similar to someone who's been a CTO for many years. If you don't program, if you don't actually build architecture, you lose your technical skills but you gain bullshitting and management skills. This isn't actually completely bad as a companies need leadership and managers and sans the bullshitting part, leadership is a great skill.
It is completely wrong to assume that "Architecture" is some sort of skillset and that an "Architect" is more technically capable (due to the hire rank) than a typical engineer. Give them the title they deserve, and that is: Ex-engineer/manager.
>Obvious? No, and even less straightforward. Personally I think it's a good thing both kinds of tools exist, because each dev/team/project has different needs and different sensibilities.
It's obvious to me the difference between configuration files and turing complete programs or even python. You can extrapolate the benefits of using python or a configuration file. Have you hit an infinite loop error using python to instantiate instances? Maybe once or maybe zero times, but you can still use your brain to extrapolate that this is a potential problem even when you've hit this problem Zero times.
On a side note, you can also extrapolate that JSON and YAML can be turing complete. It depends on how something interprets it. For example:
Awkward yes, but I'm just showing you a way where it can be possible in my garbage/made-up JSON above. Which you can extrapolate from that there probably is a much more elegant way of doing it. All you really need are two features: branching and self-reference. JSON or YAML does not actually preclude something to be not turing complete.
>Personally, I prefer my configuration to be written in a plain-old language (e.g. Python) instead of a specialized config language (be it YAML or JSON based or whatever). I can test that code, I can reason about it, I can review it for bad stuff like infinite loops (not perfectly, but still), I know how it behaves when diffed and merged, etc.
Yeah, I'm kind of in agreement with you here as a personal preference.
While I agree the pendulum goes both ways - for instance a AWS’s CDK builds templates using your language of choice. How can someone know the tradeoffs without a breadth of experience who thinks they can learn everything they need to know from Wikipedia? “There is no compression algorithm for experience.”
You don't even know how much experience I have. I'm saying architecture patterns can be learned from Wikipedia not 'everything'.
A devops configuration language (outside the domain of architecture) is not included in this category. Please don't be manipulative and please do not lie.
Let's stay on topic rather than make passive aggressive comments on my intelligence.
You're implying that my comments are stupid and arrogant. Prove it if you can, let's get to the bottom of whether or not "architects" is a worthless specialty or not. I think you know I'm right and the only thing you have left are personal comments on my intelligence.
>We all thought we were the smartest people in the room at one point, you’ll grow out of it too one day.
Again with the insults.
Why bother? Because you can learn and I can learn. I don't come here to trade insults. I come here to lay down the actual reality of what I see unimpeded by social norms. Yeah I'm sure I touched nerve here, but it's nothing personal, the internet allows me to talk about truths that are uncomfortable and forces me to face those truths as well.
I've been proven wrong tons of times on HN, so I'm hoping that if you disagree, you can prove me wrong and I can learn something and I'll return the favor in turn if you're the one that's actually wrong.
I find that this isn't the case with most people, they don't want to face reality. The fact that you turn to personal insults and have this whole "why bother" attitude seems to me as a cover. You don't bother because you got absolutely Nothing to offer.
It isn’t intended to be an insult. This thread is veering way off topic but if you think you can learn everything that you need to know by reading a few blog posts and Wikipedia articles, what’s the point? Why ask on HN if as you say everything you need to know you can find from a few blog posts?
As software engineers, we tend to be told especially when we are young that we are all “smart people” (tm). We start to internalize it (believe our own bullshit). But the longer your career is, you realize that the world is full of “smart people” and that your coworkers also came up thinking they were the smartest people in the room.
It's an insult drenched in the social politics that are an intrinsic part of our corporate politics. Some positions are useless and ultimately require more politics to stay relevant. Architecture is such a position and you seem to be good at politics.
You don't even know how old I am, you don't even know what level of intelligence I consider myself to be. Yet you make a bunch of baseless comments hinting at my personal character. That is the extent of what you're trying to convey, an insult through and through yet subtle on many levels. Politics, the only essential skill needed to become an architect.
When did I say you can learn everything you need to know by reading some blog posts or Wikipedia? I never said this. I only said that you can do this for 'architecture' and that's why the job role 'software architect' is complete bullshit.
Now let's get back on topic. You disagree with me. You think architects know something about 'architecture' that is beyond Wikipedia and blog posts. Prove it. You think they have some ability that sets them apart from normal engineers. Tell me what that is and why there exists articles like this:
I don't want to see another irrelevant comment because that just tells me that you got absolutely nothing left. Prove the worth of a software architect.
Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.
A good architect makes it seem like their job is easy, but there’s nothing easy about taking a vague idea and leading a huge cross-team effort to solve it.
>Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.
Good thing we're on the internet where we can talk about the actual reality and lay everything out as it is without worrying about the social and political bureaucracy that infests corporate culture.
That being said, isn't what you described the role of the tech lead or manager? The best tech lead ultimately derives technical architecture by aggregating the expertise of the team and puts that plan into motion exactly as you said.
The term "architect" usually implies greater knowledge of "architecture" where the "architect" uses this "greater knowledge" to lay down a high level plan of the infrastructure. Additionally your initial post implied that this is what you think, because this is what you study for interviews.
Like I said, usually the architecture role is actually ends up in practice becoming an ex-engineer manager. That's the only actual role they can fit while maintaining the respect of the engineers and without being completely useless. This is basically what you described about yourself.
Additionally your initial post implied that this is what you think, because this is what you study for interviews.
Thousands of people study about how to reverse a binary tree on a whiteboard and other needless leetCode to “work at a FAANG” even though they don’t do that everyday.
What you study for an interview is unfortunately often only vaguely correlated with what you do on a job.
>What you study for an interview is unfortunately often only vaguely correlated with what you do on a job.
Agreed 100%. Interviewing is hard. I would argue though that interviewing for "architecture" causes another issue. To give an analogy... it's like studying english for a programming job because english is used all the time on the job.
Architecture is just too easy and too obvious and if you just happen to not know a specific architecture or way of speeding something up, all you have to do is read about it on the internet like looking up vocabulary on a dictionary.
I would also argue that google isn't exactly just testing algorithmic skills in an interview. The spiritual goal of the interview is that the question they give you is novel and one you haven't seen before. The overall purpose of novel questions is to measure your raw intelligence.
The question isn't whether or not you know how to reverse a binary tree but whether or not from a state of not knowing how to do it, can you creatively come up with a way to do it in an hour? Raw IQ.
Of course the practice doesn't always match up with the ideal and often times interviewees can get lucky.
I'm not saying that this is the best way to interview. I'm saying that judging an interview based off of architecture is even worse. It's even easier and there's a lot of room for bullshit in a conversational interview as opposed to a technical question.
Pro tip: this applies to you to buddy, you don't even know my background so you don't even know which field I have a PhD in or how much older I am than you.
After programming in assembly for hobby for six years in middle and high school, 4 years in college, and professionally for almost 25, nothing about software development is “fun”. It’s just a way for money to appear in my bank account. Don’t get me wrong, I don’t dislike software development, but every hour of continuous learning I do is a combination of keeping me competitive at my current level or to make more money depending on where I am in life.
I hate to say it, but I got no discernible advantage from my non-trivial coding projects during my last job search. My time would have been far better spent just grinding leetcode, from a purely economic perspective. I wouldn’t have had nearly as much fun, but I probably would have gotten more offers.
100% percent my experience too. In the last 3 months I've been on-site at 3 of the FAANG companies. Not a single interviewer brought up the large personal projects I've done and which are given decent space on my resume; my weeks of leetcoding was definitely far far far more beneficial for getting a job.
sometimes feels very sad about this since one's value should be reflected by the awesome projects he has done. I think it's just laziness of the FAANG companies. If the interviewer is well prepared and keeps digging the resume, then he should know the candidate is good or not. But by leetcoding, it's simpler for them, just keep asking the repeated questions.
From my personal experience, a company wants a "yes man", someone who will do as they command. From their perspective, if you can't pass (or refuse!) the coding challenge, you're already in the red flag zone. That's just how it is.
The funny thing is that a single fairly large personal project will develop your engineering skills 42 times that of the hundred something leetcode problems you solved for your FAANG interviews.
One teaches deep long term critical thinking. The other short term critical thinking. You won't see any small short sighted systems out in the real world.
I think that if your hobby projects will be important for many people: i.e. you develop something with the importance npm, or Ruby on Rails, or Vue.js, FAANG companies will make you offers without asking you leetcode kind of questions.
This is not true. Not so many people can set up popular and awesome projects like npm or vue.js. These are top level programers. But for other people you can not say they are not good enough to be qualified.
I read that the guy who invented Homebrew still had to go through the leetcode interview at Google (which they failed) so I'm not sure if they ever waive the interview requirements?
Can't imagine getting shit for studying up on what's likely to help you get a job. I'd be doing the same if I were in your situation (though if laid off I'm hoping to start my own thing).
I can't hate you for doing what you need to do to get another job, I hate that this it what interviewing has come to and the companies capitalizing off it.
"I hate that this it what interviewing has come to and the companies capitalizing off it."
I for one am extremely grateful, although I think it would be even more fair if it was more like the SAT. Traditional interviews depend too much on status signaling and social connections.
Back when I was preparing to apply to a FAANG, I built a game engine as my vehicle for practice. From scratch. Well almost from scratch, if you consider bare nekkid OpenGL to still be "from scratch".
There's tons of opportunities in a game engine for exercising and honing your performance chops and your algorithm chops. It also gave me an opportunity to learn a new language and programming model - the GL shader language. Building it onto a game helps to keep it real.
You can get away with making a working, performant (basic) engine with some neat functionality nowadays without delving too deep into algorithms or using any advanced data structures.
Off the top of my head, there's pathfinding on a navigation mesh, mouse hit-testing and FOV pruning with a space partitioning tree, triangle mesh sorting. You can also do some agent work by building up an automated opponent.
On LeetCode, how would you estimate the split between slogging-enldlessly-at-things-I-already-know and I-actually-learned-something?
I had never heard of it until I read the thread under your comment so I apologize if this is obvious to people in the know. From the comments it sounds like more of the former and less of the latter.
I had a good experience with Project Euler back in the day (account long since lost). There was absolutely no focus on immediate employability but there were improvements in my "human capital".
Leetcode problems can be solved by extrapolation from FizzBuzz programming. They can also be solved by engineering insight of algorithms and data structures that are applicable to processes that don’t fit in RAM. That’s what makes Leetcode plausibly useful for evaluating candidates. Bad engineering will get correct output and good engineering is possible. Neither requires significantly more effort writing code.
I did some Leetcode type stuff in high school to prepare for CS contests and at University for some CS courses.
I think they are ok if you like that kind of stuff and like to find solutions to those kind of problems. And if you have time.
Most people who hate them are grinding leetcode kind of stuff in limited time, taking away from sleep, time with family, time for rest.
If something starts feeling like a chore, maybe you are doing it the wrong way or at the wrong time.
Also, from being employable point of view, I think there are more valuable skills. I.e. if you want to work as a web developer, know a framework by heart, master a web programming language, know SQL, know HTML, CSS and JS, know some useful patterns, know about testing, SOLID, DDD, TDD, know how to use tools like GIT, JIRA, Jenkins, Docker, know REST/SOAP/gRPC, know async and parallel programming. Those were the kind of technical questions I was asked about 3 months ago when I went through 20+ job interviews. From all those only one asked a leetcode kind of question. It wasn't hard and it didn't seem like it was a make it or break it kind of question. Many years ago, when I applied for game development jobs, I was asked about Unity, C#, GPU shaders and a bit of algebra and geometry, no question was leetcode like.
I would be doing the same thing if I was in your situation.
Even though LeetCode is a grind, there's no way around it if you are targeting big companies.
I'm also doing a data structures and algorithms course, likely followed by what will be HackerRank and LeetCode. I really don't like it but what can you do?
I guess its something I'll get good at if I practice it more, but at I cant even really do leetcode easy right node despite having been a professional developer for a few years and a hobbyist for long before that. I have no C.S. background though.
Most of the times when I end up seeing the solution ot makes sense, but uses data structures in ways I wouldn't think. Part of the reason for that I think is because my daily work for one operates on much different types of data (business entities vs arbitrary collections of integers) and also because the logic in the applications I work on is not very algorithm heavy.
Another reason is because of high level abstractions I've been spoiled by. I could probably hack many of the problems together with LINQ but that's not gonna hold up very well.
3. You immediately responded to the downvotes with anger and insults, ensuring that no one will bother to engage. You're probably having a bad day but don't forget other people also are having shitty days and no one is helped by your behavior.
3. You've been here for long enough to know the rules. Keep things civil and assume positive intent wherever possible.
Hope your day gets better ( call a friend, hotline, play a game, draw, whatever it is that you use as a healthy form of therapy)
While I'm fully agree with the "this isn't a tech problem" comment, there are indirect ways that people can help.
I think the biggest problems many are going to face aren't related to the illness itself, but the effects of self-isolation and the outcomes, such as:
* Dealing with your loved ones getting sick or dying - online services to talk to others that are suffering or going through tough times would be good.
* Boredom - putting that "empty time" to good use by building your skills.
* Loneliness - providing a platform to utilise existing or new social networks to make people feel that they aren't alone.
* Volunteering - one of the biggest hit areas is going to be in elderly care, and to be honest it wouldn't be unsurprising to see care homes shut down and relatives being left to look after their relatives. Anything that can help people in these situations would be welcomed, whether it's supplies, stuff for people to do, etc.
* Aiding remote workers. For many, remote working is an alien concept, so if you've got experience in working from home in an optimal way create an in-depth guide to help others.
* Small gym relief funds - many gyms or martial arts schools have shut down, and many practitioners rely on teaching as their sole form of income. Building a relief fund for those small businesses would help tremendously, on the basis that it can be "paid forward" in the future through private lessons, online instructionals, etc.
It's also how I say that there isn't really a useful problem that decentralisation solves. After all, most git users use git in a centralised way.