I’m probably in the minority here, but I prefer open offices. I prefer open spaces in general and try to work outdoors as often as possible when the weather permits. So to me, an open office is the ideal work environment with the minor concession that I need to share it with 4-6 others.
> The good thing is that it means now they care a lot about what we think of them. They didn't before. So at least, if they haven't changed, they are forced to act like they have.
I’ve never found a compelling reason to use this construct (or the analogous `while...else` construct). But then again, I rarely find myself using `else` with `if` either...
So, at my company, we have yearly reviews. Instead of looking at how productive people are from week to week, people are allowed to vary in their productivity throughout the year. Theoretically (although this never happens in practice because humans) an employee could deliver enough tangible value in the first half of the year and take the rest of the year off. It is the employees’ responsibility to show how productive they have been. That productivity is preferably measured in relatively tangible terms (backed by data), such as number of customers impacted, cost/revenue changes, or time savings. This requires a lot of trust, and places a lot of importance on the hiring bar, but it pays off.
I wrote this as one of my first HTML/JavaScript projects. It’s far from perfect, but it served me well for 4 years. It was not difficult to make and uses MediaWikis existing APIs.
As an aside, education does not scale with the ever increasing number of ways that personal information can “get online”. Additionally, it assumes some degree of privilege as more and more of everyday life moves online. Not everyone can afford to care for their own privacy, and those that do must pay the time, money, and convenience costs associated with it.
Personally, (I can’t speak for everyone, or even most), I find enormous value in breadth of knowledge. For example, purposefully using different programming languages and/or different paradigms actually gives me a deeper understanding of the core problems that lie at the intersection of all of the various approaches and implementations of things.
Software engineers are first and foremost builders. We take components of varying degrees of abstractness and arrange them together in scalable, fault-tolerant ways that are amenable to change.
It is the understanding of the underlying and often transcendent principles of building things that I am a lifelong student of. To borrow the music analogy referenced in the article: you don’t get good at playing the piano by playing the same pieces over and over again. You become a great pianist by understanding and internalizing the relationship between rhythm, scale, then motion of the keys, and the reaction of the listener. You can only do that by playing (and listening to) a wide variety of music.
TL;DR don't rely on humans to "do the right thing", even if they're supposed to know what they're doing (i.e. ops people).
As part of a team (and an organization) that practices "devops" heavily, all of our devs do ops. We maintain the separation using an oncall/ops rotation and only touching prod from designated "ops" hosts. We also follow a "2 person" rule when touching production. We use a secrets management system to deliver credentials to hosts and alarming setup when the "wrong" hosts (e.g. dev hosts with access to prod creds) have access to certain creds.
This seems like it fits the narrative. Still, WTF? A quick google tells me that PostgreSQL supports SSL cert-based authN. The prod environment (and possibly an Ops host) should be the only ones with the right certs to connect to the prod DB.