I find a conversation more distracting if it's relevant to me.
If we have to cram developers into open plan offices then each feature team should be dispersed throughout the building, so that the discussions each person overhears are less relevant to the person overhearing them.
I notice a slight blunting of my mental edge at about 1000ppm. I always maintain enough ventilation to keep below about 800ppm. I don't guess; I monitor.
At work, in our delapidated office, I've seen up to 1800ppm by lunchtime. No wonder no one can concentrate in there.
It's not cheap, but you can buy heat-recovery ventilation for domestic properties: stale air is pumped out, fresh air is pumped in, and there's a heat-exchanger to warm the incoming air. Typically, air is extracted from rooms such as kitchens, bathrooms and toilets (so that you expel moisture, smoke and odours) and pumped into living spaces such as lounges, dining rooms and bedrooms. It doesn't provide enough air changes per hour to mitigate the danger from Covid-19, but it does do enough to keep CO2 levels down where you want them, and it avoids arguments with people who want to close all the windows and doors because they "don't like a draught".
I'm a software engineer. I choose music or silence tactically. If I need to power myself through a task, I use music to do it. If I'm trying to solve a difficult problem or master a complex body of unfamiliar code, I need silence.
Before WFH become the norm in early 2020, there were days when I made no progress at all until everyone else had gone home. The precious hour between 5pm and 6pm -- when the cleaners came and talked to me and broke my concentration again -- was sometimes more productive than the entire day that led up to it.
What also helps, working alone, is the ability to talk out loud to yourself. For me, it's a superpower. I dread losing it if Management decides to pull us all back into the office when the pandemic is over. (Or, even worse, continually talking to myself without realising it. :-))
Remember all the ghastliness with code pages that sprang up around Ascii, such that systems configured for different languages didn't agree about what characters most code points were supposed to represent? Well, good news: Ebcdic supports that. For example, here's a code page that can represent all the characters you're likely to need in French:
So, to be unable to represent á, è, ô, ü, ç, etc, the application would have to be locked into not just Ebcdic but also a particular Ebcdic code page that seems unsuited to the locale where the program was running.
Admittedly, an Ebcdic system will have difficulty representing French, Greek and Russian names at the same time, because there's no code page that encodes all the necessary characters.
An application hard-coded to US-Ascii would also be unable to support accented characters, and an application using any one Ascii code page (as opposed to Unicode) would have the same difficulty representing French, Greek and Russian names at the same time. Which is why, in 2021, we don't do that.
How many people bemoaning Facebook's evils on HN still have Facebook accounts?
Do what you know you ought to do. Stop feeding the beast. Set a better example. Close your account and don't look back. And, when people ask you why you left, tell them.
I'm sorry -- slip of the keyboard. Where I wrote "load-balancing" here yesterday (not once but twice), I should have written "traffic-shaping." I have only one Internet connection -- that's all I can get here -- but traffic-shaping moves the queue from the ADSL router or the ISP into the little Linux box, where it can be managed better, and ensures that heavy users such as big uploads and downloads don't crowd out interactive users. The Web search I suggested will make more sense in that context!
Take a look at <https://www.gl-inet.com/>. These boxes come with a nice, simplified GUI, but will run stock OpenWRT, which you can build yourself if you wish.
I placed one of these boxes behind my ADSL router to do load-balancing. To use it as an Internet router, you'd instead need to couple it with a modem. A colleague whom I trust recommends Draytek kit but (a) I've not tried it, (b) it's not cheap and (c) I'm just a stranger on the Internet, so read around carefully before splashing out.
I've found myself in a similar situation. What I've learnt is that good load-balancing makes a surprising difference. It won't help you back up your files to the cloud any faster, but it will keep your Internet connection usable for other people while you do so. I've gone from being unable to hold one decent Skype conversation to being able to hold two in parallel on the same network. I've gone from ping times of up to 800ms when my wife used WhatsApp to ping times below 25ms in all realistic load conditions, including WhatsApp, and even flat-out file transfers in both directions at once. For video conferencing and general Web browsing, low latency is usually more important than high bandwidth.
The route I took was to place a small, low-power Linux box between my network and my ADSL router, running OpenWRT, and then configure load-balancing on that. A Web search for "bufferbloat cake" (no, really :-)) will show you one of the most useful Web sites I found.
One other measure you can take is aggressive content-blocking. I use Pi-Hole, uBlock Origin, Privacy Badger and Blokada, and I recommend them all. If you don't have much bandwidth, you don't want to give half of it away to marketers and creepy trackers. Use what little you have to work for you, rather than against you.
Having started from a position of knowing very little about Linux networking, I'd say that the Linux networking stack is powerful, flexible and fast, but it's let down by the available documentation, most of which seems to have been written at least fifteen years ago, and much of which is simply out-of-date. I couldn't find anything that just starts at the beginning and tells you everything you want to know, and is based on modern Linux commands and facilities. I'd write it myself if I understood it well enough but, honestly, I still don't. For anyone who wants to contribute to Linux but is a wordsmith rather than a coder, here's your chance.
If we have to cram developers into open plan offices then each feature team should be dispersed throughout the building, so that the discussions each person overhears are less relevant to the person overhearing them.
Contrarian, or what? :-)