Ask

Lu Fenwick

@schema_drift_lu

I maintain the deploy pipeline for a small analytics product, which mostly means catching schema drift before it reaches production. I have a strong opinion about running migrations from CI and a weak one about everything else.

36 credit Contributor

From answers
0
From questions
36

Joined November 26, 2024 · 0 followers · 0 following

Galaxy lockout survival check: what has to be off the phone before a factory reset is the only way back in?

The actual root cause in most lockouts is not brute force, it is a PIN you changed once and never rehearsed, usually after a work policy forced a longer one. Fingerprints hide the problem for months until a wet hand or a reboot forces the code.

Two cheap habits: record the current unlock code somewhere you can reach without the phone, and deliberately type it in once a month instead of using biometrics. Muscle memory is a cache, and it expires.

7 · in/privacy-tools ·

2.76s cold start in production, 130ms locally - prisma client on the node runtime

The 980ms is mostly the engine binary being read and the schema being parsed, and it happens the first time the client is used, not when it is constructed - so a module-scope singleton does not help as much as people assume. If your platform gives you any kind of lifecycle hook that runs before the first request, firing a trivial SELECT 1 there moves that cost off the user's request. Otherwise it is genuinely on the critical path of somebody's page load.

87 · in/cold-starts ·

invalidateQueries resolves but the table keeps the old row until i navigate away

Long shot but I lost a day to it: a select that returns a new derived array is fine, but a select that returns a slice of the same object combined with structural sharing can hand you back a reference that is === the previous one when only a nested field changed and your renderer compares that field by reference. Logging data in the component and seeing the old value print is enough to rule it in or out in thirty seconds.

41 · in/react-data-fetching ·

Laid off six weeks ago with four months of runway, how long did yours actually take, start to signed?

Three weeks, one application, an old colleague. I am posting this not to be smug but because these threads are wildly skewed, the people who got hired quickly are not in here writing about it, and the median you build from a thread like this will be pessimistic. That said, the reason it took three weeks was four years of staying in touch with people, so it was not actually three weeks.

164 · in/job-search ·

Rewriting a 40 minute Python ETL in Rust, where does the speedup actually come from?

Try the one week option that is not a rewrite first. We had a very similar job, 6GB of gzipped CSV into Parquet with a dedupe, and moving from pandas to Polars with lazy scanning took an afternoon and cut it from 31 minutes to about 7. Most of that was not clever, it was that we stopped materialising the whole frame in memory and stopped doing the dedupe as a groupby over an object dtype column. If that gets you under your window, you have spent an afternoon instead of a week and you can still do the Rust version later with a known baseline.

152 · in/rust-lang ·

Year 6 ratio homework: my method gets the right answer and her teacher marks it wrong

Learn the bar model. It takes about twenty minutes and it is not the school being precious - at that age the picture is what builds the idea of a ratio as parts of a whole, and cross multiplication is a rule with the reasoning hidden inside it. She will get your method in two years and it will land properly because the picture is already there. What you can do tonight is show her both and say the picture is the explanation and yours is the shortcut.

190 · in/math-help ·

40 tools on one mcp server or split into five, schemas eat 11k tokens

One caution on aggressive dynamic loading: if a tool is not attached when the model needs it, you get a very confident hallucinated answer instead of a tool call, and that failure is much harder to spot in your logs than a wrong-tool pick. Whatever router you build, make sure the model can say "I need the deploys tools" and get them, and log every time it asks.

68 · in/agents-and-mcp ·

still getting too many clients already on the pooled 6543 string at 120 concurrent

Once you are on transaction mode, do also check for prepared statement errors under load. Different symptom, prepared statement "s0" already exists, and it shows up intermittently under exactly this kind of burst because the pooler hands you a different server connection than the one that prepared it. Most drivers have a flag to disable prepared statements for this reason. Not your current bug but you will meet it next week.

63 · in/cold-starts ·

zustand or leave it in the query cache - 2 devs, 40 screens, offline edits

Slightly against the grain: if the offline story is the product rather than a nice-to-have, neither option is really the answer and you want a local database with sync built in. But that is a much bigger commitment and you would be choosing it because "works offline for a full shift" is what customers pay for, not because the query cache annoyed you. From the post it sounds like a nice-to-have, so ignore me.

52 · in/react-data-fetching ·

Which three numbers go on a weekly dashboard for a product with 40 users?

I ran a proper dashboard and a plain text weekly note side by side for two quarters. The dashboard was better for spotting a broken signup flow within a day. The note was better at literally everything else, because writing a sentence about why a number moved forces you to know, and a chart lets you nod at it. I kept both and the note is the one I read.

64 · in/funnel-metrics ·

first request each morning takes 1.1s and the rest 60ms, is that just cold start

1.1s for a first request is unremarkable. I have seen worse from bigger teams. What matters is who eats it - if it is the first internal user of the day, ignore it forever. If it is a marketing page a stranger clicked from a search result, that is a different conversation, because the person deciding whether your product is any good is the one holding the stopwatch.

96 · in/cold-starts ·

The model our prompts were tuned on is being retired - how did you actually run the migration?

Our migration took roughly two days of harness work and half a day of actual prompt edits, and about a fifth of our prompts needed any change at all. What ate the time was deciding what counted as a regression, because plenty of the diffs were different rather than worse. Write down your pass criteria before you look at any output or you will spend the whole budget arguing about wording.

66 · in/model-releases ·