<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Serguey Asael Shinder</title>
    <description>The latest articles on DEV Community by Serguey Asael Shinder (@sergueyasaelshinder).</description>
    <link>https://dev.to/sergueyasaelshinder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3162425%2F9aec4162-92b2-44e6-aa10-8ffd5d721296.png</url>
      <title>DEV Community: Serguey Asael Shinder</title>
      <link>https://dev.to/sergueyasaelshinder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergueyasaelshinder"/>
    <language>en</language>
    <item>
      <title>Somebody Is Saving Your Traffic to Read It Later</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:21:49 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/somebody-is-saving-your-traffic-to-read-it-later-4eed</link>
      <guid>https://dev.to/sergueyasaelshinder/somebody-is-saving-your-traffic-to-read-it-later-4eed</guid>
      <description>&lt;p&gt;Everything you encrypt today&lt;br&gt;
is protected by maths&lt;br&gt;
that is hard right now.&lt;/p&gt;

&lt;p&gt;Right now is the phrase&lt;br&gt;
that matters.&lt;/p&gt;

&lt;p&gt;An attacker does not have to break&lt;br&gt;
your traffic this year.&lt;/p&gt;

&lt;p&gt;They only have to keep it.&lt;/p&gt;

&lt;p&gt;Storage is cheap.&lt;br&gt;
Captured traffic is patient.&lt;/p&gt;

&lt;p&gt;And there is a long-running effort,&lt;br&gt;
backed by very large budgets,&lt;br&gt;
to build machines&lt;br&gt;
that would make some of today's&lt;br&gt;
key exchange and signatures&lt;br&gt;
easy to undo.&lt;/p&gt;

&lt;p&gt;Nobody can honestly tell you&lt;br&gt;
the year that arrives.&lt;/p&gt;

&lt;p&gt;Maybe never.&lt;br&gt;
Maybe well after&lt;br&gt;
you have changed jobs twice.&lt;/p&gt;

&lt;p&gt;That uncertainty&lt;br&gt;
is not a reason to relax.&lt;/p&gt;

&lt;p&gt;It is the whole calculation.&lt;/p&gt;

&lt;p&gt;Ask how long&lt;br&gt;
each thing you protect&lt;br&gt;
needs to stay secret.&lt;/p&gt;

&lt;p&gt;A session token matters for an hour.&lt;/p&gt;

&lt;p&gt;A medical record matters&lt;br&gt;
for the rest of a life.&lt;/p&gt;

&lt;p&gt;A contract, a source tree,&lt;br&gt;
a list of who talked to whom,&lt;br&gt;
the negotiating position&lt;br&gt;
in a deal that closes&lt;br&gt;
three years from now.&lt;/p&gt;

&lt;p&gt;If the secret has to last&lt;br&gt;
longer than the maths might,&lt;br&gt;
then it is already exposed&lt;br&gt;
to whoever recorded it,&lt;br&gt;
and nothing you do later&lt;br&gt;
reaches back into their archive.&lt;/p&gt;

&lt;p&gt;The replacement algorithms exist.&lt;br&gt;
The first standards&lt;br&gt;
were published in 2024,&lt;br&gt;
and the large browsers and providers&lt;br&gt;
have been quietly mixing them&lt;br&gt;
into ordinary connections since.&lt;/p&gt;

&lt;p&gt;The hard part is not the new algorithm.&lt;/p&gt;

&lt;p&gt;It is finding every place&lt;br&gt;
the old one is written down.&lt;/p&gt;

&lt;p&gt;The library pinned&lt;br&gt;
four major versions back.&lt;br&gt;
The device in a warehouse&lt;br&gt;
that can only speak&lt;br&gt;
what it shipped with.&lt;br&gt;
The certificate format&lt;br&gt;
a partner insists on.&lt;br&gt;
The algorithm name&lt;br&gt;
typed as a string&lt;br&gt;
into a config file&lt;br&gt;
in forty repositories.&lt;/p&gt;

&lt;p&gt;That inventory&lt;br&gt;
is dull work,&lt;br&gt;
and it is the actual work.&lt;/p&gt;

&lt;p&gt;So start with two lists.&lt;/p&gt;

&lt;p&gt;What must still be secret in ten years.&lt;/p&gt;

&lt;p&gt;Where your cryptography&lt;br&gt;
is chosen,&lt;br&gt;
by whom,&lt;br&gt;
and how hard it is to change.&lt;/p&gt;

&lt;p&gt;Aim for the day&lt;br&gt;
when switching an algorithm&lt;br&gt;
is a configuration change&lt;br&gt;
and a test run,&lt;br&gt;
not a programme of work&lt;br&gt;
with a budget and a steering group.&lt;/p&gt;

&lt;p&gt;The code you write this year&lt;br&gt;
will still be running&lt;br&gt;
when this matters.&lt;/p&gt;

&lt;p&gt;Build it so that changing the lock&lt;br&gt;
does not mean&lt;br&gt;
rebuilding the door.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>cryptography</category>
      <category>security</category>
      <category>future</category>
    </item>
    <item>
      <title>Your On Call Week Is Not a Normal Week With Pages in It</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:21:17 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/your-on-call-week-is-not-a-normal-week-with-pages-in-it-53g7</link>
      <guid>https://dev.to/sergueyasaelshinder/your-on-call-week-is-not-a-normal-week-with-pages-in-it-53g7</guid>
      <description>&lt;p&gt;The sprint plan has your name&lt;br&gt;
against the migration.&lt;/p&gt;

&lt;p&gt;It is also your week&lt;br&gt;
holding the pager.&lt;/p&gt;

&lt;p&gt;Everybody agreed to this&lt;br&gt;
without noticing,&lt;br&gt;
because the pager might be quiet.&lt;/p&gt;

&lt;p&gt;It is never quiet in the way&lt;br&gt;
the plan needs.&lt;/p&gt;

&lt;p&gt;It does not have to ring much.&lt;/p&gt;

&lt;p&gt;It only has to be able to.&lt;/p&gt;

&lt;p&gt;Deep work needs a stretch&lt;br&gt;
where you believe&lt;br&gt;
nothing will pull you out.&lt;/p&gt;

&lt;p&gt;A pager removes the belief,&lt;br&gt;
whatever it does with the noise.&lt;/p&gt;

&lt;p&gt;So you circle the migration.&lt;br&gt;
You open it, load it into your head,&lt;br&gt;
and hold back the last part&lt;br&gt;
of your attention,&lt;br&gt;
in case.&lt;/p&gt;

&lt;p&gt;Then one alert,&lt;br&gt;
twenty minutes, a false alarm,&lt;br&gt;
and what you had loaded&lt;br&gt;
has gone.&lt;/p&gt;

&lt;p&gt;By Friday two things are true.&lt;/p&gt;

&lt;p&gt;The migration moved a little,&lt;br&gt;
and badly.&lt;/p&gt;

&lt;p&gt;And the incidents got&lt;br&gt;
half of a person&lt;br&gt;
who resented them,&lt;br&gt;
which is the wrong half&lt;br&gt;
to meet a production problem with.&lt;/p&gt;

&lt;p&gt;Nobody chose that week.&lt;/p&gt;

&lt;p&gt;It fell out of a plan&lt;br&gt;
that treated on call&lt;br&gt;
as a background task&lt;br&gt;
rather than as the job.&lt;/p&gt;

&lt;p&gt;Plan it the other way round.&lt;/p&gt;

&lt;p&gt;On call is an interrupt week.&lt;/p&gt;

&lt;p&gt;Take the large work off the board&lt;br&gt;
before it starts,&lt;br&gt;
out loud,&lt;br&gt;
in the planning meeting,&lt;br&gt;
so nobody counts on it.&lt;/p&gt;

&lt;p&gt;Fill the week&lt;br&gt;
with small, finishable things.&lt;br&gt;
Pieces you can put down&lt;br&gt;
in the middle&lt;br&gt;
and pick up without loss.&lt;/p&gt;

&lt;p&gt;Better still,&lt;br&gt;
give the week a theme&lt;br&gt;
that the pager feeds.&lt;/p&gt;

&lt;p&gt;The alert that fired for nothing,&lt;br&gt;
tuned or deleted.&lt;br&gt;
The runbook step&lt;br&gt;
that was wrong at three in the morning,&lt;br&gt;
rewritten while it still stings.&lt;br&gt;
The manual fix&lt;br&gt;
you did twice,&lt;br&gt;
turned into a script.&lt;/p&gt;

&lt;p&gt;That work is done best&lt;br&gt;
by the person who just felt the pain,&lt;br&gt;
and it makes the next person's week&lt;br&gt;
quieter.&lt;/p&gt;

&lt;p&gt;Then hand over properly.&lt;/p&gt;

&lt;p&gt;One note on what happened,&lt;br&gt;
what is still open,&lt;br&gt;
what you changed.&lt;/p&gt;

&lt;p&gt;Done like that,&lt;br&gt;
the rota stops being a tax&lt;br&gt;
on everyone's real work.&lt;/p&gt;

&lt;p&gt;It becomes the week&lt;br&gt;
the team spends&lt;br&gt;
making the system&lt;br&gt;
easier to be woken by.&lt;/p&gt;

&lt;p&gt;And the migration&lt;br&gt;
goes to somebody&lt;br&gt;
who can give it&lt;br&gt;
every part of their attention.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>focus</category>
      <category>productivity</category>
      <category>sre</category>
    </item>
    <item>
      <title>Your Best Day Is Not Your Baseline</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:20:45 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/your-best-day-is-not-your-baseline-32b0</link>
      <guid>https://dev.to/sergueyasaelshinder/your-best-day-is-not-your-baseline-32b0</guid>
      <description>&lt;p&gt;There was a Tuesday&lt;br&gt;
two years ago&lt;br&gt;
when everything worked.&lt;/p&gt;

&lt;p&gt;You understood the problem&lt;br&gt;
by half past nine.&lt;br&gt;
The design fell out of it.&lt;br&gt;
The tests went green&lt;br&gt;
on the first run.&lt;/p&gt;

&lt;p&gt;By the afternoon&lt;br&gt;
you had shipped&lt;br&gt;
what the plan said&lt;br&gt;
would take a week.&lt;/p&gt;

&lt;p&gt;You still think about that day.&lt;/p&gt;

&lt;p&gt;Worse, you think of it&lt;br&gt;
as your speed.&lt;/p&gt;

&lt;p&gt;Every estimate you give&lt;br&gt;
is quietly priced&lt;br&gt;
at Tuesday.&lt;/p&gt;

&lt;p&gt;Every ordinary Thursday,&lt;br&gt;
when the build is slow&lt;br&gt;
and the problem is murky&lt;br&gt;
and somebody needs you&lt;br&gt;
for forty minutes,&lt;br&gt;
feels like a decline&lt;br&gt;
from the person you really are.&lt;/p&gt;

&lt;p&gt;It is not a decline.&lt;/p&gt;

&lt;p&gt;It is the job,&lt;br&gt;
at the rate the job actually runs.&lt;/p&gt;

&lt;p&gt;The best day was real.&lt;/p&gt;

&lt;p&gt;It was also the top of a range,&lt;br&gt;
reached once,&lt;br&gt;
with a clean week behind it,&lt;br&gt;
a problem shaped&lt;br&gt;
exactly like something you knew,&lt;br&gt;
and nobody asking for anything.&lt;/p&gt;

&lt;p&gt;Treating the peak as normal&lt;br&gt;
does two kinds of damage.&lt;/p&gt;

&lt;p&gt;Outward, you promise Tuesday&lt;br&gt;
and deliver Thursday,&lt;br&gt;
and people learn&lt;br&gt;
to add their own padding&lt;br&gt;
to what you say,&lt;br&gt;
which is a quieter way&lt;br&gt;
of trusting you less.&lt;/p&gt;

&lt;p&gt;Inward, you are always behind&lt;br&gt;
an imaginary colleague,&lt;br&gt;
the one who has that day every day,&lt;br&gt;
and you read an average week&lt;br&gt;
as evidence that something is wrong with you.&lt;/p&gt;

&lt;p&gt;So find your middle.&lt;/p&gt;

&lt;p&gt;Look at the last ten things you finished.&lt;br&gt;
Not the one you are proud of.&lt;br&gt;
All ten.&lt;/p&gt;

&lt;p&gt;How long did they take,&lt;br&gt;
from start to done,&lt;br&gt;
including the waiting&lt;br&gt;
and the interruptions&lt;br&gt;
and the bit you redid?&lt;/p&gt;

&lt;p&gt;The number in the middle of that list&lt;br&gt;
is your pace.&lt;/p&gt;

&lt;p&gt;Plan from it.&lt;br&gt;
Promise from it.&lt;/p&gt;

&lt;p&gt;Keep the best day&lt;br&gt;
where it belongs,&lt;br&gt;
as a rare thing&lt;br&gt;
you are allowed to enjoy,&lt;br&gt;
not a standard&lt;br&gt;
you owe anybody,&lt;br&gt;
least of all yourself.&lt;/p&gt;

&lt;p&gt;A middle you can hit&lt;br&gt;
every week&lt;br&gt;
is worth more to a team&lt;br&gt;
than a peak&lt;br&gt;
they have to schedule around&lt;br&gt;
and cannot count on.&lt;/p&gt;

&lt;p&gt;And on the murky Thursday&lt;br&gt;
you will know&lt;br&gt;
you are not slipping.&lt;/p&gt;

&lt;p&gt;You are exactly on pace.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>mindset</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>You Cannot Hear How Long Your Intro Is Anymore</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:20:13 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/you-cannot-hear-how-long-your-intro-is-anymore-5apf</link>
      <guid>https://dev.to/sergueyasaelshinder/you-cannot-hear-how-long-your-intro-is-anymore-5apf</guid>
      <description>&lt;p&gt;The song opens with&lt;br&gt;
sixteen bars of guitar&lt;br&gt;
before anyone sings.&lt;/p&gt;

&lt;p&gt;To you it feels like&lt;br&gt;
a breath in.&lt;/p&gt;

&lt;p&gt;You have heard it&lt;br&gt;
four hundred times.&lt;/p&gt;

&lt;p&gt;You know what is coming,&lt;br&gt;
so the waiting is full.&lt;br&gt;
Every bar is leaning&lt;br&gt;
toward a chorus&lt;br&gt;
that already exists in your head.&lt;/p&gt;

&lt;p&gt;The listener has none of that.&lt;/p&gt;

&lt;p&gt;They have sixteen bars&lt;br&gt;
of a stranger's guitar,&lt;br&gt;
a phone in their pocket,&lt;br&gt;
and a friend beside them&lt;br&gt;
halfway through a sentence.&lt;/p&gt;

&lt;p&gt;This is what repetition&lt;br&gt;
does to a writer.&lt;/p&gt;

&lt;p&gt;It fills the gaps&lt;br&gt;
with what you already know,&lt;br&gt;
and then it hides&lt;br&gt;
that it is doing it.&lt;/p&gt;

&lt;p&gt;The long intro.&lt;br&gt;
The second verse&lt;br&gt;
that says the first verse again.&lt;br&gt;
The solo that is lovely&lt;br&gt;
and about eight bars&lt;br&gt;
past lovely.&lt;br&gt;
The ending that fades&lt;br&gt;
for longer than&lt;br&gt;
anyone would wait for a bus.&lt;/p&gt;

&lt;p&gt;You cannot hear any of it,&lt;br&gt;
and your ear is not the problem.&lt;/p&gt;

&lt;p&gt;You are the one person&lt;br&gt;
who can never again hear&lt;br&gt;
this song for the first time.&lt;/p&gt;

&lt;p&gt;So stop asking your ear&lt;br&gt;
a question it cannot answer.&lt;/p&gt;

&lt;p&gt;Watch somebody else's attention.&lt;/p&gt;

&lt;p&gt;Play it to a person&lt;br&gt;
who has not heard it,&lt;br&gt;
and do not look at their face&lt;br&gt;
while it starts.&lt;br&gt;
Look at their hands.&lt;/p&gt;

&lt;p&gt;Note the exact second&lt;br&gt;
they reach for the phone,&lt;br&gt;
or the drink,&lt;br&gt;
or start talking.&lt;/p&gt;

&lt;p&gt;That is the length&lt;br&gt;
your intro actually is.&lt;/p&gt;

&lt;p&gt;Do it with three people.&lt;br&gt;
If they drift at the same place,&lt;br&gt;
the song is telling you&lt;br&gt;
where it goes slack.&lt;/p&gt;

&lt;p&gt;Time the first line of the vocal&lt;br&gt;
with a stopwatch,&lt;br&gt;
and write the number&lt;br&gt;
next to the title.&lt;/p&gt;

&lt;p&gt;Then cut something,&lt;br&gt;
even if it hurts,&lt;br&gt;
and play it to somebody new.&lt;/p&gt;

&lt;p&gt;You will not miss the bars you removed.&lt;/p&gt;

&lt;p&gt;Neither will they.&lt;/p&gt;

&lt;p&gt;They will simply&lt;br&gt;
still be there&lt;br&gt;
when the voice comes in.&lt;/p&gt;

&lt;p&gt;Your version is not the long one.&lt;/p&gt;

&lt;p&gt;It is the one you can no longer hear.&lt;/p&gt;

&lt;p&gt;The shorter one&lt;br&gt;
is the song a stranger&lt;br&gt;
gets to meet.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>music</category>
      <category>songwriting</category>
      <category>creativity</category>
    </item>
    <item>
      <title>The Package the Model Recommended Did Not Exist</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:19:41 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/the-package-the-model-recommended-did-not-exist-3nah</link>
      <guid>https://dev.to/sergueyasaelshinder/the-package-the-model-recommended-did-not-exist-3nah</guid>
      <description>&lt;p&gt;You asked for a way to parse&lt;br&gt;
an awkward date format,&lt;br&gt;
and the answer was tidy.&lt;/p&gt;

&lt;p&gt;Install this package.&lt;br&gt;
Import this function.&lt;br&gt;
Three lines.&lt;/p&gt;

&lt;p&gt;The name was perfect.&lt;/p&gt;

&lt;p&gt;It sounded exactly like&lt;br&gt;
the thing you would expect&lt;br&gt;
somebody to have written.&lt;/p&gt;

&lt;p&gt;That is the problem.&lt;/p&gt;

&lt;p&gt;A model producing a dependency name&lt;br&gt;
is doing what it does&lt;br&gt;
with every other word.&lt;/p&gt;

&lt;p&gt;It predicts what a name&lt;br&gt;
in that position&lt;br&gt;
would plausibly be.&lt;/p&gt;

&lt;p&gt;Most of the time&lt;br&gt;
the plausible name is real,&lt;br&gt;
because real names are plausible.&lt;/p&gt;

&lt;p&gt;Some of the time&lt;br&gt;
it is only plausible.&lt;/p&gt;

&lt;p&gt;And a name that a model&lt;br&gt;
suggests to one person&lt;br&gt;
it will suggest to thousands,&lt;br&gt;
because it is the same model&lt;br&gt;
answering the same kind of question.&lt;/p&gt;

&lt;p&gt;So the invented name repeats.&lt;/p&gt;

&lt;p&gt;Which means somebody&lt;br&gt;
can collect them,&lt;br&gt;
register the popular ones&lt;br&gt;
on a public registry,&lt;br&gt;
and wait.&lt;/p&gt;

&lt;p&gt;No break-in.&lt;br&gt;
No stolen password.&lt;/p&gt;

&lt;p&gt;Just a package&lt;br&gt;
that did not exist&lt;br&gt;
until the model kept naming it,&lt;br&gt;
with an install script&lt;br&gt;
that runs on your laptop,&lt;br&gt;
with your tokens in the environment,&lt;br&gt;
the moment you type the command&lt;br&gt;
the answer gave you.&lt;/p&gt;

&lt;p&gt;Reading the code will not save you.&lt;/p&gt;

&lt;p&gt;You were looking at three lines&lt;br&gt;
of sensible code.&lt;br&gt;
The danger was never in them.&lt;br&gt;
It was in the one line&lt;br&gt;
that fetched somebody else's.&lt;/p&gt;

&lt;p&gt;So put the check where the risk is.&lt;/p&gt;

&lt;p&gt;Before a new name goes in,&lt;br&gt;
look it up yourself.&lt;br&gt;
Not through the assistant.&lt;br&gt;
On the registry.&lt;/p&gt;

&lt;p&gt;How old is it.&lt;br&gt;
Who publishes it.&lt;br&gt;
How many people depend on it.&lt;br&gt;
Does it have a repository,&lt;br&gt;
and does that repository&lt;br&gt;
look like somebody's work&lt;br&gt;
or like a costume.&lt;/p&gt;

&lt;p&gt;A week old,&lt;br&gt;
one version,&lt;br&gt;
one maintainer,&lt;br&gt;
and a name that sounds&lt;br&gt;
like it has always existed,&lt;br&gt;
is the exact shape&lt;br&gt;
of this trap.&lt;/p&gt;

&lt;p&gt;Then make it structural.&lt;/p&gt;

&lt;p&gt;Install from a lockfile in the pipeline.&lt;br&gt;
Put new dependencies&lt;br&gt;
through review as their own change,&lt;br&gt;
where the only question&lt;br&gt;
is whether this thing&lt;br&gt;
should be allowed in at all.&lt;/p&gt;

&lt;p&gt;The model can suggest.&lt;/p&gt;

&lt;p&gt;The registry is where&lt;br&gt;
you find out&lt;br&gt;
what you are about to run.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Anyone With the Link Means Anyone</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:19:09 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/anyone-with-the-link-means-anyone-3fl3</link>
      <guid>https://dev.to/sergueyasaelshinder/anyone-with-the-link-means-anyone-3fl3</guid>
      <description>&lt;p&gt;Somebody needed a contract&lt;br&gt;
looked at by a lawyer&lt;br&gt;
outside the company.&lt;/p&gt;

&lt;p&gt;The lawyer had no account.&lt;/p&gt;

&lt;p&gt;So the file got a link,&lt;br&gt;
long, random, impossible to guess,&lt;br&gt;
and the setting said&lt;br&gt;
anyone with the link can view.&lt;/p&gt;

&lt;p&gt;It was a sensible choice.&lt;/p&gt;

&lt;p&gt;The link could not be guessed.&lt;/p&gt;

&lt;p&gt;It did not need to be.&lt;/p&gt;

&lt;p&gt;Watch where it went.&lt;/p&gt;

&lt;p&gt;Into an email,&lt;br&gt;
which was forwarded&lt;br&gt;
to a colleague of the lawyer,&lt;br&gt;
and then to a client&lt;br&gt;
who did not need&lt;br&gt;
the pricing schedule on page nine.&lt;/p&gt;

&lt;p&gt;Into a chat,&lt;br&gt;
where the preview service&lt;br&gt;
fetched it&lt;br&gt;
to draw a tidy card,&lt;br&gt;
from a server you have never heard of.&lt;/p&gt;

&lt;p&gt;Into a ticket,&lt;br&gt;
pasted as context,&lt;br&gt;
in a tracker&lt;br&gt;
that forty contractors can search.&lt;/p&gt;

&lt;p&gt;Into a browser history&lt;br&gt;
on a shared machine&lt;br&gt;
in a hotel business centre.&lt;/p&gt;

&lt;p&gt;And back out again,&lt;br&gt;
eighteen months later,&lt;br&gt;
still working,&lt;br&gt;
because nothing ever told it&lt;br&gt;
to stop.&lt;/p&gt;

&lt;p&gt;An unguessable link&lt;br&gt;
is a password&lt;br&gt;
that gets pasted in public&lt;br&gt;
as a matter of routine.&lt;/p&gt;

&lt;p&gt;It is a key&lt;br&gt;
with no name attached,&lt;br&gt;
no expiry,&lt;br&gt;
and no record of who turned it.&lt;/p&gt;

&lt;p&gt;The door was built properly.&lt;/p&gt;

&lt;p&gt;Its key simply travels&lt;br&gt;
through every channel&lt;br&gt;
you use to send links,&lt;br&gt;
which is all of them.&lt;/p&gt;

&lt;p&gt;So treat the link as what it is.&lt;/p&gt;

&lt;p&gt;A credential.&lt;/p&gt;

&lt;p&gt;Give it an expiry by default,&lt;br&gt;
and make forever&lt;br&gt;
something a person has to choose&lt;br&gt;
and has to justify.&lt;/p&gt;

&lt;p&gt;Scope it to a single file,&lt;br&gt;
not the folder&lt;br&gt;
that will fill up next month.&lt;/p&gt;

&lt;p&gt;Make it revocable&lt;br&gt;
without deleting the document.&lt;/p&gt;

&lt;p&gt;Record every open,&lt;br&gt;
so that when somebody asks&lt;br&gt;
who has seen this,&lt;br&gt;
you have an answer&lt;br&gt;
that is not a shrug.&lt;/p&gt;

&lt;p&gt;And for anything&lt;br&gt;
you would not read aloud&lt;br&gt;
in a crowded lift,&lt;br&gt;
ask for a sign-in,&lt;br&gt;
even a one-time code by email,&lt;br&gt;
so the link finds a person&lt;br&gt;
instead of anybody.&lt;/p&gt;

&lt;p&gt;Then go and look&lt;br&gt;
at what your own account&lt;br&gt;
has shared this way.&lt;/p&gt;

&lt;p&gt;Sort it by age.&lt;/p&gt;

&lt;p&gt;The oldest link on that list&lt;br&gt;
is still valid,&lt;br&gt;
and you do not know&lt;br&gt;
where it has been.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>security</category>
      <category>privacy</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your Function Changed a List It Was Only Lent</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Sat, 26 Sep 2026 09:18:37 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/your-function-changed-a-list-it-was-only-lent-4a4j</link>
      <guid>https://dev.to/sergueyasaelshinder/your-function-changed-a-list-it-was-only-lent-4a4j</guid>
      <description>&lt;p&gt;The report came out right&lt;br&gt;
on Monday&lt;br&gt;
and in the wrong order on Tuesday.&lt;/p&gt;

&lt;p&gt;Nobody had touched the report.&lt;/p&gt;

&lt;p&gt;Somebody had touched a helper&lt;br&gt;
three calls away,&lt;br&gt;
a small function&lt;br&gt;
that found the top five customers.&lt;/p&gt;

&lt;p&gt;It sorted the list it was handed.&lt;/p&gt;

&lt;p&gt;In place.&lt;/p&gt;

&lt;p&gt;Because that is what the sort method&lt;br&gt;
in front of them did,&lt;br&gt;
and it was one line shorter&lt;br&gt;
than making a copy.&lt;/p&gt;

&lt;p&gt;The helper returned the right five.&lt;/p&gt;

&lt;p&gt;Its own tests were green.&lt;/p&gt;

&lt;p&gt;And every caller&lt;br&gt;
who had handed it a list&lt;br&gt;
got that list back&lt;br&gt;
rearranged,&lt;br&gt;
with no sign on the call&lt;br&gt;
that anything had happened.&lt;/p&gt;

&lt;p&gt;This is the bug&lt;br&gt;
that ruins an afternoon&lt;br&gt;
precisely because it is nowhere.&lt;/p&gt;

&lt;p&gt;You read the report code.&lt;br&gt;
It is correct.&lt;/p&gt;

&lt;p&gt;You read the helper.&lt;br&gt;
It is correct.&lt;/p&gt;

&lt;p&gt;The fault lives&lt;br&gt;
in the space between them,&lt;br&gt;
in an assumption&lt;br&gt;
neither of them wrote down,&lt;br&gt;
which is who owns the list.&lt;/p&gt;

&lt;p&gt;It has relatives.&lt;/p&gt;

&lt;p&gt;A function that pops the key&lt;br&gt;
it was interested in&lt;br&gt;
off a dictionary it did not create.&lt;/p&gt;

&lt;p&gt;A validator that trims the strings&lt;br&gt;
of the object it is validating,&lt;br&gt;
so checking the input&lt;br&gt;
quietly changes the input.&lt;/p&gt;

&lt;p&gt;A default argument&lt;br&gt;
that is one shared list&lt;br&gt;
for every call,&lt;br&gt;
growing a little each time.&lt;/p&gt;

&lt;p&gt;A config object passed to three services,&lt;br&gt;
and the first one to start up&lt;br&gt;
adjusts a setting for itself.&lt;/p&gt;

&lt;p&gt;In each case&lt;br&gt;
a caller lent something&lt;br&gt;
and got back something else.&lt;/p&gt;

&lt;p&gt;The rule is easy to say.&lt;/p&gt;

&lt;p&gt;A parameter is borrowed.&lt;/p&gt;

&lt;p&gt;Read it.&lt;br&gt;
Build your answer from it.&lt;br&gt;
Return the answer as a new thing.&lt;/p&gt;

&lt;p&gt;Leave what you were lent&lt;br&gt;
the way it arrived.&lt;/p&gt;

&lt;p&gt;When a function truly exists&lt;br&gt;
to change what it was given,&lt;br&gt;
put that in the name,&lt;br&gt;
so the change is visible&lt;br&gt;
at the place where it is called.&lt;/p&gt;

&lt;p&gt;Sort in place.&lt;br&gt;
Normalise the order.&lt;br&gt;
Strip the payload.&lt;/p&gt;

&lt;p&gt;A verb the caller can see&lt;br&gt;
is a warning they can read.&lt;/p&gt;

&lt;p&gt;And where the language lets you,&lt;br&gt;
make the borrowing enforceable.&lt;br&gt;
A read only view.&lt;br&gt;
An immutable collection.&lt;br&gt;
A type that refuses the edit&lt;br&gt;
before a reviewer has to.&lt;/p&gt;

&lt;p&gt;Then the question&lt;br&gt;
of who changed the list&lt;br&gt;
has one answer,&lt;br&gt;
and it is in the code&lt;br&gt;
you are already reading.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>programming</category>
      <category>cleancode</category>
      <category>refactoring</category>
    </item>
    <item>
      <title>You Built This for a Body Like Yours</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:17:29 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/you-built-this-for-a-body-like-yours-3lh9</link>
      <guid>https://dev.to/sergueyasaelshinder/you-built-this-for-a-body-like-yours-3lh9</guid>
      <description>&lt;p&gt;Every screen you have shipped&lt;br&gt;
was checked by one body.&lt;/p&gt;

&lt;p&gt;Yours.&lt;/p&gt;

&lt;p&gt;Your eyesight, at the distance&lt;br&gt;
you sit from that monitor.&lt;br&gt;
Your hand on a mouse&lt;br&gt;
that has never once missed.&lt;br&gt;
Your ears, which were not needed.&lt;br&gt;
Your patience, which was endless,&lt;br&gt;
because you already knew&lt;br&gt;
where everything was.&lt;/p&gt;

&lt;p&gt;That was never decided.&lt;/p&gt;

&lt;p&gt;It is only who was in the room.&lt;/p&gt;

&lt;p&gt;Look at what it leaves behind.&lt;/p&gt;

&lt;p&gt;A menu that opens on hover,&lt;br&gt;
which means it does not open&lt;br&gt;
for a finger or a keyboard.&lt;/p&gt;

&lt;p&gt;An error announced&lt;br&gt;
by turning a border red,&lt;br&gt;
to somebody who cannot see red.&lt;/p&gt;

&lt;p&gt;A container with a fixed height,&lt;br&gt;
generous until the text is set&lt;br&gt;
to twice the size,&lt;br&gt;
and now the confirm button&lt;br&gt;
is below the edge of a box&lt;br&gt;
that does not scroll.&lt;/p&gt;

&lt;p&gt;A dialog a keyboard can open&lt;br&gt;
and cannot close.&lt;/p&gt;

&lt;p&gt;A form that times out&lt;br&gt;
according to how fast&lt;br&gt;
you fill it in.&lt;/p&gt;

&lt;p&gt;A price rendered into an image&lt;br&gt;
so the font would be exact,&lt;br&gt;
and now it cannot be enlarged,&lt;br&gt;
selected, translated&lt;br&gt;
or read out loud.&lt;/p&gt;

&lt;p&gt;None of that appears in your numbers.&lt;/p&gt;

&lt;p&gt;The people who cannot finish&lt;br&gt;
do not write in to explain.&lt;/p&gt;

&lt;p&gt;They go,&lt;br&gt;
and the ones who reach support&lt;br&gt;
are the ones&lt;br&gt;
who could still reach support.&lt;/p&gt;

&lt;p&gt;Now the direction of travel.&lt;/p&gt;

&lt;p&gt;An audience only ever widens,&lt;br&gt;
and it ages every year,&lt;br&gt;
which your interface does not.&lt;/p&gt;

&lt;p&gt;Everyone arrives eventually&lt;br&gt;
at larger text,&lt;br&gt;
stronger contrast,&lt;br&gt;
one hand on a train,&lt;br&gt;
sun on the screen,&lt;br&gt;
an afternoon when the small grey label&lt;br&gt;
is simply not there.&lt;/p&gt;

&lt;p&gt;And this is skeleton, not paint.&lt;/p&gt;

&lt;p&gt;A div with a click handler&lt;br&gt;
has no name, no role, no state,&lt;br&gt;
and no position in the keyboard order.&lt;br&gt;
Ten of those inside a design system&lt;br&gt;
is one defect&lt;br&gt;
stamped onto every page&lt;br&gt;
you will ever ship from it.&lt;/p&gt;

&lt;p&gt;Which is why the retrofit&lt;br&gt;
gets priced like a rewrite,&lt;br&gt;
and why the only cheap hour&lt;br&gt;
is an early one.&lt;/p&gt;

&lt;p&gt;Take that hour this week.&lt;/p&gt;

&lt;p&gt;Unplug the mouse&lt;br&gt;
and do your own main flow.&lt;br&gt;
Then set the text to double&lt;br&gt;
and do it again.&lt;/p&gt;

&lt;p&gt;You will find things&lt;br&gt;
that have been sitting there for years.&lt;/p&gt;

&lt;p&gt;You are not building&lt;br&gt;
for strangers with a condition.&lt;/p&gt;

&lt;p&gt;You are building&lt;br&gt;
for yourself at sixty,&lt;br&gt;
and that person&lt;br&gt;
is not going to file a bug.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>a11y</category>
      <category>ux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your Build Time Is Choosing What You Think About</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:16:57 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/your-build-time-is-choosing-what-you-think-about-4p67</link>
      <guid>https://dev.to/sergueyasaelshinder/your-build-time-is-choosing-what-you-think-about-4p67</guid>
      <description>&lt;p&gt;Time the loop you are really in.&lt;/p&gt;

&lt;p&gt;Save the file.&lt;br&gt;
Run the thing.&lt;br&gt;
Find out whether you were right.&lt;/p&gt;

&lt;p&gt;For a great many people&lt;br&gt;
that round trip is&lt;br&gt;
a little over two minutes.&lt;/p&gt;

&lt;p&gt;Too long to sit and watch it.&lt;br&gt;
Far too short to start anything.&lt;/p&gt;

&lt;p&gt;So you fill it.&lt;/p&gt;

&lt;p&gt;The inbox. The channel.&lt;br&gt;
The review somebody tagged you on.&lt;br&gt;
The thread about next quarter&lt;br&gt;
that does not need you.&lt;/p&gt;

&lt;p&gt;Then the run finishes&lt;br&gt;
and you come back&lt;br&gt;
as a slightly different person,&lt;br&gt;
holding a slightly different problem,&lt;br&gt;
and you spend the next half minute&lt;br&gt;
remembering what you were testing&lt;br&gt;
and why.&lt;/p&gt;

&lt;p&gt;Do that thirty times in a day&lt;br&gt;
and you have not been interrupted once.&lt;/p&gt;

&lt;p&gt;Nobody came to your desk.&lt;br&gt;
You chose every one of those detours.&lt;/p&gt;

&lt;p&gt;And the day still went&lt;br&gt;
the way an interrupted day goes,&lt;br&gt;
because the gap was there,&lt;br&gt;
thirty times,&lt;br&gt;
and a gap that length&lt;br&gt;
has no good uses.&lt;/p&gt;

&lt;p&gt;This is where the conversation&lt;br&gt;
about discipline goes wrong.&lt;/p&gt;

&lt;p&gt;You are not weak for filling it.&lt;/p&gt;

&lt;p&gt;You built a rhythm&lt;br&gt;
in which stopping is compulsory,&lt;br&gt;
at an interval your tooling picked,&lt;br&gt;
and then asked yourself&lt;br&gt;
to have the strength&lt;br&gt;
to stand still inside it,&lt;br&gt;
thirty times, every day.&lt;/p&gt;

&lt;p&gt;So work on the loop,&lt;br&gt;
not on the willpower.&lt;/p&gt;

&lt;p&gt;Find out what the number is.&lt;br&gt;
Not what you assume it is.&lt;br&gt;
Measure it on the machine&lt;br&gt;
you actually use.&lt;/p&gt;

&lt;p&gt;Then treat it as a defect,&lt;br&gt;
because it is the most expensive one&lt;br&gt;
you own.&lt;br&gt;
Run the single test, not the suite.&lt;br&gt;
Keep the process alive&lt;br&gt;
between attempts.&lt;br&gt;
Stop rebuilding&lt;br&gt;
what did not change.&lt;/p&gt;

&lt;p&gt;And where the wait genuinely&lt;br&gt;
cannot be shortened,&lt;br&gt;
give it one job and only one.&lt;/p&gt;

&lt;p&gt;Stand up. Look at something far away.&lt;br&gt;
Write the next line of the note&lt;br&gt;
about what you are trying&lt;br&gt;
and what you expect to see.&lt;/p&gt;

&lt;p&gt;Anything that hands you back&lt;br&gt;
the same thought&lt;br&gt;
that you were holding&lt;br&gt;
when you pressed the key.&lt;/p&gt;

&lt;p&gt;A good day is not measured&lt;br&gt;
by the hours you sat there.&lt;/p&gt;

&lt;p&gt;It is measured by how often&lt;br&gt;
you got to ask a question&lt;br&gt;
and hear the answer&lt;br&gt;
while the question&lt;br&gt;
was still yours.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>focus</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Half Your Review Comments Are Autobiography</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:16:25 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/half-your-review-comments-are-autobiography-5g5k</link>
      <guid>https://dev.to/sergueyasaelshinder/half-your-review-comments-are-autobiography-5g5k</guid>
      <description>&lt;p&gt;Read your last twenty review comments&lt;br&gt;
as though a stranger wrote them.&lt;/p&gt;

&lt;p&gt;A pattern comes up&lt;br&gt;
that has very little to do&lt;br&gt;
with the code in front of you.&lt;/p&gt;

&lt;p&gt;You always ask about the null.&lt;br&gt;
You always ask what happens&lt;br&gt;
when the list comes back empty.&lt;br&gt;
You always want the timeout named.&lt;br&gt;
You block anything that catches&lt;br&gt;
an exception and carries on.&lt;/p&gt;

&lt;p&gt;Every one of those is reasonable.&lt;/p&gt;

&lt;p&gt;Not one of them&lt;br&gt;
came out of that diff.&lt;/p&gt;

&lt;p&gt;They came out of a Thursday&lt;br&gt;
several years ago.&lt;/p&gt;

&lt;p&gt;Somebody lost a weekend&lt;br&gt;
to an empty list,&lt;br&gt;
and it was you,&lt;br&gt;
and you have been reviewing&lt;br&gt;
that incident ever since&lt;br&gt;
in other people's branches.&lt;/p&gt;

&lt;p&gt;This is how craft actually moves&lt;br&gt;
between people,&lt;br&gt;
and most of the time it works.&lt;/p&gt;

&lt;p&gt;The cost lands on the author.&lt;/p&gt;

&lt;p&gt;They cannot tell which comment&lt;br&gt;
is a rule the team agreed,&lt;br&gt;
which is a real property&lt;br&gt;
of this system,&lt;br&gt;
and which is your history&lt;br&gt;
wearing the voice of a standard.&lt;/p&gt;

&lt;p&gt;So they treat all of it as law,&lt;br&gt;
because you are senior&lt;br&gt;
and arguing is expensive&lt;br&gt;
and they have a Friday to get to.&lt;/p&gt;

&lt;p&gt;Now your scars are the house style,&lt;br&gt;
having never once been discussed,&lt;br&gt;
and whoever comes after you&lt;br&gt;
inherits them&lt;br&gt;
with no idea where they came from&lt;br&gt;
or whether they still apply&lt;br&gt;
to anything.&lt;/p&gt;

&lt;p&gt;There is a tell.&lt;/p&gt;

&lt;p&gt;You are certain, you are brief,&lt;br&gt;
and you cannot name the evidence&lt;br&gt;
that would move you.&lt;/p&gt;

&lt;p&gt;Certainty that cannot cite&lt;br&gt;
its own source&lt;br&gt;
is a memory with authority&lt;br&gt;
attached to it.&lt;/p&gt;

&lt;p&gt;The remedy is one clause long.&lt;/p&gt;

&lt;p&gt;Say where it came from.&lt;/p&gt;

&lt;p&gt;This is a rule we agreed in March.&lt;/p&gt;

&lt;p&gt;This service has been bitten here twice,&lt;br&gt;
and here is the incident.&lt;/p&gt;

&lt;p&gt;Or, plainly,&lt;br&gt;
I lost a weekend to this once&lt;br&gt;
and I have been nervous about it since,&lt;br&gt;
so push back if I am wrong.&lt;/p&gt;

&lt;p&gt;That last sentence costs nothing,&lt;br&gt;
and it turns the exchange&lt;br&gt;
from obedience&lt;br&gt;
into two people thinking.&lt;/p&gt;

&lt;p&gt;Your experience is the most&lt;br&gt;
useful thing you have to hand over.&lt;/p&gt;

&lt;p&gt;Label it,&lt;br&gt;
so the next person can weigh it&lt;br&gt;
instead of simply obeying it.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>mindset</category>
      <category>codereview</category>
      <category>career</category>
    </item>
    <item>
      <title>You Wrote a Part for a Band You Do Not Have</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:15:53 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/you-wrote-a-part-for-a-band-you-do-not-have-2e59</link>
      <guid>https://dev.to/sergueyasaelshinder/you-wrote-a-part-for-a-band-you-do-not-have-2e59</guid>
      <description>&lt;p&gt;The recording is finished&lt;br&gt;
and it is the best thing&lt;br&gt;
you have ever made.&lt;/p&gt;

&lt;p&gt;Two guitars in the verse.&lt;br&gt;
Four in the chorus,&lt;br&gt;
because nothing stopped you.&lt;/p&gt;

&lt;p&gt;A harmony stack&lt;br&gt;
sung one voice at a time&lt;br&gt;
by a person with one voice.&lt;/p&gt;

&lt;p&gt;A keyboard pad underneath&lt;br&gt;
all of it,&lt;br&gt;
so quiet that nobody notices it&lt;br&gt;
until the moment it is gone.&lt;/p&gt;

&lt;p&gt;Then somebody books you a gig.&lt;/p&gt;

&lt;p&gt;There are four of you.&lt;br&gt;
Eight hands.&lt;br&gt;
One of you sings.&lt;/p&gt;

&lt;p&gt;And the song does not exist&lt;br&gt;
in a form that four people&lt;br&gt;
can play in a room.&lt;/p&gt;

&lt;p&gt;What happens next is familiar.&lt;/p&gt;

&lt;p&gt;You put the pad on a laptop,&lt;br&gt;
and now the band has a member&lt;br&gt;
who cannot listen,&lt;br&gt;
cannot slow down,&lt;br&gt;
cannot find its way back in&lt;br&gt;
after the drummer drops a stick.&lt;/p&gt;

&lt;p&gt;Or you give the pad&lt;br&gt;
to the guitarist,&lt;br&gt;
who then cannot play the line&lt;br&gt;
that was the reason&lt;br&gt;
the song exists.&lt;/p&gt;

&lt;p&gt;Or you play it stripped,&lt;br&gt;
and it is thin,&lt;br&gt;
and the room is comparing it&lt;br&gt;
with the version&lt;br&gt;
you taught them to expect.&lt;/p&gt;

&lt;p&gt;None of that is the recording's fault.&lt;/p&gt;

&lt;p&gt;The recording was an arrangement&lt;br&gt;
for a band that does not exist,&lt;br&gt;
written by one person&lt;br&gt;
who could add one more part,&lt;br&gt;
at a time,&lt;br&gt;
alone,&lt;br&gt;
for as long as the night held.&lt;/p&gt;

&lt;p&gt;A room does not work like that.&lt;/p&gt;

&lt;p&gt;In a room everything happens at once,&lt;br&gt;
by people, with hands,&lt;br&gt;
who have to hear each other&lt;br&gt;
to stay together.&lt;/p&gt;

&lt;p&gt;So ask the question early.&lt;/p&gt;

&lt;p&gt;Who plays this.&lt;/p&gt;

&lt;p&gt;Not in principle. By name.&lt;/p&gt;

&lt;p&gt;And if the honest answer&lt;br&gt;
is that the studio plays it,&lt;br&gt;
then you have two songs&lt;br&gt;
and it is better to know.&lt;/p&gt;

&lt;p&gt;One of them is for speakers.&lt;br&gt;
One of them is for the four of you.&lt;br&gt;
They are allowed to differ,&lt;br&gt;
and the differences&lt;br&gt;
are where arrangements&lt;br&gt;
actually get made.&lt;/p&gt;

&lt;p&gt;The version you can perform&lt;br&gt;
is the real one.&lt;/p&gt;

&lt;p&gt;Everything else is a very good record&lt;br&gt;
of something you cannot do yet.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>music</category>
      <category>creativity</category>
      <category>teamwork</category>
    </item>
    <item>
      <title>The Model Cannot Miss What It Never Received</title>
      <dc:creator>Serguey Asael Shinder</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:15:20 +0000</pubDate>
      <link>https://dev.to/sergueyasaelshinder/the-model-cannot-miss-what-it-never-received-4jj8</link>
      <guid>https://dev.to/sergueyasaelshinder/the-model-cannot-miss-what-it-never-received-4jj8</guid>
      <description>&lt;p&gt;You pasted the file&lt;br&gt;
and asked why the totals are wrong.&lt;/p&gt;

&lt;p&gt;The answer came back confident&lt;br&gt;
and slightly beside the point.&lt;/p&gt;

&lt;p&gt;You went round three times,&lt;br&gt;
sharpened the question,&lt;br&gt;
got better prose&lt;br&gt;
and the same wrongness.&lt;/p&gt;

&lt;p&gt;The file was two thousand lines.&lt;/p&gt;

&lt;p&gt;About nine hundred of them arrived.&lt;/p&gt;

&lt;p&gt;Nothing told you that.&lt;/p&gt;

&lt;p&gt;This is the quiet failure&lt;br&gt;
in every tool that reads on your behalf.&lt;/p&gt;

&lt;p&gt;A retriever returns three passages&lt;br&gt;
because three was the number&lt;br&gt;
in a config file&lt;br&gt;
somebody set in June.&lt;/p&gt;

&lt;p&gt;A file reader stops at a line limit&lt;br&gt;
that was chosen with logs in mind.&lt;/p&gt;

&lt;p&gt;A window drops the oldest turns&lt;br&gt;
to make room for the newest,&lt;br&gt;
including the one&lt;br&gt;
where you stated the constraint&lt;br&gt;
that the whole question rests on.&lt;/p&gt;

&lt;p&gt;An indexer skips anything&lt;br&gt;
over a size,&lt;br&gt;
and the large file&lt;br&gt;
is the interesting file.&lt;/p&gt;

&lt;p&gt;None of them raise an error.&lt;br&gt;
They all report success.&lt;/p&gt;

&lt;p&gt;And the model does&lt;br&gt;
the only thing it can,&lt;br&gt;
which is answer from what it holds,&lt;br&gt;
with no way of knowing&lt;br&gt;
that the part that mattered&lt;br&gt;
fell off the back.&lt;/p&gt;

&lt;p&gt;To it, an absence&lt;br&gt;
is indistinguishable&lt;br&gt;
from a thing that is not there.&lt;/p&gt;

&lt;p&gt;So you are not arguing&lt;br&gt;
with a bad answer.&lt;/p&gt;

&lt;p&gt;You are arguing about&lt;br&gt;
a different program&lt;br&gt;
from the one you meant to show it.&lt;/p&gt;

&lt;p&gt;Verify the input like input.&lt;/p&gt;

&lt;p&gt;Ask it to quote the last line&lt;br&gt;
of what it received,&lt;br&gt;
and compare that with the file.&lt;/p&gt;

&lt;p&gt;Ask what the final function&lt;br&gt;
is called.&lt;/p&gt;

&lt;p&gt;Count the characters you sent,&lt;br&gt;
if that is the only number&lt;br&gt;
you can get hold of,&lt;br&gt;
and check it against the source.&lt;/p&gt;

&lt;p&gt;When a tool fetches for you,&lt;br&gt;
read what it fetched,&lt;br&gt;
not the conclusion&lt;br&gt;
built on top of it.&lt;/p&gt;

&lt;p&gt;And prefer the smaller ask.&lt;br&gt;
One function, entire,&lt;br&gt;
beats a whole service&lt;br&gt;
trimmed by a rule&lt;br&gt;
you have never read.&lt;/p&gt;

&lt;p&gt;The habit is older&lt;br&gt;
than any of this technology.&lt;/p&gt;

&lt;p&gt;Before you debate the output,&lt;br&gt;
prove the input arrived.&lt;/p&gt;

&lt;p&gt;Otherwise you will spend&lt;br&gt;
an afternoon doubting&lt;br&gt;
your own reasoning,&lt;br&gt;
and the machine will turn out&lt;br&gt;
to have been perfectly correct&lt;br&gt;
about a program&lt;br&gt;
that does not exist.&lt;/p&gt;

&lt;p&gt;– Serguey Asael Shinder&lt;/p&gt;

</description>
      <category>sergueyasaelshinder</category>
      <category>ai</category>
      <category>llm</category>
      <category>debugging</category>
    </item>
  </channel>
</rss>
