This software engineering essay indirectly engages with human rights principles through advocacy for inclusive organizational decision-making, worker welfare, and open discourse. While the content does not explicitly reference the UDHR, its underlying argument against systems that exploit developer labor and for transparent, collective governance aligns with rights to work, participation, and expression. The essay primarily frames these issues through organizational and operational lens rather than as explicit human rights concerns.
Another case of someone discovering, after 10+ years in tech, that code is a liability and you're supposed to solve problems instead of chasing trends and padding the resume.
There's a longer term issue that appears to be missing here.
At what point do you change? There must be a point otherwise we'd all be here writing COBOL/CICS with some whizzy Javascript interface library.
Over time it becomes harder and harder and more and more expensive to maintain old technology. Because frankly maintaining old technology is pretty boring and career destroying so you need to be paid more and more to do it.
The marginal benefit of the new shiny is indeed an overhead you should try and avoid, but also you have to dodge the trap of being stuck in a technology when everybody else has moved on.
I am more and more resonating with these feelings, for the good and bad. In fact, my own writing reflects that over the years: https://joaodlf.com/ , I started my blog with information regarding technologies like Spark, Cassandra, Go, etc, and I am now writing about Postgres and Python web dev and Celery.
Boring is boring but it simplifies so much. I still love new technology, but I am now much more likely to try it out extensively and privately before even dreaming of bringing it to my company. An example: A few years ago I got very excited about Go, I started introducing it at work and solved some difficult issues with it. I could not get the rest of the developers to gain an interest in the language, though. Effectively, no one else but me could touch any of that code, this is not good for business. I have now revamped that same code, using old technology, and learned a lot along the way - so much so that I now feel like this old tech behaves as nicely as the more complicated, flashy, new language implementation.
Always glad to see this making the rounds, as it has been influential for me, especially the perspective of "Happiness comes from shipping stuff".
I often think about this part, in particular:
>Then we walked away. We didn’t do anything related to activity feeds for years after that. We barely even thought about it.
>Then one day I said, “hey, I wonder how activity feeds is doing.” And I looked at it and was surprised to discover that in the time since we’d launched it, the usage had increased by a factor of 20. And as far as I could tell it was totally fine.
>The fact that 2,000% more people could be using activity feeds and we didn’t even have any idea that it was happening is certainly the greatest purely technical achievement of my career.
I get a huge kick from making something, and then forgetting about it. For me, implementing something that provides value with near-zero maintenance for years is the ultimate sign that I've done well.
Author mentions Clojure a few times as an example of shiny-thing. Ironically, it's one of the few languages that I can reliably do in the browser, on the backend (on real servers or say, Lambdas), and build native binaries for -- which addresses the later "many tools" problem better than a "boring" programming language like Ruby. Unless you don't care about frontend code I guess :-)
(Overall this talk is fine! I think the problem/technology set illustration is particularly useful. I run Latacora's Cloud practice and we own all production infrastructure and "no, more boring, boringer than that, keep going" is a good way to describe what that looks like. We deploy half a dozen projects with exactly the same zero config storage and in ECS Fargate because I'm not managing servers.)
There’s a certain amount of ladder kicking involved in telling people to choose boring and beige technologies after you started up your career chasing after new and exciting shiny things.
Every developer should spend some time working at the bleeding edge, so they know how it feels to get cut. The best time is absolutely at the beginning, when you’re a fresh grad and have the energy. You have the rest of your life to work on boring stuff that pays the bills, and who knows, if you are successful with a new technology early on, you might just be working on it for a very long time, continually breaking new grounds.
I choose boring technology because it less likely to waste my time. If I choose exciting technology, I will inevitably run into a cryptic error, even if I follow "Getting Started" perfectly, and it will be either difficult or impractical to resolve properly. That happens to me all the time, and I imagine it's due to insufficient testing and developers relying too heavily on their local environment.
Better to work on something boring, but was carefully constructed over time and doesn't require 1/10 the dependencies of today's newfangled thing.
I proudly used "boring" to describe a massive simplification of my work's architecture that I have been working on for the last few years. It has been a successful culling of tech down to the bare minimum (as always- still a work in progress).
Anyway my boss got so so offended and angry that I would use the word "boring". I spent the rest of the day trying to explain it and calm him down.
Anyway use caution with the word "boring". It's more toxic than nuance would suggest.
A huge part of our VC bubble in OSS infrastructure (NoSQL, clouds, middleware, automation) is fueled by a generation of technologists not choosing boring technology.
This is a great presentation, and great advice.
What this piece misses are the marketing, hiring practices and incentives in that capital pool that is fueling FOMO (fear of missing out) as the main driver of our technology trends.
Most people orbiting IT wants to be a part of something that changes the world: it’s their ticket to higher paying job elsewhere, bragging rights at a conference, internet fame/notoriety via blog posts, etc. This is how we wind up with Service Mesh proxied MongoDB on Kubernetes as THE ANSWER, and all the ensuing political battles / turf wars to fight boring alternatives as “yesterday’s news”.
It would be nice to see a greater focus on business outcomes, but I find few have the patience or bandwidth to truly track the success of a technology choice, unless you’re a larger company making a periodic cash bet with a business partner (eg software vendor). And even then, failure can be swept under the rug sometimes.
It requires strong leadership and management (or a great culture) to encourage your teams to communicate tradeoffs and make these sorts of “boring tech” decisions without it being more about individuals playing a turf game.
If you work on a Node backend with Javascript, Where does the idea of switching to Typescript fall into this discussion? Is it a boring technology, or a shiny new technology? It is still using the same tech in Node, which you already know the benefits and pitfalls for, but it isn't like there is no overhead to start consuming Typescript if you haven't used it before.
My hope is for those who agree with the author's premise, that it is still using the same "boring" technology and more people switch to it, because over the last two years when we switched to use Typescript, it has gotten significantly more valuable as more and more people have used it because now a majority of the dependencies I take on have type definitions provided via DefinitelyTyped, or are included with the package.
> "You can’t do poetry if you’re worried about what you’re going to eat today"
Well let me just add this:
> "Shortly after his release from the prison at Meung-sur-Loire he was arrested, in 1462, for robbery and detained at the Châtelet in Paris. He was freed on November 7 but was in prison the following year for his part in a brawl in the rue de la Parcheminerie. This time he was condemned to be pendu et etranglé (“hanged and strangled”). While under the sentence of death he wrote his superb “Ballade des pendus,” or “L’Épitaphe Villon”, in which he imagines himself hanging on the scaffold, his body rotting, and he makes a plea to God against the “justice” of men." - I wouldn't call that the highest step on the pyramid
Somewhat playing devil's advocate, but if everyone joins that club, we keep the status quo and there's no more progress.
If everyone joined this club in the 50's/60's we'd still be writing assembly.
It's the guys pushing new shiny things that allows our domain to go forward, we just need to accept that 90% of the shiny new things eventually turn out to be crap. It's about the other 10%.
Great points. I was reminded about a period of close to ten years when “my stack” was Apache Tomcat with servlets and JSP. I would handle background tasks in threads initialized in servlet init methods. For me it was a universal platform for anything I was required to develop and deploy.
I was in Chicago last month and had breakfast with an old customer (I had never met him in person even though I did a ton of work for him between 2000 and 2006). One of my tasks for him was writing a Sharepoint clone that ran for five years totally unattended by his ops team. After five years they ran out of disk space and did a quick migration to a larger server. My customer thought that in five years they had never restarted to system or rebooted the server (yikes!, no security updates?).
Like many developers I have a strong desire to work with more exciting technology, even when there's no business case for it. Strangely enough, I've found the best outlet for that energy (other than personal projects when I get free time) is configuring Emacs.
It's less disruptive than putting a new language or database into production, and makes me significantly more content to work with a boring stack. Plus I get a more comfortable computing environment out of it.
Maybe someday I'll get Emacs just the way I like it, and need to find something else to distract me from chasing the new and shiny, but I kind of doubt it.
I am in complete agreement with this. (Sing it, brother!)
But,
"My friend Andrew wears the same brand of black shirt every day. He thinks that if he conserves the brainpower it would take to pick something to wear, he’ll bank it and be able to use it later for something else. [...] I like to think about it like this. Let’s say that we all get a limited number of innovation tokens to spend. [...] These represent our limited capacity to do something creative, or weird, or hard. We really don’t have that many of these to allocate. Early on in a company’s life, we get like maybe three. Not too many more than that."
I don't buy this. If you try to save up your brainpower, innovation tokens, intellectual capital, or whatever, what you'll find when you come to try to use it is that you don't have it. Sort of like if you try to save up your upper body strength for a couple of years before you try to climb El Capitan. But I am just saying that is a poor example.
It's fun to dive in and "modernize all the things" - and certainly you can learn a lot in the process (perhaps at the expense of the business).
I don't believe that the only reasonable alternative to that is to "choose boring tech" though. Like so many things in life, it's very contextual, and this is where you need someone with a lot of background and war wounds who can discern valuable improvements from yet-another-CADT-library-rewrite. Sometimes they're hard to differentiate from an old crusty cynic though.
I'm resistant to either pole - I think there's often a 'middle way', where you can leverage proven, high-quality software (think PostgreSQL) while still benefiting from modern approaches (pragmatic functional idioms, etc). I'm old enough to remember when the industry was generally more entrenched in ossified approaches - it definitely has its downsides too!
The hard part is when a (supposedly) proven technology turns out to be a turd. Much of the job of choosing good tech appears to be using heuristics to avoid low quality tech with good marketing. I'd love to have better tools to guide that problem!
I'm only part way through the presentation, but I loved this line.
"And when people succumb to this instinct they tell themselves that they’re giving developers freedom. And sure, it is freedom, but it's a very narrow definition of what freedom is."
Yup. You get the freedom to choose a language and/or database with unknowns but you lose the freedom to leave work at a reasonable hour to see your family, pursue a hobby, or just veg out. Experimenting with new (to your organization) languages and infrastructure pieces is something you do between projects, not during.
It reminds me of something a jazz musician said in an interview, "The audience doesn't pay to see you rehearse. Rehearsal is done on your own time away from audiences." Rehearsals are where you try new techniques, harmonies, instruments, etc.
1. Place every new & cool technology into mental quarantine for 3-5 years.
2. If, after that:
a) the tech is still widely used, and doesn't seem to be getting overtaken by something else
b) you're about to start a NEW project where the tech would help
c) you're not in a rush and feel like trying something new
...then go for it.
Learning complex tech that just arrived is a waste of your life, if you want to accomplish things. It's only useful if your aim is to appear knowledgeable and "in the loop" to your developer peers.
You know, it's the same as with financial advice. Good financial advice is good.... except if absolutely everyone applies it, then it becomes a disaster. Fortunately, there's no risk of that happening.
Same here. No matter what you do, leave others to try the cool new stuff & get burned by it & work to fix it (when/if possible). Stay informed, but don't be an early-adopter. It's sound advice - though it wouldn't be if everyone applied it. Fortunately, there's no risk of that happening.
I spoke once with a Microsoft consultant, he was advising us on upgrading strategy, as our customer had a mandate to be at least on version N-1, that is the customer must be on the latest major version or the version before, so at the time we were migrating off Windows 2003 as Windows 2012 was going through internal validation.
He mentioned that on a bank he'd been advising, the mandate was the opposite, namely at most they could be on N-1 and were in the exact same position as we were, except that they were migrating to Windows 2008 and we to Windows 2012 as the N-1 mandate in practice meant that we'd upgrade services every other release, except when there was a waiver, which was often and explained why when I left in late 2012 we still had some Windows 2000 boxes.
As a techie, it was always a pain going back to an old box as you'd try to do something and realise that it was not possible as that feature had only been introduced in later versions. Even worse, was when it was possible but extremely convoluted and error prone.
It's interesting how everybody thinks that it's career suicide to support old stuff when it actual fact most people are hired for a mixture of their knowledge and their capacity to learn. I appreciate that it's lower risk to hire somebody with experience on the exact product but would you rather have an extremely good engineer with no experience in your stack or a good one with experience in your stack?
I'll contradict everyone here: You figure it out on a case-by-case basis.
Generally, risks go down over time and with broad use. SQL, as a technology, is 100% risk-free, having been around forever, and widely used. COBOL is high risk, since while it's been around forever, hardly anyone uses it anymore, at least on modern projects. Moving your Cobol app to Android is fraught with unknown-unknown risk. Something that's been around 2-3 years is generally much lower risk than something which came out last year, and a good 10 years drives risks down further most of the time, but not always. It depend on whether people seem happy with it. Mongo seemed like a really good idea first few years, until people figured out (1) it had wonky performance issues (2) it was really hard to query for some type of queries (3) and what was the problem with postgresql again (it seems to do JSON pretty well too!)? Things change too. Java was the bedrock, stable, safe choice. It wasn't the fastest to code in, it was a bit clunky, but it was THE safe choice, and enterprises flocked to it. That is until Sun died, Oracle happened, and litigation+monetization kicked up to try to treat Java as a cash cow.
The flip side is why would you use it? When I was building an app a while back, I chose React although React Native had just come out at that point. It let me build the app once, and run on web, Android, and iOS, instead of 3 times. I figured cost savings of building and maintaining one codebase outweighed the risks. On the other hand, in most cases, the upsides of switching away from Python -- now three decades old -- are usually negligible, so with the exception of a specific need (run-anywhere, above), I almost never pick something different.
And the final piece is code complexity, abstraction, and modularity. I don't feel bad adapting new numerical algorithms. It's usually a few hundred lines of self-contained code. If a better algorithms comes out, I might swap it out anyways. On the other hand, a programming language or framework is a lifetime commitment.
You work through all the risks and upsides, figuring maintenance is 90% of the cost, and you sometimes end up around the rules-of-thumb everyone gave. But not always.
Trick is to learn probability. It give a good mental framework for estimating expected costs and benefits. You don't usually do this explicitly with equations (what's the probability-Oracle-screws-us times costs-of-Oracle-screwing-us versus cost of upgrading to Python?), but it gives a language to think about risks.
It is a tool that can be used masterfully or utterly abused.
Every craftsman has to invest in their tools. And for someone to truly master their craft they must sometimes hone their tool skills speculatively, without short-term gain, and by sacrificing the time and attention used for other things, like actual projects.
If everyone just obeyed their project manager and always focused 100% on the problem at hand, we would be producing sad, boring things. If you want to see what that's like look at enterprise applications.
For me, change happens when I see a real improvement in almost every way possible which is usually determined by building a few things and letting my brain simmer on the technology as a whole so I can look at it with a logical and unbiased perspective.
I remember looking at Node when it first came out and got mildly excited, but that excitement quickly went away after writing a couple of small apps with it. It just wasn't for me. The same thing happened with Go. I didn't see enough wins to switch over to using either of them for building web apps.
On the other hand, for me Rails and Flask stood the test of time. Nowadays I'm working with Phoenix and I'm past the hype phase and it looks to be another winner. But in all 3 cases (Rails, Flask, Phoenix) I typically don't switch away from them for good. They just become another tool that I know. Of course I will gravitate towards the one I'm the most happy writing code with, but it's not a black / white progression from 1 to the other.
I don't think there's really a definitive answer on when to change. Like 3 weeks ago I picked up a Flask contract and it was a pleasant experience, even though I'm using Phoenix to build a side project currently. You don't always need to throw the old thing out. You can use multiple technologies in harmony. You change when you start dreading writing code in the old thing, which is very user specific. In other words, write more code and you'll quickly find out what you like and dislike.
For me, implementing something that provides value with near-zero maintenance for years is the ultimate sign that I've done well.
Such a good point it's worth repeating. We have a bunch of small tools of which the code might not exactly be brilliant or adhering all possible good practices, but after 10+ years they still just work without any unsurprising behavior nor bugs and still also just build/deploy with a click of the button so to speak. That's just nice.
Does make me wonder sometimes what exactly all other knowledge I gathered since then is good for. Some of it is definitely wasted on shiny stuff. But most of it is software architecture and with repect to the subject I'd translate that as 'how do I make this large scale application a combination of all those small and nice tools, and make that combination itself also work as those small nice tools'.
But:
- good luck finding a Clojure programmer if your current one quits.
- good luck finding answers for your exotic bug/performance issue
etc.
Code is a liability, it's much more than language/VM/compiler features
Generally, "shiny-things" have some sort of appeal over the "boring" technology, or nobody would choose them at all.
One of the places I'd say they are appropriate are in places where you have some problem where some "shiny-thing" stands head and shoulders above the "boring technology" in some particular and you can ram home those advantages well enough to overcome the other issues. For instance, if you've got a server where you're going to have several thousand clients opening a socket connection and babbling away at each other in some custom manner, starting with Erlang/Elixir is quite possibly a very good idea, because none of the "boring" tech is anywhere near as good at that, even today.
But I do agree that when doing the cost/benefit analyses of these choices, far too many developers plop an unprofessional amount of weight on the "benefit" side that amounts to "it's fun to play with the pretty-shiny". (I'm still recovering from some old "NoSQL" decisions made in a context where a relational database would have been more than adequate, at most backed by something that even at the time was tested like memcached, instead of a combination of what are now completely defunct and semi-defunct databases.)
I literally had this conversation yesterday as a "why I'm not sure web development is for me, long-term."
The level of familiarity that can be achieved with a tool in the timeframe allotted before the "oh no, we're behind-the-times!" fervor strikes just doesn't seem sufficient to me. I'll have co-workers coming to me with the tool-specific roadblocks they're hitting, and have reached the point where I can easily say "yeah, I've been there, you'd never guess but the problem is with [X], just do [Y]." And just as I'm getting really efficient, I've got to throw it all out because that tool isn't cool anymore, and nobody wants to work with not-cool tools, and we've all got our resumes to worry about.
I wonder if there are some cultural changes that could help mitigate this. If there really is an endorphin rush when working with a fancy new tool, why is that there and what can we do to replace that? Is it resume-building, is it enjoyment of that stage of knowing-nothing, is it happiness when you easily do that one thing that was annoying the shit out of you with the old tool?
Can you pick apart why you were excited about and wanted to adopt Go?
I would go for it, but just the fact that you're asking shows that you're less susceptible to injecting needless technology. Typescript has also been used for years, and it has a place as Javascript is used for more complex products than it was intended.
I wrote a short bit in "Handling Hype" here arguing that you need to dig into your problem, assess claims, and weigh tradeoffs:
I would like to throw my 2 cents in that some of these advances around "new" ways do lead to some good things. The focus on service discovery is something that is incredibly helpful even for older technologies.
Consul is something you can add to even a very old application and give it modern scaling features, simply because it has a plain old DNS interface.
Redis is similar for caching, it's advanced, the interface is so simple to use, and it's so easy to deploy and manage.
On the flip side, I'd like to add that I worked for a startup and we chose a lot of boring technologies because we had a job to get done, and they all just worked. :)
I’d say talk about it with the team, see there’s enough buy in from the existing team and enough awareness of the extra stuff to learn for both current and future team members. Then try it incrementally on some of the most hairy or type bug ridden parts of the codebase (so you can quickly prove utility) or on some smaller / newer parts of the code (so you can quickly prove compatibility). Then a wider rollout should build up its own momentum if it’s anywhere as helpful as you’re hoping it’s going to be.
So much this! I mean the author also worked for 7 years at Etsy which did ship quite a lot of new things (bad and good).
For me this is similar to telling a 20 year old, dont go out, stay home, watch tv you will less likely get injured.
A wonderful thing about TypeScript is that if you decide you don't like it or need it, you still have recognizable and refactorable JavaScript. On the other hand, if you have a ton of relational data and get excited about the latest nosql DB, you're going to have a hell of a time unravelling that mess.
It would be something that you are adding to the stack. Yes, you are intending to replace something, but in practice there will still be legacy nodejs hanging around.
If you are spending time (and therefore money) changing from one language to another, you are not making features for the business. Yes, you might get more speed re-implementing features, but its almost never going to make up for the hit you took in porting everything.
At the end of his shpeel he talks about how to adopt new technologies intelligently. He's not saying that no one ever should but that you need to go about it a certain way to reduce risk.
Not sure I agree with this perspective. Many of these companies are started by engineers or product managers who have seen the boring solutions not work for them. In some cases they either see it not work many times or see a future where other organizations get to that point and need a better solution. In digging into what these companies do it becomes clear that they aren't doing it just to push new tech, but maybe I'm the one who hasn't seen enough.
You mention k8s and related stuff isn't always the answer. Seems you think it's somewhat valuable? I'd like to hear what sort of tech you think is creating a bubble by being so useless! Certainly k8s can't be it, because for large companies the automation abilities of such a system are quite clear. Does it intro new problems, of course, and if they aren't well solved yet you'll have to think hard about the benefits of adopting The New Way, but to call this a bubble is hard to accept.
The problem is that those people who chose shiny new technology only see the benefit, while all the others in the company will rot in hell because of the stupid choice of a junior engineer (who jumped ships 3 times meanwhile). I don't see how does that benefit the company? The whole point of the article is that you should make wise technology decisions which benefits the whole organization.
Surely what you state here can be said of any advice given due to experience. As long as the natural inclinations of younger developers push up against said advice, it's completely sane to give it. Because without it, young developers will have an incomplete mental model, and will lack the intellectual tools to potentially make better choices early in their career.
Also it seems to miss the point somewhat: choosing 'boring' technology has little to do with working on things that are unfulfilling. On the contrary, when tech stack choices are the thing from which developers derive their excitement from, in my view, it's often "empty calories" masking the lack of "emotional nutrition" they are getting from the problem they are solving or the users they are serving. For every whiz-bang neural network getting users to click on ads, there's a 'boring' embedded system running on an ancient C framework somewhere putting satellites in space. I'd rather work on the latter any day of the week.
As Hamming said, "if you're not working on the most important problem in your field, why not?"
No, your mandate is to advance your career, not solve problems. If you’re rewarded for resume padding more than problem solving then keep resume padding.
The code that I've shipped that, 10 years later still runs at previous organizations with no support needed is really something I'm very proud of when I look back.
At once point we actually wrote an AJAX site that worked in IE6, Firefox and Safari (pre-Chrome), before Prototype, jQuery or JSON was even a thing...and it still worked perfectly 10 years later. All hand coded JS and backend PHP + Java.
It's one of the reasons that I get kinda shocked when I see people look at code on Github and then avoid it because it hasn't had a recent commit. It's also of the big reasons that I'm a fan of Elixir, because the language is approaching a point where it's creators consider it "complete". Boring and stable is the goal.
You can argue there has been a lot of progress in web development since 2000, and you can argue it hasn't. I think we did a lot of circles around ourselves, creating new frameworks that do the same stuff as the ones before them. The real progress was in browsers and CSS which allowed things like access to device cameras/inputs, rtc technologies and adaptible layouts.
Isn't it a bit silly to presuppose that what we have now is the best we are ever going to get. I mean, files were state of the art at one point, but i don't think anyone will suggest we go back to punchcards.
"Boring Technology" is the wrong thing to aim for. Aim for simplicity.
I'm always amazed at the lifespan of some of the code I've written over the years. I wrote an api that we use internally in 1996 that is still being used in all of our new production code in that language in our organization. I've learned a lot in the intervening 23 years so looking at some of that code can be a bit jarring. We've had to adapt it a bit when our environment changed a few times, and we've certainly added to it, but I don't think the core code has had any problems that I know of this century. Millennium, I guess, technically.
Part of me really wants to rewrite it, but it doesn't make sense from a developer-time perspective (and I don't want to spend the time tracking down the inevitable bugs again).
Editorial Channel
What the content says
+0.40
Article 23Work & Equal Pay
Low Advocacy
Editorial
+0.40
SETL
+0.28
The essay fundamentally advocates for better working conditions and against worker exploitation through improved organizational practices. The essay frames technology decisions as having direct impact on developer welfare, criticizing systems that bind workers perpetually to maintenance burden. The core argument is that choices should prioritize reducing unnecessary operational toil on workers.
FW Ratio: 57%
Observable Facts
The essay uses the metaphor 'ball of chain and padlocks' to describe the burden developers inherit when they must maintain complex technology systems indefinitely
The author explicitly states that technology choices create 'costs you take on... indefinitely into the future' that workers must bear
The essay advocates that decisions should be made to minimize 'operational toil' on developers, framing this as a core organizational responsibility
The author argues that shared infrastructure benefits all workers by distributing maintenance burden, preventing individual teams from being stranded with legacy technology
Inferences
The focus on reducing unnecessary burden and toil on workers directly relates to rights to favorable working conditions
The critique of systems that perpetually bind workers to maintenance work reflects concerns about labor exploitation and worker autonomy
The advocacy for shared, well-understood technology infrastructure as a worker welfare measure aligns with rights to dignified work
+0.30
Article 20Assembly & Association
Low Advocacy
Editorial
+0.30
SETL
+0.24
The essay strongly advocates for making technology decisions a collective conversation rather than individual choice. The author explicitly states that technology governance requires bringing people together to discuss and decide, directly supporting rights of association and collective decision-making.
FW Ratio: 50%
Observable Facts
The essay states: 'You have to figure out a way to make adding technology a conversation'
The author criticizes approaches that grant individual developers unilateral authority over infrastructure decisions
The essay emphasizes the necessity of organizational conversation: 'Technology has global effects on your company, it isn't something that should be left to individual engineers'
Inferences
The advocacy for conversation and collective decision-making reflects values of association and collective rights
The critique of individual dominance in governance aligns with rights to participate in decisions affecting all
However, the site's lack of interactive features means it advocates for but does not structurally enable the associations it promotes
+0.20
PreamblePreamble
Low Advocacy
Editorial
+0.20
SETL
+0.14
The essay implicitly advocates for organizational structures grounded in dignity, freedom, and justice through its criticism of systems that exploit worker labor and its emphasis on inclusive decision-making. Values of human dignity are present in the rejection of binding developers indefinitely to operational burden.
FW Ratio: 50%
Observable Facts
The essay criticizes systems that bind developers to 'operational toil' without their input in decision-making
The author advocates for making technology decisions through inclusive conversation rather than individual choice
The page provides a link to a Chinese translation of the essay, indicating commitment to multilingual access
Inferences
The critique of binding workers perpetually to burden aligns with principles of human dignity and freedom from exploitation
The emphasis on inclusive conversation reflects a commitment to collective welfare and equal voice
The translation availability suggests alignment with Preamble's commitment to universal rights across cultures
+0.20
Article 19Freedom of Expression
Low Advocacy
Editorial
+0.20
SETL
0.00
The content itself is an exercise of free expression and opinion. The author openly shares critical analysis of technology practices and personal experience. The essay advocates for open discourse and transparent conversation about organizational decision-making.
FW Ratio: 50%
Observable Facts
The essay is presented as a 'spoken word version' of a personal essay, indicating original creative expression
The author presents personal opinions and experiences openly, including self-critical reflection on past mistakes
A link to a Chinese translation is provided on the page, enabling the essay to reach international audiences
Inferences
The public sharing of critical opinions about technology practices demonstrates exercise of free expression rights
The author's willingness to publish personal criticism and admit past errors suggests a culture valuing open discourse
The provision of multilingual translation indicates commitment to enabling freedom of expression across language boundaries
+0.10
Article 1Freedom, Equality, Brotherhood
Low Advocacy
Editorial
+0.10
SETL
0.00
The essay advocates that all people (developers, teams, organizations) deserve equal voice in technology decisions affecting their work, implicitly supporting the principle of equal dignity in organizational governance.
FW Ratio: 60%
Observable Facts
The essay states: 'Technology has global effects on your company, it isn't something that should be left to individual engineers'
The author emphasizes that technology decisions require input from multiple stakeholder roles, not just technical specialists
The essay argues that individual-centric freedom in technology choices harms collective welfare
Inferences
The insistence on inclusive voice in organizational decisions reflects belief in equal human dignity and worth
The critique of individual dominance in technology governance suggests commitment to equality in organizational power
ND
Article 2Non-Discrimination
Not engaged
ND
Article 3Life, Liberty, Security
Not engaged
ND
Article 4No Slavery
Not engaged
ND
Article 5No Torture
Not engaged
ND
Article 6Legal Personhood
Not engaged
ND
Article 7Equality Before Law
Not engaged
ND
Article 8Right to Remedy
Not engaged
ND
Article 9No Arbitrary Detention
Not engaged
ND
Article 10Fair Hearing
Not engaged
ND
Article 11Presumption of Innocence
Not engaged
ND
Article 12Privacy
Not engaged
ND
Article 13Freedom of Movement
Not engaged
ND
Article 14Asylum
Not engaged
ND
Article 15Nationality
Not engaged
ND
Article 16Marriage & Family
Not engaged
ND
Article 17Property
Not engaged
ND
Article 18Freedom of Thought
Not engaged
ND
Article 21Political Participation
Not engaged
ND
Article 22Social Security
Not engaged
ND
Article 24Rest & Leisure
Not engaged
ND
Article 25Standard of Living
Not engaged
ND
Article 26Education
Not engaged
ND
Article 27Cultural Participation
Not engaged
ND
Article 28Social & International Order
Not engaged
ND
Article 29Duties to Community
Not engaged
ND
Article 30No Destruction of Rights
Not engaged
Structural Channel
What the site does
+0.20
Article 19Freedom of Expression
Low Advocacy
Structural
+0.20
Context Modifier
ND
SETL
0.00
Open access without gatekeeping or censorship; multilingual translation availability demonstrates structural commitment to enabling diverse expression across language barriers.
+0.20
Article 23Work & Equal Pay
Low Advocacy
Structural
+0.20
Context Modifier
ND
SETL
+0.28
The site provides free, accessible knowledge resources that empower readers to understand and advocate for better work conditions. However, the site does not directly engage with labor rights infrastructure, unions, or formal worker protections.
+0.10
PreamblePreamble
Low Advocacy
Structural
+0.10
Context Modifier
ND
SETL
+0.14
Open access model and transparent authorship support Preamble values, though limited explicit accessibility features and lack of engagement infrastructure reduce structural alignment.
+0.10
Article 1Freedom, Equality, Brotherhood
Low Advocacy
Structural
+0.10
Context Modifier
ND
SETL
0.00
The site presents content without apparent discrimination based on user characteristics; however, default English presentation with opt-in translation could exclude non-English readers.
+0.10
Article 20Assembly & Association
Low Advocacy
Structural
+0.10
Context Modifier
ND
SETL
+0.24
The site itself is a one-way publication; it does not structurally enable reader assembly, association, or collective conversation (no comments, forums, or community features visible).
ND
Article 2Non-Discrimination
Not engaged
ND
Article 3Life, Liberty, Security
Not engaged
ND
Article 4No Slavery
Not engaged
ND
Article 5No Torture
Not engaged
ND
Article 6Legal Personhood
Not engaged
ND
Article 7Equality Before Law
Not engaged
ND
Article 8Right to Remedy
Not engaged
ND
Article 9No Arbitrary Detention
Not engaged
ND
Article 10Fair Hearing
Not engaged
ND
Article 11Presumption of Innocence
Not engaged
ND
Article 12Privacy
Not engaged
ND
Article 13Freedom of Movement
Not engaged
ND
Article 14Asylum
Not engaged
ND
Article 15Nationality
Not engaged
ND
Article 16Marriage & Family
Not engaged
ND
Article 17Property
Not engaged
ND
Article 18Freedom of Thought
Not engaged
ND
Article 21Political Participation
Not engaged
ND
Article 22Social Security
Not engaged
ND
Article 24Rest & Leisure
Not engaged
ND
Article 25Standard of Living
Not engaged
ND
Article 26Education
Not engaged
ND
Article 27Cultural Participation
Not engaged
ND
Article 28Social & International Order
Not engaged
ND
Article 29Duties to Community
Not engaged
ND
Article 30No Destruction of Rights
Not engaged
Supplementary Signals
How this content communicates, beyond directional lean. Learn more
build 73de264+3rh4 · deployed 2026-02-28 13:33 UTC · evaluated 2026-02-28 13:36:03 UTC
Support HN HRCB
Each evaluation uses real API credits. HN HRCB runs on donations — no ads, no paywalls.
If you find it useful, please consider helping keep it running.