Sign in

Jake Lundberg

@jakelundberg.dev
102 followers 126 following 771 posts

Engineering Manager @ Greenplaces. I write about software delivery risk and shipping software that doesn't blow up. Building Merge Lantern, so you know which PRs need senior eyes before they merge. mergelantern.com/?utm_source=bluesky · jakelundberg.dev

PostsRepliesMedia
Jake Lundberg @jakelundberg.dev · 26/08/2026
AI is like a teenager. Maybe they'll follow the rules...maybe they won't
000
Jake Lundberg @jakelundberg.dev · 09/08/2026
i vote we hire Tim Burton to do a reboot of Tales from the Crypt. who’s with me?!
010
Jake Lundberg @jakelundberg.dev · 18/07/2026
so apparently the police don’t allow people to file Protection from Abuse (PFA) requests until the weekdays…🙄
000
Jake Lundberg @jakelundberg.dev · 04/07/2026
adding fun easter eggs is a fun use of time in general! I’m still waiting for some CEO or someone to pull a Halliday
020
Jake Lundberg @jakelundberg.dev · 04/07/2026
nothin like a little Mario Kart 64 out in the front yard with the neighbors
000
Jake Lundberg @jakelundberg.dev · 03/07/2026
sadly, the people we tried to educate about those practices over the last 15 years who didn’t really care are now included in the crowd of people building the systems that need to be protected from robot mistakes
010
Jake Lundberg @jakelundberg.dev · 02/07/2026
a founder never feels "tech debt." it's engineer-speak. what they feel is the checkout down at peak, or the senior who just quit. half of getting buy-in to fix it is translating the cost out of engineer terms into the thing they already lie awake about. it's a skill plenty of us are still learning.
000
Jake Lundberg @jakelundberg.dev · 02/07/2026
the two ways to fail as a new EM are opposites: become an IC with extra meetings, or vanish into calendars with no technical air cover. but they aren't equally likely. the gravity only pulls one way, back toward the keyboard, because that's where the fast feedback is.
000
Jake Lundberg @jakelundberg.dev · 02/07/2026
"Reduce friction" is half a sentence. Two kinds. Accidental friction...env setup, hunting for docs, chasing permissions...kill it, no argument. Essential friction...the "wait, should we?" before you touch auth or billing...that's the cheapest insurance you have. The skill is telling them apart.
000
Jake Lundberg @jakelundberg.dev · 02/07/2026
at least it’s an honest one 😅
010
Jake Lundberg @jakelundberg.dev · 01/07/2026
"I'll just build it instead of paying $29 a month" wins almost every argument, for one reason: the ops cost never shows up as a line item. the build is visible. the years of owning it aren't. so it always looks cheaper than it is. you didn't save $29...you hired yourself.
000
Jake Lundberg @jakelundberg.dev · 01/07/2026
"keep criticism private" is right for the person and wrong for the work. critique of someone, always private. critique of the idea has to happen out loud, or you quietly teach the team that challenging anything is rude. you can protect people without making the work un-challengeable.
000
Jake Lundberg @jakelundberg.dev · 01/07/2026
a paved road is a risk sorter. automate the common path and the 80% that stays on it is probably fine...not guaranteed, just better odds. which means almost all your real risk now sits in the 20% that left the road, the novel work with the least automation around it. point your attention off-road.
000
Jake Lundberg @jakelundberg.dev · 30/06/2026
a PR that has sat as a "draft" for 25 days with failing CI and no activity is not work in progress. it is a stale PR wearing a draft label as camouflage. draft is a status someone set once, not proof the thing is still being worked on.
000
Jake Lundberg @jakelundberg.dev · 30/06/2026
you can tell within weeks which new manager you got. the ones who show up certain they already know what's broken...everything feels on fire. the ones who show up asking questions, things just run smoother. the team always knew the real problems. listening was the only thing that unlocked them.
000
Jake Lundberg @jakelundberg.dev · 30/06/2026
everyone says the boring layer is a moat because AI fumbles it. that's not quite it. deploy, data, migrations, security...that's where risk actually concentrates, so it's where ownership and judgment matter most, because it's where things break. boring is a moat because it's where the risk lives.
000
Jake Lundberg @jakelundberg.dev · 30/06/2026
haha deleting code is the best! im always on the lookout for the rare and elusive all red diff 😍
000
Jake Lundberg @jakelundberg.dev · 29/06/2026
Startups list a dozen traits they want in engineers...comfort with ambiguity, self-direction, speed over perfection. They're all the same trait wearing different hats: can you make a good call when nobody hands you the call. Judgment in the absence of instruction. That's the whole job.
000
Jake Lundberg @jakelundberg.dev · 29/06/2026
nobody drifts toward more management. new managers slide back to code because it has a fast feedback loop...it compiles, it ships, you did something today. management's payoff is slow and murky, so you retreat to what pays off by end of day. balance isn't a point you find, it's a pull you fight.
000
Jake Lundberg @jakelundberg.dev · 29/06/2026
line count tells you how long a PR review will take, not how much damage the change can do. a 2,000-line refactor is a long read. a 200-line change in billing or a migration is a blast radius. keeping PRs small is certainly helpful, but it's not a silver bullet to reducing risk.
000
Jake Lundberg @jakelundberg.dev · 28/06/2026
it makes me so sad seeing that we are having to change our grammar and word choices simply because machines have now reserved them 😞
100
Jake Lundberg @jakelundberg.dev · 28/06/2026
you can model "I don't know" all day. doesn't matter. the first time someone gets burned for admitting they were lost, the whole team learns to go quiet for months. safety isn't saying you value it. it's never once punishing it.
000
Jake Lundberg @jakelundberg.dev · 28/06/2026
writing made me a better engineer, not just a more visible one. you can't explain a messy idea simply until you actually understand it. forcing yourself to write it down clearly is the same muscle as shipping a small PR...you have to understand the shape of the thing before you can make it small.
000
Jake Lundberg @jakelundberg.dev · 28/06/2026
watch TV
020
Jake Lundberg @jakelundberg.dev · 28/06/2026
👆 exactly this. AI cannot be the final solution. At least not yet. it’s more like a filter...it takes care of the 80-90%. but its accuracy just isn’t there yet for it to be fully unmanaged. knowing where it’s okay to take the risk of fully trusting AI is very important today
000
Jake Lundberg @jakelundberg.dev · 28/06/2026
wow, they made a lot of Saw movies 🍿
000
Jake Lundberg @jakelundberg.dev · 28/06/2026
well now I know what I’m doing today! 😂
010
Jake Lundberg @jakelundberg.dev · 28/06/2026
most decisions stuck in "pending alignment" for weeks are reversible. that's the part everyone forgets. you can ship the simple 80% version behind a feature flag, see if it's on track, and kill it if it's not. planning paralysis is usually a reversible decision treated like a one-way door.
100
Jake Lundberg @jakelundberg.dev · 28/06/2026
the original Brothers Grimm fairy tales were crazy for sure
010
Jake Lundberg @jakelundberg.dev · 28/06/2026
so many thanks to Linus Torvalds 🙏
000
Jake Lundberg @jakelundberg.dev · 27/06/2026
fighting the code teaches you how systems break. owning what you shipped and getting burned teaches what's worth protecting. AI mostly takes the first away. the sneaky risk is it takes the second too...code shipped so fast nobody really owns it, so neither lesson ever lands.
020
Jake Lundberg @jakelundberg.dev · 27/06/2026
ai don’t mind the comments, as long as they are relevant. i’m finding that providing that context to the next agent is very beneficial
000
Jake Lundberg @jakelundberg.dev · 27/06/2026
the one area that stand out (at least to me) is farming. automated machinery has been adopted widely, so i’m sure there are applications for advanced ai and robotics in that aspect, which is related to your small town topic
200
Jake Lundberg @jakelundberg.dev · 27/06/2026
"fire fast, attitude over talent" is dangerous in the wrong hands. a leader who isn't good at healthy conflict can't tell a toxic person from a valuable one who pushes back. so the slogan purges the dissenters. firing fast is easy. telling toxic apart from uncomfortable is the real skill.
110
Jake Lundberg @jakelundberg.dev · 27/06/2026
So I made the call...ship simple anyway, treat its mistakes as the data. The bet, on purpose, is that it's useful enough while it's sometimes wrong to earn its way to better. "Wait until it's good" quietly becomes "never shipped." When has shipping rough to learn paid off for you?
000
Jake Lundberg @jakelundberg.dev · 27/06/2026
The version that fixes this needs real incident data. But I won't have that data until people use the thing. That's the bind...the simple version is what I can launch, but the good version only exists on the far side of people using the simple one.
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
My call for v1 is the simple one: name matching + optional config, CODEOWNERS close behind, incident history later. And I'm nervous about it. It leans on people naming files conventionally (they don't) and filling out a config (they might not).
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
Option 2: CODEOWNERS, reusing the ownership signals already in the repo. Option 3: incident history, learning which parts of the codebase actually caused problems, whatever they're named. Most accurate by far.
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
Option 1: name/path matching plus an optional config file teams fill in. Dead simple, ships now, zero data.
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
Last week I showed my risk filter flagging a dark-theme CSS change as touching auth, billing, and secrets. Wrong, for a dumb reason...it decides what's "sensitive" by matching file paths against sensitive-sounding names. So how should it actually know? 🧵
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
ah I see, thanks for the correction!
010
Jake Lundberg @jakelundberg.dev · 27/06/2026
anyone else use it as a good reminder? like “oh yeah, I forgot about that song, thanks Spotify” and then listen to it like 100 more times?!
010
Jake Lundberg @jakelundberg.dev · 27/06/2026
that definitely helps. but (correct me if i’m wrong) verification of those hashes is not enforced, correct? so devs/vibe coders out there could just as easily skip that validation and use a corrupt resource…so the users of those systems are then at risk
110
Jake Lundberg @jakelundberg.dev · 27/06/2026
I haven’t been on Twitter/X in years, but from the stories I hear, I completely agree!
010
Jake Lundberg @jakelundberg.dev · 27/06/2026
let’s also add those who talk on speaker phone in the same places!
1131
Jake Lundberg @jakelundberg.dev · 27/06/2026
with so many supply chain issues lately, I would be very concerned about security with something like this. i love the idea for sure, but I personally lean toward security over convenience
130
Jake Lundberg @jakelundberg.dev · 27/06/2026
daaaang! when’s the 007 party? i’ll bring the snacks! 🎮🍿
120
Jake Lundberg @jakelundberg.dev · 27/06/2026
I think a lot of people are in those small towns because they don’t want it to feel like it functions like a big city
100
Jake Lundberg @jakelundberg.dev · 27/06/2026
I need a few more Squirtles and some of them aren’t “unfinished”…they’re “never played” 😅
001
Jake Lundberg @jakelundberg.dev · 27/06/2026
"nobody's buying it" is two completely different problems wearing the same face. one is "they don't want it." the other is "they don't know it exists." marketing only fixes the second...if nobody wants the thing, better distribution just helps more people find out faster.
110