frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

I left Vercel over dangerous defaults. The same defaults leaked customer secrets

https://joshduffy.dev/how-i-left-vercel/
1•nahsuhn•2m ago•0 comments

CheerpJ 4.3 – Run unmodified Java applications in the browser

https://labs.leaningtech.com/blog/cheerpj-4.3
1•apignotti•2m ago•0 comments

Query Visualize Understand – Grammar of Graphics to SQL

https://ggsql.org/
1•u1hcw9nx•3m ago•0 comments

Lead chromate pigments dominate lead paints sold in Mexico

https://academic.oup.com/annweh/article-abstract/70/3/wxag023/8653344
1•geox•3m ago•0 comments

Show HN: Antenna – RSS reader with a built-in MCP server

https://antennafeed.com/
1•toddllm•4m ago•0 comments

Show HN: FlirtingBots – My AI agent flirts with yours, we meet if it clicks

https://flirtingbots.com/
1•quenzo•4m ago•0 comments

ML-intern: open-source agent for autonomous ML research and training

https://twitter.com/akseljoonas/status/2046543093856412100
1•akseljoonas•4m ago•0 comments

DoD's 2026 National Defense Strategy [pdf]

https://media.defense.gov/2026/Jan/23/2003864773/-1/-1/0/2026-NATIONAL-DEFENSE-STRATEGY.PDF
1•artur_makly•5m ago•0 comments

Context.ai – SoC 2 Type II Report by Delve

https://pastebin.com/QNzrKpFi
2•Topfi•6m ago•0 comments

Gennie: Turns Meeting Discussions into Assigned Tasks with Due Dates

https://heygennie.com/
1•vishal_sahu•7m ago•0 comments

Glyph Protocol for Terminals

https://rapha.land/introducing-glyph-protocol-for-terminals/
1•birdculture•8m ago•0 comments

Compressing LLMs with progressive pruning and multi-objective distillation

https://rig.ai/blog/compressing-a-model-to-run-locally
1•adam_patarino•9m ago•2 comments

The Pagoda Puzzle: What Can Save China's Oldest Wooden Tower?

https://www.sixthtone.com/news/1018411
1•sohkamyung•10m ago•0 comments

LLMs and Your Career

https://notes.eatonphil.com/2026-01-19-llms-and-your-career.html
1•redarguireda•10m ago•0 comments

Newly Digitized Records Reveal How Maori Shared Knowledge of Plants with British

https://www.smithsonianmag.com/history/newly-digitized-records-reveal-how-indigenous-people-share...
1•beatthatflight•11m ago•0 comments

I accidentally created an Orwellian Performance Review bot

http://blog.elzeiny.io/posts/perf-ai/
2•aelzeiny•11m ago•0 comments

The State of Agent Payment Protocols (April 2026)

https://github.com/custena/agent-payment-protocols
2•augrrr•13m ago•0 comments

Philosophize This (podcast) Atlas

https://philthis.eamag.me/
2•eamag•19m ago•0 comments

Show HN: Claude Buddy Pico – Pi Pico 2 W Port of Claude Desktop's Hardware Buddy

https://github.com/amargandhi/claude-buddy-pico
2•AmarGandhi•19m ago•1 comments

Kimi K2.6 Intelligence, Performance and Price Analysis

https://artificialanalysis.ai/models/kimi-k2-6
2•Topfi•20m ago•0 comments

Qt Group Launches Operational Reorganization to Improve Efficiency

https://www.qt.io/releases/release
2•shrimp-chimp•21m ago•1 comments

The abandoned war: Why no one is stopping the genocide in Sudan

https://respublica.media/en/en-sudan-abandoned-war-genocide-no-one-stopping/
3•ResPublica•21m ago•1 comments

Hierarchical Planning with Latent World Models

https://arxiv.org/abs/2604.03208
1•fofoz•21m ago•0 comments

Kei Urana on Manga Piracy

https://xcancel.com/i/status/2046341018837197285
1•latexr•21m ago•1 comments

Show HN: Graph Compose – Temporal workflows with visual builder, SDK, and AI

https://www.graphcompose.io/
1•jalapenobasil•22m ago•1 comments

Police Chiefs Allegedly Faked Robberies in $5k-a-Pop Visa Fraud Scheme

https://www.wsj.com/us-news/louisiana-armed-robberies-visa-fraud-a0f8425e
1•thelastgallon•22m ago•0 comments

Show HN: Orbital – Give Your Agent a Project, Not a Prompt

https://github.com/zqiren/Orbital
1•10keane•24m ago•1 comments

Xkcd 2510 (2021 AD) describes LLM generated code

https://xkcd.com/2510/
4•TZubiri•24m ago•0 comments

How much should you pay for API docs?

https://www.jamdesk.com/blog/the-definitive-api-documentation-pricing-comparison-2026-2
2•spy888•25m ago•0 comments

Apple Thrived in 15 Years Under Tim Cook

https://www.statista.com/chart/25612/apple-share-price-under-tim-cook/
4•salkahfi•25m ago•0 comments
Open in hackernews

Laws of Software Engineering

https://lawsofsoftwareengineering.com
130•milanm081•1h ago

Comments

grahar64•1h ago
Some of these laws are like Gravity, inevitable things you can fight but will always exist e.g. increasing complexity. Some of them are laws that if you break people will yell at you or at least respect you less, e.g. leave it cleaner than when you found it.
stingraycharles•55m ago
Lots of them are also only vaguely related to software engineering, e.g. Peter Principle.

It’s not a great list. The good old c2.com has many more, better ones.

layer8•3m ago
Physical laws vs human laws.
WillAdams•1h ago
Visual list of well-known aphorisms and so forth.

A couple are well-described/covered in books, e.g., Tesler's Law (Conservation of Complexity) is at the core of _A Philosophy of Software Design_ by John Ousterhout

https://www.goodreads.com/en/book/show/39996759-a-philosophy...

(and of course Brook's Law is from _The Mythical Man Month_)

Curious if folks have recommendations for books which are not as well-known which cover these, other than the _Laws of Software Engineering_ book which the site is an advertisement for.....

dataviz1000•56m ago
I did not see Boyd’s Law of Iteration [0]

"In analyzing complexity, fast iteration almost always produces better results than in-depth analysis."

Boyd invented the OODA loop.

[0]https://blog.codinghorror.com/boyds-law-of-iteration/

tmoertel•54m ago
One that is missing is Ousterhout’s rule for decomposing complexity:

    complexity(system) =
        sum(complexity(component) * time_spent_working_in(component)
            for component in system).
The rule suggests that encapsulating complexity (e.g., in stable libraries that you never have to revisit) is equivalent to eliminating that complexity.
stingraycharles•53m ago
That’s not some kind of law, though. And I’m also not sure whether it even makes sense, complexity is not a function of time spent working on something.
tmoertel•27m ago
First, few of the laws on that site are actual laws in the physics or mathematics sense. They are more guiding principles.

> complexity is not a function of time spent working on something.

But the complexity you observe is a function of your exposure to that complexity.

The notion of complexity exists to quantify the degree of struggle required to achieve some end. Ousterhout’s observation is that if you can move complexity into components far away from where you must do your work to achieve your ends, you no longer need to struggle with that complexity, and thus it effectively is not there anymore.

wduquette•6m ago
And in addition, the time you spend making a component work properly is absolutely a function of its complexity. Once you get it right, package it up neatly with a clean interface and a nice box, and leave it alone. Where "getting it right" means getting it to a state where you can "leave it alone".
ozgrakkurt•51m ago
For anyone reading this. Learn software engineering from people that do software engineering. Just read textbooks which are written by people that actually do things
ghm2180•44m ago
Any recommendations? I read designing data intensive applications(DDIA) which was really good. But it is by Martin Klepmann who as I understand is an academic. Reading PEPs is also nice as it allows one to understand the motivations and "Why should I care" about feature X.
ozgrakkurt•41m ago
https://www.amazon.com/Computer-Architecture-Quantitative-Ap...

https://casual-effects.blogspot.com/2014/05/a-computer-scien...

azath92•40m ago
the python cookbook is good. and fluent python is more from principles rather than application (obvs both python specific). I also like philosophy of software design. tiny little book that uses simple example (class that makes a text editor) to talk about complexity, not actually about making a text editor at all.
_dain_•49m ago
I have a lot of issues with this one:

https://lawsofsoftwareengineering.com/laws/premature-optimiz...

It leaves out this part from Knuth:

>The improvement in speed from Example 2 to Example 2a is only about 12%, and many people would pronounce that insignificant. The conventional wisdom shared by many of today’s software engineers calls for ignoring efficiency in the small; but I believe this is simply an overreaction to the abuses they see being practiced by penny-wise- and-pound-foolish programmers, who can’t debug or maintain their “optimized” programs. In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal; and I believe the same viewpoint should prevail in software engineering. Of course I wouldn’t bother making such optimizations on a one-shot job, but when it’s a question of preparing quality programs, I don’t want to restrict myself to tools that deny me such efficiencies.

Knuth thought an easy 12% was worth it, but most people who quote him would scoff at such efforts.

Moreover:

>Knuth’s Optimization Principle captures a fundamental trade-off in software engineering: performance improvements often increase complexity. Applying that trade-off before understanding where performance actually matters leads to unreadable systems.

I suppose there is a fundamental tradeoff somewhere, but that doesn't mean you're actually at the Pareto frontier, or anywhere close to it. In many cases, simpler code is faster, and fast code makes for simpler systems.

For example, you might write a slow program, so you buy a bunch more machines and scale horizontally. Now you have distributed systems problems, cache problems, lots more orchestration complexity. If you'd written it to be fast to begin with, you could have done it all on one box and had a much simpler architecture.

Most times I hear people say the "premature optimization" quote, it's just a thought-terminating cliche.

mojuba•47m ago
> Get it working correctly first, then make it fast, then make it pretty.

Or develop a skill to make it correct, fast and pretty in one or two approaches.

AussieWog93•27m ago
I recently had success with a problem I was having by basically doing the following:

- Write a correct, pretty implementation

- Beat Claude Code with a stick for 20 minutes until it generated a fragile, unmaintainable mess that still happened to produce the same result but in 300ms rather than 2500ms. (In this step, explicitly prompting it to test rather than just philosophising gets you really far)

- Pull across the concepts and timesaves from Claude's mess into the pretty code.

Seriously, these new models are actually really good at reasoning about performance and knowing alternative solutions or libraries that you might have only just discovered yourself.

mojuba•9m ago
However, a correct, pretty and fast solution may exist that neither of you have found yet.

But yes, the scope and breadth of their knowledge goes far beyond what a human brain can handle. How many relevant facts can you hold in your mind when solving a problem? 5? 12? An LLM can take thousands of relevant facts into account at the same time, and that's their superhuman ability.

theandrewbailey•6m ago
Modern SaaS: make it "pretty", then make it work, then make it "pretty" again in the next release. Make fast? Never.
IshKebab•46m ago
Calling these "laws" is a really really bad idea.
conartist6•44m ago
Remember that these "laws" contain so many internal contradictions that when they're all listed out like this, you can just pick one that justifies what you want to justify. The hard part is knowing which law break when, and why
ghm2180•40m ago
This is doubly true in Machine Learning Engineering. Knowing what methods to avoid is just as important to know what might work well and why. Importantly a bunch of Data Science techniques — and I use data science in the sense of making critical team/org decisions — is also as important for which you should understand a bit of statistics not only data driven ML.
AussieWog93•24m ago
DRY is my pet example of this.

I've seen CompSci guys especially (I'm EEE background, we have our own problems but this ain't one of them) launch conceptual complexity into the stratosphere just so that they could avoid writing two separate functions that do similar things.

pydry•19m ago
DRY is misunderstood. It's definitely a fundamental aspect of code quality it's just one of about 4 and maximizing it to the exclusion of the others is where things go wrong. Usually it comes at the expense of loose coupling (which is equally fundamental).

The goal ought to be to aim for a local minima of all of these qualities.

Some people just want to toss DRY away entirely though or be uselessly vague about when to apply it ("use it when it makes sense") and thats not really much better than being a DRY fundamentalist.

layer8•13m ago
DRY is misnamed. I prefer stating it as SPOT — Single Point Of Truth. Another way to state it is this: If, when one instance changes in the future, the other instance should change identically, then make it a single instance. That’s really the only DRY criterion.
xnorswap•10m ago
I like this a lot more, because it captures whether two things are necessarily the same or just happen to be currently the same.

A common "failure" of DRY is coupling together two things that only happened to bear similarity while they were both new, and then being unable to pick them apart properly later.

busfahrer•18m ago
I think I remember a Carmack tweet where he mentioned in most cases he only considers it once he reaches three duplicates
whattheheckheck•3m ago
Why 3? What is this baseball?

Take the 5 Rings approach.

The purpose of the blade is to cut down your opponent.

The purpose of software is to provide value to the customer.

It's the only thing that matters.

You can also philosophize why people with blades needed to cut down their opponents along with why we have to provide value to the customer but thats beyond the scope of this comment

d--b•43m ago
It's missing:

> Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule

tgv•8m ago
Shouldn't it also be able to read email? I think that was a law too.

Anyway, the list seems like something AI scraped and has a strong bias towards "gotcha" comments from the likes of reddit.

tfrancisl•37m ago
Remember, just because people repeated it so many times it made it to this list, does not mean its true. There may be some truth in most of these, but none of these are "Laws". They are aphorisms: punchy one liners with the intent to distill something so complex as human interaction and software design.
r0ze-at-hn•36m ago
Love the details sub pages. Over 20 years I collected a little list of specific laws or really observations (https://metamagic.substack.com/p/software-laws) and thought about turning each into specific detailed blog posts, but it has been more fun chatting with other engineers, showing the page and watch as they scan the list and inevitably tell me a great story. For example I could do a full writeup on the math behind this one, but it is way more fun hearing the stories about the trying and failing to get second re-writes for code.

9. Most software will get at most one major rewrite in its lifetime.

Antibabelic•34m ago
Software engineering is voodoo masquerading as science. Most of these "laws" are just things some guys said and people thought "sounds sensible". When will we have "laws" that have been extensively tested experimentally in controlled conditions, or "laws" that will have you in jail for violating them? Like "you WILL be held responsible for compromised user data"?
horsawlarway•19m ago
At least for your last point... ideally never.

Look, I understand the intent you have, and I also understand the frustration at the lack of care with which many companies have acted with regards to personal data. I get it, I'm also frustrated.

But (it's a big but)...

Your suggestion is that we hold people legally responsible and culpable for losing a confrontation against another motivated, capable, and malicious party.

That's... a seriously, seriously, different standard than holding someone responsible for something like not following best practices, or good policy.

It's the equivalent of killing your general when he loses a battle.

And the problem is that sometimes even good generals lose battles, not because they weren't making an honest effort to win, or being careless, but because they were simply outmatched.

So to be really, really blunt - your proposal basically says that any software company should be legally responsible for not being able to match the resources of a nation-state that might want to compromise their data. That's not good policy, period.

Antibabelic•5m ago
Incidents happen in the meat world too. Engineers follow established standards to prevent them to the best of their ability. If they don't, they are prosecuted. Nobody has ever suggested putting people in jail for Russia using magic to get access to your emails. However, in the real world, there is no magic. The other party "outmatches" you by exploiting typical flaws in software and hardware, or, far more often, in company employees. Software engineering needs to grow up, have real certification and standards bodies and start being rigorously regulated, unless you want to rely on blind hope that your "general" has been putting an "honest effort" and showing basic competence.
vpol•30m ago
Is it not the same as https://github.com/dwmkerr/hacker-laws ?
threepts•23m ago
I believe there should be one more law here, telling you to not believe this baloney and spend your money on Claude tokens.
RivieraKid•20m ago
Not a law but a a design principle that I've found to be one of the most useful ones and also unknown:

Structure code so that in an ideal case, removing a functionality should be as simple as deleting a directory or file.

kijin•11m ago
What's the smallest unit of functionality to which your principle applies?

For example, each comment on HN has a line on top that contains buttons like "parent", "prev", "next", "flag", "favorite", etc. depending on context. Suppose I might one day want to remove the "flag" functionality. Should each button be its own file? What about the "comment header" template file that references each of those button templates?

sverhagen•5m ago
Maybe the buttons shouldn't be their own files, but the backend functionality certainly could be. I don't do this, but I like the idea.
serious_angel•18m ago
Great! Do principles fit? If so, considering presence of "Bus Factor", I believe "Chesterton's Fence" should be listed, too.
bronlund•6m ago
Pure gold :) I'm missing one though; "You can never underestimate an end user".
Symmetry•6m ago
On my laptop I have a yin-yang with DRY and YAGNI replacing the dots.