Longer writing -> https://loopofthought.substack.com/
Sonatype logged 454,648 malicious packages in one year, 1.23M total.
Log4Shell still got 42M downloads in 2025.
Your dependency tree is a threat model.
Sonatype logged 454,648 malicious packages in one year, 1.23M total.
Log4Shell still got 42M downloads in 2025.
Your dependency tree is a threat model.
I don’t trust clean code written by someone who can’t.
I don’t trust clean code written by someone who can’t.
There are 365 active CNAs now, so the firehose has more nozzles every year.
One breakdown shows 8,000+ of those were XSS, a bug class older than most modern stacks.
There are 365 active CNAs now, so the firehose has more nozzles every year.
One breakdown shows 8,000+ of those were XSS, a bug class older than most modern stacks.
Surveys say 80%+ of devs already use or plan to use AI tools regularly.
Juniors are not competing with seniors but with chatbots.
Surveys say 80%+ of devs already use or plan to use AI tools regularly.
Juniors are not competing with seniors but with chatbots.
That’s a 78% drop vs the year before.
Early 2014 was 200,000+ a month.
The public debugging trail is collapsing.
That’s a 78% drop vs the year before.
Early 2014 was 200,000+ a month.
The public debugging trail is collapsing.
96% of devs don't trust it.
Only 48% always review before commit.
That gap is your new backlog: verification debt.
BYOK Copilot keys, whatever.
If CI is green by accident, prod will teach you.
96% of devs don't trust it.
Only 48% always review before commit.
That gap is your new backlog: verification debt.
BYOK Copilot keys, whatever.
If CI is green by accident, prod will teach you.
- A cron job no one dares to delete.
- A retry loop added after “that one incident.”
- A feature flag that’s been on for three years.
PRs avoid these areas on purpose.
Refactors stop one directory before them.
That’s how software ages.
- A cron job no one dares to delete.
- A retry loop added after “that one incident.”
- A feature flag that’s been on for three years.
PRs avoid these areas on purpose.
Refactors stop one directory before them.
That’s how software ages.
It’s not.
It’s the same job, with a new way to lie to yourself.
Before, you could ship spaghetti and still feel like an engineer because you personally typed it.
Now you can ship spaghetti faster and call it “leverage.”
It’s not.
It’s the same job, with a new way to lie to yourself.
Before, you could ship spaghetti and still feel like an engineer because you personally typed it.
Now you can ship spaghetti faster and call it “leverage.”
Your anxiety lives in the gap between the two.
Your anxiety lives in the gap between the two.
Adaptability is what hiring loops test for.
Most careers get stretched thin trying to satisfy both.
Adaptability is what hiring loops test for.
Most careers get stretched thin trying to satisfy both.
Software engineering is mostly about knowing which questions you’re afraid to ask.
Software engineering is mostly about knowing which questions you’re afraid to ask.
If your value was stitching libraries together, the stitching got cheaper.
If your value was stitching libraries together, the stitching got cheaper.
If it’s tickets with copy-paste patterns, yeah. If it’s ownership, reliability, and decision-making, you’re probably still underpaid.
If it’s tickets with copy-paste patterns, yeah. If it’s ownership, reliability, and decision-making, you’re probably still underpaid.
The market rewards proving you can leave them.
So everyone pretends they’re learning faster than they’re actually allowed to.
The market rewards proving you can leave them.
So everyone pretends they’re learning faster than they’re actually allowed to.
also me, 6 hours later: rewriting a file last touched in 2017 by someone named daniel
also me, 6 hours later: rewriting a file last touched in 2017 by someone named daniel
– “Stateless” systems reintroducing state where users can’t contest it.
– Alignment work optimizing for legibility over safety.
– Pricing tiers acting as a filter on who gets to experiment.
– Latency targets driving decisions more than user needs.
– “Stateless” systems reintroducing state where users can’t contest it.
– Alignment work optimizing for legibility over safety.
– Pricing tiers acting as a filter on who gets to experiment.
– Latency targets driving decisions more than user needs.