Deleting the browser copies is the step everyone skips and it is the reason people say the password manager "stopped working". Two things fighting over the same field feels broken and they blame the new one.
Cass
@coworking_cass
Has tested the wifi in more coworking spaces than she can remember and reviews none of them for free stays.
71 credit Contributor
- From answers
- 0
- From questions
- 72
- Lifetime
- 72
Matches my experience. The people I've seen regret it were the ones who couldn't articulate what they wanted changed beyond "more".
Worth checking whether it's actually the desk. Hunching within ten minutes of standing is at least as often a monitor height problem, when you stand, your eye level rises by however much taller you are standing than sitting, and if the monitor doesn't rise with you, you drop your head and round your shoulders and then blame the desk. Raise the screen for the standing position, or get an arm so it follows you, and re-test the same desk height before you touch anything else.
True, and distroless is a good end state. But no shell means no docker exec sh when something is wrong at 11pm, and for a solo dev debugging on a VPS that trade is worse than 100 MB. Go there once the thing is boring.
About 1.1 GB of it is the base image. node:22 is Debian bookworm with a full toolchain, python, git, the lot. node:22-slim is around 220 MB, node:22-alpine around 150.
The rest is that you install dev dependencies and never remove them, and you COPY . . before installing, so every source change invalidates the npm layer and you re-download the world.
Multi-stage, roughly:
FROM node:22-slim AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY prisma ./prisma
RUN npx prisma generate
COPY . .
RUN npm run build
FROM node:22-slim
WORKDIR /app
ENV NODE_ENV=production
COPY package*.json ./
RUN npm ci --omit=dev
COPY --from=build /app/dist ./dist
COPY --from=build /app/node_modules/.prisma ./node_modules/.prisma
CMD ["node", "dist/server.js"]
That lands around 300 MB for a typical Prisma app. The query engine binary is about 20 MB of it and there isn't much to do about that.
Also add a .dockerignore with node_modules, .git and dist. Without one you're shipping your local node_modules to the daemon as build context on every single build.
Go early. Walking into a restaurant at 6:30 when it's half empty is a completely different experience to walking into a full room at 8:30 with everyone already seated. Staff have time, you get a decent table rather than the one by the toilets, and nobody is waiting on you to free it up.
Other things that made it easy for me:
- sit at the bar or the counter if there is one, that's where solo diners are normal everywhere in the world
- lunch first, then dinner. Lunch alone feels ordinary and it builds the muscle
- bring something to look at for the first five minutes, then put it away once food arrives
The display feeling fades fast, honestly within about four meals. Nobody is looking. The waiter has seen forty solo diners this month.
Disagreeing with the premise that you need to bottle before you travel at all. Cider is perfectly happy sitting on the yeast in a sealed fermenter for another two or three weeks, and it will be clearer and better for it. Ten days away is nothing. Bottle when you are home, unhurried, with two matching gravity readings behind you.
Same pattern for me, roughly every ten days. Once I stopped treating it as a sign I should go home it stopped being a big deal.
Also: if the transformation is genuinely mechanical, consider not using an agent for the bulk of it. A ts-morph or jscodeshift transform does 170 of the 180 files deterministically and identically, and you use the model for the ten weird ones and for writing the codemod itself.
Deterministic where you can, judgement where you can't. An agent that produces subtly different-looking output in file 140 than in file 3 is something you'll be reading diffs about for a week.
Set yourself a deadline now, while you're calm. Mine is eight weeks: if the situation hasn't materially changed in eight weeks, I start looking, no further deliberation. Otherwise you'll be here at month eleven having the same conversation with yourself.
Put a restore in your calendar quarterly. Restore into a throwaway container, run one query, delete it. Twenty minutes, and it converts a hope into a fact.
Two things, actually, and I hadn't thought about either since the interview. That's probably my answer.
"The opposite of misery is quiet" has genuinely reframed the whole thing for me. I think I was waiting for a feeling that isn't a normal part of employment.
And be honest about it, half the time I think I know where the code is and I'm wrong. Letting it look is fine, just don't do it out of habit on something you could specify.
Small operators are far more flexible than big ones because a human reads your email. I've had one put me in a triple with two other solos at no extra cost simply because I asked whether that was possible.
I ask this at every final round now. The quality of the answer sorts companies faster than anything else I've tried.