Carrying the Laptop Open: Software Engineers Before vs After Agents
Why is this AI ML meme funny?
Level 1: Don't Wake the Baby
Before: you finish your homework, close your notebook, tuck it under your arm, done. After: imagine a tiny invisible helper lives inside the notebook and keeps doing your homework for you — but only while the notebook is open. Close it, and the helper falls asleep mid-sentence and forgets where it was. So now you carry your notebook everywhere half-open, walking carefully, like you're holding a sleeping kitten you refuse to disturb. The joke is in the body language: the proud, careful grip of someone whose computer is no longer a tool they use, but a coworker they're carrying around — one that's not allowed to take naps.
Level 2: Why Closing the Lid Kills the Magic
The pieces for anyone newer to this:
- AI coding agent — a tool (Claude Code, Codex-style assistants, and kin) that doesn't just suggest lines but autonomously executes multi-step work: editing files, running tests, fixing failures, iterating. A run can take many minutes or hours.
- Sleep / suspend — what most laptops do when the lid closes: freeze nearly all processes to save power. Great for battery; fatal for a long-running task that loses network connections and execution state.
- Long-running process — any job that must keep executing without you. Traditional answers: run it on a server, in
tmux/screen, or in CI — anywhere that doesn't depend on your hinge. caffeinate/ power settings — utilities that tell the OS "stay awake even if the lid closes." The meme's subjects either don't know this or don't trust it, hence the V-shaped carry.
The relatable rookie moment: kicking off your first big agent task, snapping the laptop shut, strolling to lunch, and returning to find the run dead at step 3 of 40. Once burned, you too will walk across the office holding your laptop open like a waiter with a tray.
Level 3: The Lid Is Now a Liability
The visual economy here is perfect: two photos of the same hand, same dark laptop, same patch of lawn. Caption: "software engineers before vs after agents." Left: the laptop carried fully closed, gripped flat like a folder — the universal posture of "done for now." Right: the same machine dangled half-open in a precarious V, screen and keyboard exposed, carried like a paperback you don't want to lose your page in.
What changed isn't the hardware; it's the ownership of compute time. For thirty years, closing the lid was a semantically meaningful act — I stop working, therefore the machine stops working. AI coding agents broke that symmetry. When an autonomous agent is mid-task — grinding through a refactor, running a test-fix loop, burning tokens against your monthly plan — the lid triggers sleep, sleep suspends the process, and suspension kills your agent's run mid-thought. So engineers have reverse-engineered a hardware workaround for a software-era assumption: carry the thing open, ajar, like a soufflé you can't jostle. The human is no longer the worker; the human is the process babysitter, and the half-open lid is the visual signature of that demotion.
There's a sharper irony underneath. We built elaborate infrastructure precisely so computation wouldn't depend on any one machine staying awake — CI runners, cloud VMs, tmux on a remote box, detached containers. Decades of "cattle, not pets." And the agentic boom dragged us straight back to the most pet-like configuration imaginable: a single local session, on battery, whose continuity depends on hinge angle. The correct solutions exist (disable lid-sleep with caffeinate or pmset, run the agent remotely, use cloud-hosted agent sessions), but the meme documents what people actually do, which is the engineering equivalent of carrying a full cup of coffee across the office very, very carefully. Local-first agents are genuinely convenient — your checkout, your credentials, your editor — and that convenience is exactly what welds the laptop to its owner's open palm.
The "before vs after" framing also lands as a quiet status joke: the before engineer carried a closed laptop because their value was in their head. The after engineer carries an open one because the valuable worker is now inside the laptop, and heaven forbid it take a nap.
Description
Two-panel photo meme captioned 'software engineers before vs after agents'. Left panel: a hand carries a thin dark laptop fully closed, gripped flat like a folder, over a grass background. Right panel: the same laptop is now carried half-open in a V shape, screen and keyboard visible, dangled casually from one hand like a paperback. The joke is that since AI coding agents run autonomously, engineers no longer close their laptops - they carry them open everywhere so the agent can keep grinding through tasks unattended, with the human reduced to occasionally glancing at progress
Comments
114Comment deleted
We finally achieved continuous delivery - the laptop lid just isn't allowed to participate in it anymore
DevBox🤔 Comment deleted
One line change in logind.conf to not sleep when closing the lid... Comment deleted
That's a MacBook 🤓☝️. Also doing this generally on any laptop is a bad idea Comment deleted
Don't care, this laptop will suffocate in a wardrobe as a homelab Comment deleted
Why Comment deleted
Usually, the thermals need an open lid Comment deleted
Ah, that. Modern laptops are cold especially macbooks Comment deleted
depends, many fans do pull air from under the lid though Comment deleted
alternatively, take the magnets out :) Comment deleted
MacBooks don't use magnets anymore, there is an angle sensor in the hinge afaik Comment deleted
because we gotta reinvent the wheel every time it works for too long Comment deleted
I think it's used for keyboard under light timings, open closed animations and so on. Not sure why they did that exactly Comment deleted
because apple is a vanity brand that does useless stuff to seem more special than they are Comment deleted
M chips are a miracle of modern engineering and it's objectively the best modern portable device chip on the market, I think they get a pass on that Comment deleted
yeah wow they accidentally made something good. big deal. doesn't change the fact that most of what I despise about modern hardware was normalized by apple in their endless pursuit of looks over functionality Comment deleted
MacBook keyboards are better then most laptops and the other copy them, they set the trend for actually good trackpads, is still can't find a full machined aluminium body for a sane price anywhere else Comment deleted
I've used a macbook keyboard before and I strongly disagree. lenovo has much better keyboards on average. and let's not forget the QA issues, with keyboards breaking all the time in certain laptop models Comment deleted
Which MacBook? They changed them since the last gen intel macbooks Comment deleted
various. one of my friends has a 2012 model, and another one bought one in 2024. in school I also occasionally typed on other peoples' macbooks. all of them feel exceptionally cheap and shitty Comment deleted
I'll say the new model does feel nicer than the 2012 one, I guess Comment deleted
They 2012 has a shitty keyboard, agreed. I have one of those, I use it as a homelab. But it's been 14 years, the new keyboards are a heaven to type on Comment deleted
That may be personal preferences, but I hate travel on laptop keyboards, imo they should have as little as possible travel Comment deleted
oh I agree. I'm not a huge fan of desktop keyboards for that exact reason. but apple does it badly imo. dunno how to quantify it really, it just feels more similar to a shitty dell than a thinkpad I actually enjoy typing on Comment deleted
as I said, I've felt those ones too, and I still prefer a good thinkpad keyboard over that. even my badly built previous laptop was better Comment deleted
I really don't get it, I typed on a lot of thinkpads, acers, hps, and so on, they are all so flimsy, the keyboard caves in when you type, and the feeling of it is obnoxious Comment deleted
ok look, you can't compare apple to literal shovelware and say it's good. acer and hp make terrible laptops. thinkpads have a lot of variation for some reason; in general the older ones are better, and among the newer ones the midrange feels best. high-end (1000€+) feels like apple, and low-end (<300€) feels like dell. Comment deleted
I don't remember which laptop it was exactly, but it was some windows-running high tier Ryzen laptop for around the same money as a MacBook air, and I hated every second of typing on it Comment deleted
a thinkpad? yeah the high-end ones have kind of bad keyboards. I think they're trying to emulate apple and uh, failing. Comment deleted
this is generally true for a lot of the non-gaming industry, not just lenovo Comment deleted
who makes good laptops then Comment deleted
really good ones? nobody. lenovo still makes some ok ones. some other brands probably too but I haven't looked in a while. Comment deleted
Lenovo chinese laptops Comment deleted
xiaoxin? Comment deleted
Yuh Comment deleted
has a subpar keyboard compared to LOQ Gen9/Legion/Thinkpad X/X Carbon, it's not even an actual Lenovo product but an OEM rendition Comment deleted
Idk i carry a 60% with me around Comment deleted
I got one and it was fine Comment deleted
also I genuinely don't like aluminium bodies. it's a laptop; I don't wanna burn my thighs if I put it on my lap. Comment deleted
And I don't like to be able to bend my laptop with my hands Comment deleted
How do you open it then Comment deleted
nor do I. good plastic doesn't do that. bad aluminium does (my previous laptop was all-aluminum and bent in all silly directions…) Comment deleted
Which laptop you use? Comment deleted
and the M chip wasn't made to be fast. it was made to be exciting and new. it's only good because it's a high-budget ARM Comment deleted
It has the best balance of performance and battery life out of all the laptops Comment deleted
no longer true once framework 13 pro drops Comment deleted
framework is also overhyped, but I won't get into that. either way, I'm glad apple (and framework?) is part of making ARM for desktops finally a thing. x86 shouldn't have become the standard for as long as it has Comment deleted
arm is also not very good tbh imo Comment deleted
But it's better Comment deleted
idk, seems like xchging blob-ridden mess by a blob-ridden mess Comment deleted
You should make changes to improve. There won't be a hardware Jesus that will make perfect hardware and TempleOS 2 Comment deleted
you can do nothing about hardware unless you are a hardware manufacturer but even then, the hardware landscape of today is a blob-ridden mess Comment deleted
I mean… mobile ARM are terrible. mostly because mobile is terrible in general though. Comment deleted
both mobile and desktop arm is terrible because of their driver/firmware zoo, with most of it being proprietary undocumented bullshit Comment deleted
desktop arm is terrible because it's based on mobile arm afaik. also the hardware is just terrible, not just the docs. especially on the GPU side of the SoC, but that's not technically ARM, I guess. Comment deleted
i am also talking about apple here Comment deleted
I don't know much about that side of apple, sorry. I was mainly talking about the snapdragons they made for ARM windows machines Comment deleted
i mean, it is moistly the reason why asahi is so slow in terms of features Comment deleted
I guess? Comment deleted
nothing is perfect, but it's certainly better than x86 Comment deleted
ARM uses a weak memory model, meaning stores can be reordered after loads and vice versa. Multithreaded (not single threaded) code that works on x86 could throw random bugs because of incompatibility with ARM. Comment deleted
if you are compiling from source, then the software is at fault for having a bug there. If you are running an emulator, it should deal with that stuff by itself Comment deleted
well if a software was written for x86 CPU specs and there only "stores after reads" could be re-arranged. x86 - only 1 direction of re-arrangement is allowed. arm - 4 directions. meaning - same code works on x86 and could have problems on ARM. Note: again, only multithreaded code is in question. Comment deleted
that wouldn't matter though for for anything that's not x86 assembly basically, no? Comment deleted
I'm talking abt re-arrangements by CPU (it's CPU's specs basically), not the compiler. Or maybe I don't understand your point. Comment deleted
yes, and I'm saying that you normally shouldn't be able to write code "for x86" that will fail like that without writing x86 assembly directly Comment deleted
no no you totaly can. once again: for ex. I write code that is taking for consideration only re-arrangement in 1 direction. C++ have memory barriers to deal with it. this code could fail on ARM. Since ARM could re-arrange reads and writes differently. Comment deleted
Yes, and C++ compilers can also perform reordering during translation, so such code is likely to fail for x86 too Comment deleted
for x86 if I use memory barrier - then compiler will consider it as well as CPU. in other words, there will be NO unwanted rearrangements. Comment deleted
Yes, and same for arm Comment deleted
arm does have barrier insns too Comment deleted
yes. but my point is: I will need to EDIT that code that works on x86. since "rules for ARM are different". I will be forced to ADD more barriers. Comment deleted
No, those barriers will have to be present for x86 too. These barriers also prevent reordering during translation. Without them, the insn may get reordered anyway. The ex86-specific guarantee is not exposed to the lanmguage, onlty to the backend. In other words, YOU have to place the barriers for both. The COMPILER when emitting assembly doesn't Comment deleted
C++ doesn't really care about what the underlying CPU memory model is, it only cares about its notion of happens-before that it itself defines Comment deleted
Atomic reordering is an issue that is entirely contained to the backend, it does not affect the language Comment deleted
In total, this is basically false as written: Rules in both cases are rules for the C++ abstract machine, which comp[ilers for arm and x86 both implement. But C++ doesn't care HOW the implementations do it, what matters is that both impls conform, and that the code conforms to the C++ rules, not arm or x86 rules Comment deleted
…ok. and I'm sure x86 code doesn't translate 1:1 to powerPC either. big surprise, architectural changes mean you need to change your software too Comment deleted
it may have been considered overhyped 2 years ago, but now 5 years later when you can literally update the first model they released to the new aluminum macbook-like chassis with better battery, *or* drop in the new panther lake into your own 5 year old chassis? Comment deleted
it's overpriced to all hell Comment deleted
(Un)fun fact, afaik this angle sensor is paired to the machine and changing it requires recalibration from Apple Comment deleted
But at least we can play it as an accordion /s https://github.com/bruiselea/MAcordion Comment deleted
caffeinate Comment deleted
caffeinate doesn't prevent hardware sleep, only idle sleep Comment deleted
doing this because they couldn't configure their OS Comment deleted
bs. I gotta keep those torrents running Comment deleted
This conversation is a better meme than meme. Comment deleted
Barriers for other directions. Comment deleted
iirc barriers have directions I might not need certain barriers when CPU spec don't ask for them. Comment deleted
No, this is false. You still do. Comment deleted
The compiler backend may decide not to emit an instruction for the barrier if it's already satisfied, but that's it Comment deleted
You still need the barrier in the program translated Comment deleted
Please consult eel.is/c++draft/intro.races and observe that there is nothing that refers to synchroniztion rules being implementation-defined in any way Comment deleted
I was under impression from this article (also there's YT video in english for those who're interested) https://habr.com/ru/companies/jugru/articles/541362/ Comment deleted
ah the classic ub Comment deleted
the funnier thing is that the article itself doesn't even mention target differences Comment deleted
moreover, the article says basically the same thing i have been saying: Компьютер может переставить эти операции местами: сначала обновить locked, потом положить новый элемент в очередь. Вы можете сказать: «Это неправильная оптимизация, это сломает мой код, и вообще, у компьютера не должно быть возможности так делать!» Но эта оптимизация такая же, как и в предыдущих примерах. Процессор или компилятор могут изменить порядок выполнения связанных чтений и записей, потому что решат, что это ускорит некоторые части вашего кода. Как показано в предыдущем примере, это может полностью нарушить ваши планы, но это только из-за того, что вы не сообщили о них компьютеру. Comment deleted
pay attention to this part Comment deleted
yeah... but there's also a table with comparsion of x86 and ARM. and an example where the same code executes diff on iPhone and PC. Comment deleted
Yes, that example is incomplete: spinlock is not a thing Comment deleted
Given that the article later mentions the implementation with memory_order_relaxed, no wonder this doesn't work: the writes to the volatile variable are not synchronized Comment deleted
Also the example uses volatile to inhibit compiler reordering, which that version of the compiler obliges to do, but it is still undefined, on both x86 and arm. The fact that he got the right result here is a mere coincidence Comment deleted
will read that later, thank you Comment deleted
This convo is indeed pretty interesting! Comment deleted
crazy thotbot react Comment deleted
wow what a fight over a macbook best price per performance ever for me in 2018-2019 was Xiaomi, literally macbook which is still going stronger than ever, since that I always recommend for everyone who wants a laptop and not a mac to get something chinese - still beating the whole market for usual non perf user Comment deleted
Hey the M chips are good because ARM and unified RAM, but a high percent is because the software and the OS running on these machines are special and 100% focus on that hardware with a full low level control of every aspect Comment deleted
Try to do that with the PC high fragment ecosystem? Comment deleted
Every brand want to create a custo acpi table with custom actions, then only generales shitty dsdl code and only for windows Comment deleted
Etc etc..... Comment deleted
i feel like asus occasionally does produce not bad products Comment deleted
but asus is Comment deleted
This conversation is still a better meme than meme. Comment deleted
mind to explain? Comment deleted
Agent running in the terminal or somewhere else -> the process will stop if the lid is closed, since the laptop will go to sleep Comment deleted