frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Ten Years of JSON Web Token (JWT) and Preparing for the Future

https://self-issued.info/?p=2708
29•mooreds•1h ago•1 comments

Open Source Society University – Path to a free self-taught education in CS

https://github.com/ossu/computer-science
162•saikatsg•7h ago•73 comments

Plwm – An X11 window manager written in Prolog

https://github.com/Seeker04/plwm
135•jedeusus•6h ago•27 comments

Lottie is an open format for animated vector graphics

https://lottie.github.io/
241•marcodiego•9h ago•104 comments

Ask HN: What are you working on? (May 2025)

99•david927•4h ago•315 comments

Writing your own CUPS printer driver in 100 lines of Python (2018)

https://behind.pretix.eu/2018/01/20/cups-driver/
135•todsacerdoti•8h ago•14 comments

Chomsky on what ChatGPT is good for (2023)

https://chomsky.info/20230503-2/
104•mef•7h ago•132 comments

Claude 4 System Card

https://simonwillison.net/2025/May/25/claude-4-system-card/
529•pvg•18h ago•209 comments

Lisping at JPL (2002)

https://flownet.com/gat/jpl-lisp.html
99•adityaathalye•3d ago•23 comments

Advice to Tenstorrent

https://github.com/geohot/tt-tiny
15•lexoj•2h ago•11 comments

Koog, a Kotlin-based framework to build and run Al agents in idiomatic Kotlin

https://github.com/JetBrains/koog
40•prof18•3d ago•3 comments

Show HN: Zli – A Batteries-Included CLI Framework for Zig

https://github.com/xcaeser/zli
60•caeser•7h ago•24 comments

Design Pressure: The Invisible Hand That Shapes Your Code

https://hynek.me/talks/design-pressure/
130•NeutralForest•10h ago•37 comments

Show HN: DaedalOS – Desktop Environment in the Browser

https://github.com/DustinBrett/daedalOS
112•DustinBrett•8h ago•24 comments

Writing a Self-Mutating x86_64 C Program (2013)

https://ephemeral.cx/2013/12/writing-a-self-mutating-x86_64-c-program/
65•kepler471•7h ago•20 comments

CAPTCHAs are over (in ticketing)

https://behind.pretix.eu/2025/05/23/captchas-are-over/
104•pabs3•23h ago•131 comments

Denmark to raise retirement age to 70

https://www.telegraph.co.uk/world-news/2025/05/23/denmark-raise-retirement-age-70/
256•wslh•7h ago•632 comments

We broke down the Sam Altman and Jony Ive video

https://sfstandard.com/2025/05/23/sam-altman-jony-ive-video/
35•herbertl•1h ago•15 comments

Trading with Claude (and writing your own MCP server)

https://dangelov.com/blog/trading-with-claude/
22•dangelov•3d ago•6 comments

Martin (YC S23) Is Hiring Founding AI/Product Engineers to Build a Better Siri

https://www.ycombinator.com/companies/martin/jobs
1•darweenist•7h ago

Tariffs in American History

https://imprimis.hillsdale.edu/tariffs-in-american-history/
77•smitty1e•1d ago•110 comments

Wrench Attacks: Physical attacks targeting cryptocurrency users (2024) [pdf]

https://drops.dagstuhl.de/storage/00lipics/lipics-vol316-aft2024/LIPIcs.AFT.2024.24/LIPIcs.AFT.2024.24.pdf
89•pulisse•12h ago•68 comments

Fanaka – a handbook for African success in the international software industry

https://fanaka.readthedocs.io
13•DanieleProcida•2d ago•1 comments

'Strange metals' point to a whole new way to understand electricity

https://www.science.org/content/article/strange-metals-point-whole-new-way-understand-electricity
97•pseudolus•10h ago•29 comments

Is TfL losing the battle against heat on the Victoria line?

https://www.swlondoner.co.uk/news/16052025-is-tfl-losing-the-battle-against-heat-on-the-victoria-line
70•zeristor•15h ago•118 comments

Dependency injection frameworks add confusion

http://rednafi.com/go/di_frameworks_bleh/
101•ingve•16h ago•116 comments

On File Formats

https://solhsa.com/oldernews2025.html#ON-FILE-FORMATS
110•ibobev•4d ago•70 comments

Can a corporation be pardoned?

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5202339
44•megamike•7h ago•77 comments

Show HN: SVG Animation Software

https://expressive.app/expressive-animator/
165•msarca•12h ago•79 comments

Now you can watch the Internet Archive preserve documents in real time

https://www.theverge.com/news/672682/internet-archive-microfiche-lo-fi-beats-channel
112•LorenDB•2d ago•10 comments
Open in hackernews

Beware the Complexity Merchants

https://chrlschn.dev/blog/2025/05/beware-the-complexity-merchants/
35•kiyanwang•4h ago

Comments

stego-tech•4h ago
This isn't just applicable to code or development; there's a huge B2B marketplace built on the idea that the more complex your business is, the more profitable it will be. Hence why every business must be harvesting as much data as possible, analyzing it with different tools, across different platforms, different storage methods, different transformation and retrieval tooling, different vendors and formats and product suites and integrations.

It drives leadership nuts, but I find asking the "why" or "what problem does this solve" questions helps the organization remain focused on what actually delivers value versus what's just hype we can ignore or throw away.

jmugan•4h ago
I think about this from the angle of administrative burden. Sure, the tax code might be better if you make a tweak for zucchini farmers, but now you have to ask every taxpayer whether they have engaged in that activity.
userbinator•4h ago
I suspect a lot of accidental complexity also comes from those who don't really know what they're doing, so instead of focusing on the result, they take a very roundabout path until they stumble upon a solution. AI and "vibe coding" is going to make that problem much worse.

For an interesting example of the outcome of strongly optimising for essential complexity, look at the demoscene. They have done some amazing things that were thought to be impossible.

patapong•4h ago
Interesting. I also think a lot of complexity stems from developers preferring building systems over building products. It is much more satisfying to build somehting that can address many use-cases, even if we are only working on a single use-case. But, this also introduces the cost of complexity as the user/downstream developer is pushed into making the choice of which of the many available paths they want to take.

See the eternal urge of gamedevs to build engines instead of building the game.

brookst•3h ago
Yep — and it’s hard to argue against. Option value is valuable. Is it worth spending 20% more and de-optimizing for the core use case to support unknown future use cases? I’m not sure there’s a general purpose answer.

And if you do stick to purpose-specific design and management asks for a seemingly minor expansion of scope, the “this is a small change, why did we make the system so rigid that it’s expensive to update?” is an uncomfortable conversation.

pan69•3h ago
Experienced developers understand the start-up cost associated with building a software product. So, when developers think ahead and architect and design their software for a possible future roadmap and that roadmap doesn't eventuate, they have introduced accidental complexity and they are considered idiots.
eddythompson80•4h ago
I agree with the general sentiment. The article is vague on the specifics as to what counts as "added complexity" though, which I found to be the central issue.

Everyone loves a bit of abstraction that encapsulates a given complexity and make it a single simple concept. This is not: "a complex bit of technology that has pros and cons and will lock you in a particular architecture and vendor and would almost always necessitate 2 architectures because not all tasks/scenarios would be suitable for it". It is a "Lambda". So simple. Just a `handle(event) {}`, how much simpler can this be? No complex runtimes, VMs, environments, etc. It's just a `handle(event) {}` no complexity to see here. good luck.

On the other hand, sometimes people who "champion" simplicity are also the same people who don't care about the engineering part of it. The "Hey, I added a full text search. It's implemented as a:

    select * 
    from posts 
    where column1::text like $1
          or column2::text like $1
          ...
          or columnN::text like $1
Lets push it. Oh out database CPU is burning, search is so slow. What a surprise this is. I guess it validates the popularity of search. Can we optimize it? Maybe we cache the result? Maybe we add an LLM to normalize queries so we can cache results more effectively? I'm trying to keep things simple"

There is also the requirement or ask that is trying to hide a particular complexity from one side by shoving it all under a rug somewhere. Once the complexity has been sufficiently shoved under the rug, we can think of the rug as just a rug. We can move it around and use it like a rug. Surely the shit underneath will never have any impact on anyone any time.

aleksiy123•3h ago
I feel like all these articles have this issues.

The hard part is in knowing which is which and I don't think anyone real has a tried and true solution for it.

I think because its really about correctly predicting the future in a n continually evolving environment.

Those "simple" solutions can be piled on top of each other turn into an absolute monstrosity over time.

And then engineered solution can be overengineered and overly complex when it turns out the problems it solves never ended up happening.

On top of that people don't even think of simplicity in the same way. One person's simple is another's overly complex.

What seems to work for me is try give yourself outs/alternative paths.

Hedge your bets by overengineering slightly on where you think there is more risk. And keep it simple where there is less risk. Then reevaluate.

ashayh•3h ago
Complexity is also about empire building and job security.

If every dev took the path of least resistance, and did the easiest thing that did its task, we would lose 80% of all tech jobs. This would only funnel more money to billionaires and share holders instead of the employees. Why would we want that.

kevmo314•3h ago
This is an underrated reason why startups can be successful. Many large and even mid-sized companies' employees are encumbered in complexity indirectly because they need to engineer something to justify their jobs. I think a lot of devops is basically this sort of persona because if devops really did their jobs correctly, we shouldn't see so many devops jobs.
bob1029•3h ago
> While accidental complexity can arise innocently enough from well-intentioned engineers, the darker side is that it can manifest from ego and self-preservation.

I am seeing a huge uptick in this style of "accidental" complexity.

I recently had the pleasure of observing a perfectly functional T-SQL script be refactored to use entity framework, resulting in a ~50x decrease in throughput.

Ignorance is something I am willing to entertain. Arrogance is way, way more difficult to deal with. One is an educational opportunity. The other is game of thrones.

mrkeen•3h ago
With 0 examples, this isn't even a thinkpiece, it's a feelpiece.

Let's pat ourselves on the back. Their code is exciting and ego-driven. Our code is boring and adds value. They think they are facebook; we do not. Their complexity is accidental. Our complexity is essential. Their engineers should stop adding features until their codebase is like ours.

mrbungie•2h ago
It is a feelpiece, but I don't think that's necessarily a bad thing, at least it invites discussion.

Also, framing it as "us vs them" misses the point. For instance, in my world (Data & Analytics), there's no universe where Spark makes sense for <1TB data or using Kafka for what could be solved using with more simple and predictable batch processing, yet we still see them used in wild implementations that clearly don't need that scale. Those implementations can end up needing a lot of headcount and budget for support without adding any value whatsoever and sometimes even ending up in a more brittle platform. Complexity often comes from misguided choices, not just ego.

I've seen enormous data teams at startups, by that I mean bigger than WhatsApp engineering team in its prime pre-Meta (~30 people). That's a red flag, especially when they're processing far less data.

moritzwarhier•1h ago
Inviting discussion through underspecified warnings or appeal to feelings of superiority, safety/caution or "best practices" is a very pervasive issue in software.

I admit I did not read the article. But I have done so before I guess, I remember the headline.

The headline is enough to provoke thought. See

https://world.hey.com/dhh/merchants-of-complexity-4851301b

And after clicking, I see, this article is very recent. Strange...

mrbungie•1h ago
I'm not sure what to tell you, dismissing the article as posturing or superiority, without reading it, is at the very least ironic.

That being said, I'd just add (and perhaps the article fails to acknowledge this, maybe contributing to the perceived tone of superiority) that no one is completely safe from falling into these traps. We're more human than engineer, after all. It's easy to slip into complexity, for all sorts of reasons: ego, incentives, time pressure, misguided intellectual curiosity, or simply chasing what's familiar, even when familiar isn't the right fit for the context.

In my context, one funny pattern always shows up. I think of it as a data-related 'rite of passage': junior data engineers and data scientists often dismiss SQL as an old language, assuming it can be easily replaced by something shinier. But over time, they hit a wall: they can't match the speed, performance, or clarity of more experienced peers. Eventually, they come back to SQL and recognize its strengths (especially when paired with an imperative language for tasks like ML, plotting, or report generation). I was that junior once too, stubbornly trying to do everything in Python, only to learn the hard way that joins in pandas are not only slower but also far more painful to write than in good old SQL. It turns out that writing code which outperforms a mature SQL engine is extremely difficult, and realizing that takes a bit of humility and experience (which younger engineers usually haven't developed yet, and honestly, it's not expected from them either).

moritzwarhier•54m ago
I have read (tbh, more skimmed, but this is because it's late here) the article by now.

It's a general discussion and very Yin/Yang like (or dialectical, I'm not 100% sure if these are appropriate terms).

Second the comment by mrkeen.

With concrete examples, this could be more interesting.

And I poorly introduced the thought I wanted to communicate.

The "appeal to feelings of superiority" that I mentioned were mangled, I started to also think about said "merchants of complexity" and software design "evangelism" in general.

And I didn't read the post initially because the writing, structure etc combined with the vague familiarity of the title threw me off.

Especially starting with a bulleted list, ending with a summary, and still: me not seeing any interesting example at first glance.

Though only the top comment in this chain reminded me of the importance of examples / real-world anecdotes.

mrbungie•44m ago
Yep, I share the sentiment about missing examples.

The whole overengineering problem does have a yin/yang quality to it, especially around themes like designing "for the future or for scale" (generalization) vs YAGNI/"premature optimization is the root of all evil", and engineering is, after all, largely about calibration. But it's not just abstract philosophy. There are plenty of concrete signals and they tend to appear in cycles, which suggests the industry collectively relearns how to navigate complexity over time: the rise of DuckDB and Iceberg over Spark or Hive, the cycle of people embracing MongoDB then returning to PostgreSQL, and even companies moving workloads off the cloud and back to colocated metal after complexity hit them hard, both in direct costs and in hidden ones like engineering headcount. These aren't just trends, they’re signs that overengineering is a concrete problem with real-world, objective consequences, and not merely a matter of opinion.

moritzwarhier•25m ago
True, but what comes out of it?

That's why I shared the link to DHH's post: his post appeared as part of others by him and the decisions about how and if the Rails community should concern themselves with JavaScript.

Hey also pitched to HN initially with their technical approach (simplicity!).

So for that reason the post felt derivative to me.

It's still cool to reflect on all these longstanding general SE tradeoffs and truisms.

mrbungie•14m ago
> True, but what comes out of it?

Well, obviously, navigating complexity in the middle of a tech cycle is hard, and after the storm, anyone can claim to be a captain. I'd say the best we can do is stay conscious of the pattern (and how it affects you and others), engage in architectural discussions with critical thinking (especially around incentives and epistemology, as a concrete example, cloud certifications and consultants are often brought up to muddle this up in infra context), and bring technical humility and empathy into the room. Also, if possible, try to help younger engineers recognize these dynamics earlier.

It's a genuinely hard problem. And sometimes, there isn't much more to do than to engage honestly, because your own perspective can be just as biased or context-blind as anyone else's.

> It's still cool to reflect on all these longstanding general SE tradeoffs and truisms.

Yep, totally. Philosophy is always fun, even when the only universal truth is that the truth is evasive.

Michelangelo11•3h ago
https://grugbrain.dev/
wcfrobert•3h ago
Past a certain scale, complexity is mostly unavoidable.

Accidental complexity is compressable, but essential complexity is not. At some point, you cannot compress further without losing nuance.

In compiler design, there's a concept called the waterbed theory of complexity which states that you can try to abstract complexity away, but it'll just show up elsewhere.

tikhonj•2h ago
I don't like talking about "complexity" any more because while almost everyone agrees it is "bad", people have radically different ideas of what it means. "Complexity" in software conflates several distinct concepts:

• plain poor design

• complexity in operation rather than design (or technology)

• inescapable real-world complexity

• lots of moving pieces and details, straining working memory

• abstract or novel concepts that are hard to learn up-front, but easy longer-term

Some of these are practically opposites! At the pareto frontier of good design, there is a pretty fundamental trade-off between having more abstract concepts that are harder to learn up-front, and exposing more details that make systems hard to work with on an ongoing basis. People just call both of these "complexity"! These are two concepts that absolutely should not be conflated.

I've seen lots of other patterns that are misleadingly described as "complex". For example, some of the most effective software I've seen has been situated software[1]; that is, software built for, and largely in a specific social context. Think seemingly messy code that is incestuously coupled to a single person's or team's workflow. This software might actually be perfectly simple in context, but it's going to seem painfully baroque to anybody outside that context.

[1]: https://gwern.net/doc/technology/2004-03-30-shirky-situateds...

Given all I've seen, I've come to the conclusion that generic exhortations about "complexity" are actively harmful. If you're going to write a universally applicable rant, just write about how bad design is bad and good design is good! At least that's something that people will disagree with—I've met far more people who insist there is no such thing as "good" or "bad" design than people who insist that complexity is actually better than simplicity.

moritzwarhier•1h ago
> Because that's the other side of this. There are rarely high margins in actually selling someone something that they then own. Much better to rent it to them. They'll own nothing and you'll convince them they should be happy.

> By what sorcery? Fear, mostly. Vanity, sometimes. Sloth, occasionally. Pride, definitely. The more insecurities the merchants of complexity can trigger, the easier the sell.

https://world.hey.com/dhh/merchants-of-complexity-4851301b

You can also find blogs and podcasts about this subject, when DHH coined the phrase.

Think about the topic what you will, but the submission looks like a regurgitation to me.

readthenotes1•1h ago
Those sorceries--

https://en.m.wikipedia.org/wiki/Seven_deadly_sins

moritzwarhier•1h ago
All in service of greed. Another one.

Thinking about it: it's interesting bridge to utilitarianism (the other deadly sins enable the greed of the merchant).

And also, the title ironically is itself an overgeneralization and appeal to fear/scrunity (though certainly not generally unjustified)