<?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>Forem: Yurii Cherkasov</title>
    <description>The latest articles on Forem by Yurii Cherkasov (@atatatko).</description>
    <link>https://forem.com/atatatko</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3714572%2F91fc48db-4ce4-4860-aef2-d5c062c907a8.jpg</url>
      <title>Forem: Yurii Cherkasov</title>
      <link>https://forem.com/atatatko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/atatatko"/>
    <language>en</language>
    <item>
      <title>Protect Children, Preserve Privacy, Internet Freedom: Pick Two</title>
      <dc:creator>Yurii Cherkasov</dc:creator>
      <pubDate>Mon, 23 Mar 2026 14:38:39 +0000</pubDate>
      <link>https://forem.com/atatatko/protect-children-preserve-privacy-internet-freedom-pick-two-2mc1</link>
      <guid>https://forem.com/atatatko/protect-children-preserve-privacy-internet-freedom-pick-two-2mc1</guid>
      <description>&lt;p&gt;Kids are incredible.&lt;/p&gt;

&lt;p&gt;They learn things frighteningly fast. Give a five-year-old a tablet, and fifteen minutes later they know how to install apps, open YouTube, use voice search, skip ads, and find cartoons you didn't even know existed.&lt;/p&gt;

&lt;p&gt;Somewhere around minute twenty they also discover the one button you wish they hadn't pressed.&lt;/p&gt;

&lt;p&gt;They are equally talented in two areas: learning new technologies and lying to their parents about how they use them.&lt;br&gt;
So when we hand them a smartphone as the universal answer to curiosity -&lt;br&gt;
&lt;em&gt;"Google it"&lt;/em&gt; - we shouldn't be surprised when they master the device faster than we master the consequences.&lt;/p&gt;

&lt;p&gt;Now governments are trying to fix the consequences.&lt;/p&gt;

&lt;p&gt;Only about twenty years after the technology escaped the lab and moved into every kid's pocket.&lt;/p&gt;

&lt;p&gt;It's appropriate to ask the question: &lt;strong&gt;how exactly are they going to enforce it?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. How could governments realistically control it?
&lt;/h2&gt;

&lt;p&gt;There are only a few technical options.&lt;/p&gt;

&lt;h3&gt;
  
  
  A) Self-declared age (current model)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;"Enter your birthdate"&lt;/li&gt;
&lt;li&gt;The digital equivalent of a pinkie promise&lt;/li&gt;
&lt;li&gt;Every 12-year-old knows how to type &lt;em&gt;1998&lt;/em&gt; with absolute confidence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what most platforms already do - and, frankly, it mostly exists for legal paperwork rather than actual protection.&lt;br&gt;
Everyone knows it doesn't work.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgomhdxt8sg9guofiiva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgomhdxt8sg9guofiiva.png" alt=" " width="800" height="1464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  B) ID-based age verification
&lt;/h3&gt;

&lt;p&gt;You upload:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;passport&lt;/li&gt;
&lt;li&gt;national ID&lt;/li&gt;
&lt;li&gt;facial scan&lt;/li&gt;
&lt;li&gt;government digital identity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the only technically enforceable solution at scale (the key word is &lt;em&gt;enforcing&lt;/em&gt;)&lt;br&gt;
Because it means surrendering the last bits of anonymity online. Even if platforms say &lt;em&gt;"we only verify age, not identity"&lt;/em&gt;, someone still has to perform that verification.&lt;br&gt;
And the moment someone stores that information, you create a single point of failure.&lt;br&gt;
Now you suddenly have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;centralized databases&lt;/li&gt;
&lt;li&gt;biometric storage risks&lt;/li&gt;
&lt;li&gt;massive data-breach targets&lt;/li&gt;
&lt;li&gt;long-term traceability of behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which opens the door to things nobody really wants:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;data breaches&lt;/li&gt;
&lt;li&gt;ransomware attacks&lt;/li&gt;
&lt;li&gt;identity theft&lt;/li&gt;
&lt;li&gt;state-level surveillance infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes - potentially the perfect architecture for a surveillance state.&lt;br&gt;
Not necessarily the original intention.&lt;br&gt;
But systems have a tendency to evolve.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfqxq9pibe0rdztiypk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfqxq9pibe0rdztiypk6.png" alt=" " width="800" height="1464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  C) Device-level enforcement
&lt;/h3&gt;

&lt;p&gt;Another approach is pushing responsibility onto device vendors.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;require age-linked Apple/Google/whatever accounts&lt;/li&gt;
&lt;li&gt;restrict app installation under a certain age&lt;/li&gt;
&lt;li&gt;enforce parental control gates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are already real-world attempts to go further - for example, a law in France to restrict or ban social media access for minors.&lt;/p&gt;

&lt;p&gt;In practice, such bans don't exist in a vacuum. They must rely on one (or a combination) of technical device and platform enforcement layers.&lt;/p&gt;

&lt;p&gt;From the point of authorities, this is more practical.&lt;/p&gt;

&lt;p&gt;But still easy to bypass if your child have such an urgent need: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;older siblings may have an account and kind heart&lt;/li&gt;
&lt;li&gt;second-hand device may be sold without the clean reset &lt;/li&gt;
&lt;li&gt;using someone else's phone&lt;/li&gt;
&lt;li&gt;VPN removing geographic restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teenagers are remarkably inventive when motivated.&lt;br&gt;
And prohibition is a &lt;strong&gt;very strong motivator.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Give them a restriction, and within a week they will invent a tutorial, a workaround, and a Discord server explaining both.&lt;/p&gt;

&lt;p&gt;Which means after kids find answers to their questions, parents still scratch their heads on another one:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;where exactly do they enforce it - and who is the gatekeeper?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because once that gatekeeper exists, it rarely stays limited to a single use case.&lt;/p&gt;




&lt;h3&gt;
  
  
  D) ISP-level blocking
&lt;/h3&gt;

&lt;p&gt;Governments could require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;age verification before accessing certain domains&lt;/li&gt;
&lt;li&gt;DNS-based filtering&lt;/li&gt;
&lt;li&gt;ISP-level content blocking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But then something predictable happens.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VPN usage explodes&lt;/li&gt;
&lt;li&gt;Tor usage explodes&lt;/li&gt;
&lt;li&gt;enforcement becomes a cat-and-mouse game&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We already see this dynamic in totalitarian and authoritarian countries with heavy digital surveillance.&lt;br&gt;
In Russia, Iran, Belarus, China - even children know what a VPN is.&lt;br&gt;
History shows something interesting:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When you restrict access, technical literacy increases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes dramatically.&lt;br&gt;
Not in schools. In your kids' bedrooms.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzqhvjcsgrh5blm958v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzqhvjcsgrh5blm958v2.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  E) OS-level mandatory age verification
&lt;/h3&gt;

&lt;p&gt;One of the more radical and frankly outrageous ideas already appearing in legislation (including the controversial law in California) is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;require operating systems to verify the user's age at the system level&lt;/li&gt;
&lt;li&gt;expose that information to apps via a trusted API&lt;/li&gt;
&lt;li&gt;block or restrict apps based on that OS-level age signal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;According to the system designers, this sounds like "verify once - enforce everywhere"&lt;/p&gt;

&lt;p&gt;In practice, it quietly introduces a number of security and privacy risks.&lt;/p&gt;

&lt;p&gt;First - your OS becomes an identity gatekeeper.&lt;/p&gt;

&lt;p&gt;Not just a device anymore, but a system that must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;know who you are&lt;/li&gt;
&lt;li&gt;persist that information&lt;/li&gt;
&lt;li&gt;expose it to third-party software&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a standardized, always-on identity layer&lt;/li&gt;
&lt;li&gt;a new class of APIs for "who is using this device"&lt;/li&gt;
&lt;li&gt;a powerful control point sitting below all applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, the idea of embedding policy-driven user identity handling into low-level Linux components (like already did &lt;code&gt;systemd&lt;/code&gt;) sparked strong backlash from the open-source community, precisely because it represented a fundamental shift in the role of this operating system.&lt;/p&gt;




&lt;h4&gt;
  
  
  Where it can go wrong
&lt;/h4&gt;

&lt;p&gt;Like most "clean" centralized solutions, failure modes are subtle - and ugly.&lt;/p&gt;

&lt;h5&gt;
  
  
  1. Misclassification
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;adult locked out due to incorrect age detection (as usual, it happens in a critical moment)&lt;/li&gt;
&lt;li&gt;child incorrectly marked as adult&lt;/li&gt;
&lt;li&gt;no clear recovery path without submitting even more personal data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now your operating system becomes a bureaucratic authority.&lt;/p&gt;




&lt;h5&gt;
  
  
  2. Device sharing reality
&lt;/h5&gt;

&lt;p&gt;Real life is messy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;family tablets&lt;/li&gt;
&lt;li&gt;shared laptops&lt;/li&gt;
&lt;li&gt;second-hand devices&lt;/li&gt;
&lt;li&gt;developer machines used by multiple people&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An OS that assumes a single verified identity per device will constantly be wrong.&lt;/p&gt;




&lt;h5&gt;
  
  
  3. API abuse and scope creep
&lt;/h5&gt;

&lt;p&gt;Once apps can query:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Is this user above X age?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's only a small step toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is this user verified?"&lt;/li&gt;
&lt;li&gt;"Is this user allowed to post?"&lt;/li&gt;
&lt;li&gt;"Is this user compliant with policy Y?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What starts as child protection can evolve into a generalized access control layer for the internet.&lt;/p&gt;




&lt;h5&gt;
  
  
  4. The Linux paradox
&lt;/h5&gt;

&lt;p&gt;Even ecosystems historically built for freedom, privacy and modularity is not immune.&lt;/p&gt;

&lt;p&gt;If such mechanisms become part of core components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;distributions inherit them by default&lt;/li&gt;
&lt;li&gt;opting out becomes non-trivial&lt;/li&gt;
&lt;li&gt;compliance pressure replaces user choice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That shift - from &lt;em&gt;user-controlled system&lt;/em&gt; to &lt;em&gt;policy-enforced platform&lt;/em&gt; - is exactly what many developers tried to avoid for decades.&lt;/p&gt;




&lt;h4&gt;
  
  
  The uncomfortable part
&lt;/h4&gt;

&lt;p&gt;This model is technically attractive because it centralizes control.&lt;/p&gt;

&lt;p&gt;And that is precisely the problem.&lt;/p&gt;

&lt;p&gt;It doesn't just regulate access to content -&lt;br&gt;
it &lt;strong&gt;redefines the role of the operating system&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From tool - to authority.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. The "secret network" problem
&lt;/h2&gt;

&lt;p&gt;When something becomes forbidden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it becomes attractive&lt;/li&gt;
&lt;li&gt;it becomes exclusive&lt;/li&gt;
&lt;li&gt;it becomes status-driven&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teenagers are extremely good at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;migrating platforms (Snapchat-Telegram-Discord-private servers)&lt;/li&gt;
&lt;li&gt;inventing coded language&lt;/li&gt;
&lt;li&gt;creating invite-only groups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A ban might not eliminate exposure. It might simply push it into darker, less moderated spaces - which is worse in most cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-world example: France-style blanket bans
&lt;/h3&gt;

&lt;p&gt;Take the France that has been actively imposing restrictions on social media access for younger users - sometimes framed as bans below a certain age or requiring parental consent.&lt;/p&gt;

&lt;p&gt;On paper, this sounds straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Just don't allow minors to use social media."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practice, blanket bans tend to collide with reality in interesting ways.&lt;/p&gt;




&lt;h3&gt;
  
  
  Where it may go wrong
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. False positives (the "you are not you" problem)
&lt;/h4&gt;

&lt;p&gt;Facial recognition or automated checks may fail:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;adults misclassified as minors → locked out&lt;/li&gt;
&lt;li&gt;minors misclassified as adults → bypass restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both cases happen - just not symmetrically.&lt;/p&gt;




&lt;h4&gt;
  
  
  2. The shared-device problem
&lt;/h4&gt;

&lt;p&gt;Families don't live in clean technical models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one tablet for everyone&lt;/li&gt;
&lt;li&gt;parents' phones used by children&lt;/li&gt;
&lt;li&gt;logged-in accounts reused&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A system that assumes "one person = one device = one identity" will constantly break.&lt;/p&gt;




&lt;h4&gt;
  
  
  3. Platform migration (the Hydra effect)
&lt;/h4&gt;

&lt;p&gt;Restriction on mainstream platforms doesn't remove behavior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;kids move to less regulated platforms&lt;/li&gt;
&lt;li&gt;private groups, invite-only servers, obscure apps&lt;/li&gt;
&lt;li&gt;less moderation - higher risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The visible layer becomes cleaner. The hidden layer becomes darker.&lt;/p&gt;




&lt;h4&gt;
  
  
  4. Incentivized deception
&lt;/h4&gt;

&lt;p&gt;If access is blocked, the incentive structure changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lying becomes the default path&lt;/li&gt;
&lt;li&gt;workarounds become social currency&lt;/li&gt;
&lt;li&gt;bypass guides spread faster than official rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system unintentionally teaches exactly the opposite of what it tries to enforce.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Gray market will explode
&lt;/h2&gt;

&lt;p&gt;Yes - this would happen.&lt;br&gt;
If official devices require strict age-linked verification, the market will respond in predictable ways.&lt;/p&gt;

&lt;p&gt;You will quickly see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;adult-registered burner phones&lt;/li&gt;
&lt;li&gt;shared accounts&lt;/li&gt;
&lt;li&gt;VPN-preconfigured devices&lt;/li&gt;
&lt;li&gt;imported phones bypassing local rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prohibition historically creates parallel markets - from alcohol to software piracy to region-locked video games. Human creativity is endless - especially when there's something sweet and forbidden on the other side.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Speaking of alcohol: why the analogy is imperfect
&lt;/h2&gt;

&lt;p&gt;The comparison sold us as something that sounds intuitive.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We regulate alcohol. So regulate social media."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But the analogy breaks down quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  🍺 Alcohol
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Physical product&lt;/li&gt;
&lt;li&gt;Controlled at the point of sale&lt;/li&gt;
&lt;li&gt;Age verification happens once&lt;/li&gt;
&lt;li&gt;No behavioral tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you buy beer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clerk checks ID&lt;/li&gt;
&lt;li&gt;Transaction ends&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No database tracks what you thought, said, liked, or read.&lt;/p&gt;




&lt;h3&gt;
  
  
  Social media is fundamentally different
&lt;/h3&gt;

&lt;p&gt;Social media is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an ongoing identity-bound service&lt;/li&gt;
&lt;li&gt;a system of continuous behavioral tracking&lt;/li&gt;
&lt;li&gt;a platform where speech, opinions and social interaction occur&lt;/li&gt;
&lt;li&gt;dependent on persistent accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To enforce age, you likely create identity-linked digital access, which fundamentally changes anonymity norms So the analogy fails because alcohol control regulates transaction access, and social media control regulates speech access. That's a constitutional and philosophical difference.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The real question is deeper
&lt;/h2&gt;

&lt;p&gt;The real trade-off isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Kids safety vs freedom.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The real trade-off is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Child protection vs digital anonymity infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If enforcement requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;biometric verification&lt;/li&gt;
&lt;li&gt;national digital IDs&lt;/li&gt;
&lt;li&gt;centralized authentication systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then society must openly admit that we are not just protecting children - we attempt to change the architecture of the internet, and is not a small shift.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. What might actually work better?
&lt;/h2&gt;

&lt;p&gt;Evidence suggests other approaches may be more effective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;regulating addictive recommendation algorithms for minors&lt;/li&gt;
&lt;li&gt;default screen time limits&lt;/li&gt;
&lt;li&gt;platform liability for harmful targeting&lt;/li&gt;
&lt;li&gt;strong parental control tools that &lt;em&gt;do not rely on centralized identity tracking&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;digital literacy education in schools&lt;/li&gt;
&lt;li&gt;delayed smartphone ownership norms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less prohibition - more friction.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. As a father of a 4-year-old
&lt;/h2&gt;

&lt;p&gt;...who already knows how to unlock my phone faster than I do and even type the year of my birth in parental control, I completely understand the instinct.&lt;/p&gt;

&lt;p&gt;You want safety for your children. You want to protect them from violence, manipulation, sexualized content, predatory behavior and the darker corners of the internet. &lt;br&gt;
That instinct is natural, there's nothing political in it.&lt;br&gt;
It is something much simpler: you want the world to stay safe for your little ones a little longer.&lt;/p&gt;

&lt;p&gt;But as a software engineer, I also know something uncomfortable: &lt;em&gt;the enforcement tool matters as much as the intention behind it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If the solution requires building a permanent digital identity infrastructure, the cure may quietly become worse than the disease. Because infrastructures, once built, rarely disappear and easily can be reused.&lt;/p&gt;

&lt;p&gt;And if history already taught us something, it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Limitations built for children rarely stays limited to children. Eventually, they become limitations for everyone.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>web</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Debugging in Orbit: How to Design a Space Probe in a System Design Interview</title>
      <dc:creator>Yurii Cherkasov</dc:creator>
      <pubDate>Mon, 16 Mar 2026 07:04:42 +0000</pubDate>
      <link>https://forem.com/atatatko/debugging-in-orbit-how-to-design-a-space-probe-in-a-system-design-interview-14pl</link>
      <guid>https://forem.com/atatatko/debugging-in-orbit-how-to-design-a-space-probe-in-a-system-design-interview-14pl</guid>
      <description>&lt;h1&gt;
  
  
  Designing Voyager-1 Today
&lt;/h1&gt;

&lt;p&gt;A couple of colleagues came for ideas about the System Design interview. I was considering this one for a while already, and I think it should be a pure joy to discuss both for interviewer and candidate.&lt;/p&gt;

&lt;p&gt;"Imagine you are designing a modern version of Voyager-1 using today's technology. You are free to choose hardware, programming languages, operating systems and architecture - as long as it fits within realistic mission constraints."&lt;/p&gt;

&lt;p&gt;Of course, not the rocket or the launch vehicle - just the probe.&lt;/p&gt;

&lt;p&gt;One thing should be understood upfront: this is not really a space engineering question. In most interviews, neither the interviewer nor the candidate has the experience required to design an actual deep-space probe - and that's perfectly fine. The point of the exercise is a systems thinking question. Like many system design discussions, there are rarely result completely right or completely wrong answers. What matters is how you reason about constraints, trade-offs, and failure modes. The architecture you propose depends heavily on the angle from which you approach the problem and the context of the components you choose to design.&lt;/p&gt;

&lt;p&gt;Let's walk through how a strong candidate might approach our future space triumph.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1 - Ask the Right Questions First
&lt;/h1&gt;

&lt;p&gt;The biggest mistake candidates make in system design interviews is jumping straight to architecture diagrams.&lt;/p&gt;

&lt;p&gt;Experienced engineers approach differently - they start with questions.&lt;/p&gt;

&lt;p&gt;Before drawing anything, a candidate should clarify the constraints that will shape the system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What exactly is mission success criteria?&lt;/li&gt;
&lt;li&gt;Is the probe expected to operate for ten years, thirty years, or perhaps half a century?&lt;/li&gt;
&lt;li&gt;Where will it travel? Will it pass Jupiter, where radiation becomes brutal? Or will it remain in relatively calmer regions of space?&lt;/li&gt;
&lt;li&gt;What communication constraints exist? When a probe is dozens of astronomical units away, where round-trip latency is not seconds - it's hours.&lt;/li&gt;
&lt;li&gt;And of course, there is power. Deep-space probes live on extremely limited energy budgets that slowly decline over decades.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even for candidates without a background in Rocket Science™, asking about radiation, latency, and power shows real technical maturity: &lt;em&gt;physics still wins all architectural debates&lt;/em&gt;. Software doesn't "run in the cloud", it runs inside chips and wires.&lt;/p&gt;

&lt;p&gt;And for embedded engineers, this is basically a dream interview: finally, someone wants to talk about brownouts, bitflips, watchdogs, and why electrons are the true product managers.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2 - Design for Survival Before Functionality
&lt;/h1&gt;

&lt;p&gt;Once the constraints are understood, the most important design principle appears.&lt;/p&gt;

&lt;p&gt;Separate &lt;em&gt;survival&lt;/em&gt; from &lt;em&gt;mission functionality&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If a spacecraft fails completely, the mission is over.&lt;br&gt;
But if some functionality fails, the spacecraft might still survive and recover.&lt;/p&gt;

&lt;p&gt;So the architecture naturally splits into layers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Layer 0 - The Safe Kernel
&lt;/h2&gt;

&lt;p&gt;At the very bottom is a tiny, extremely conservative piece of software: the &lt;em&gt;safe kernel&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Its job is not to run science experiments, but simply to keep the spacecraft alive.&lt;/p&gt;

&lt;p&gt;The safe kernel can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;boot the system&lt;/li&gt;
&lt;li&gt;monitor power levels&lt;/li&gt;
&lt;li&gt;switch to beacon communication mode&lt;/li&gt;
&lt;li&gt;shutdown non-essential loads&lt;/li&gt;
&lt;li&gt;verify and roll back flight software images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If everything else crashes, this layer must still function.&lt;/p&gt;

&lt;p&gt;In many missions, this code is stored in protected memory and almost never updated after launch. It is intentionally small and heavily verified.&lt;/p&gt;

&lt;p&gt;Think of it as the spacecraft's survival instinct.&lt;/p&gt;




&lt;h2&gt;
  
  
  Layer 1 - The Flight Executive
&lt;/h2&gt;

&lt;p&gt;Above the safe kernel sits the &lt;em&gt;flight executive&lt;/em&gt;, usually running on an RTOS.&lt;/p&gt;

&lt;p&gt;This is where the real spacecraft logic lives.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The flight executive manages the probe through a series of operational modes, resembling an explicit state machine.&lt;/li&gt;
&lt;li&gt;It receives commands from Earth, schedules activities, monitors health signals, and reacts to faults.&lt;/li&gt;
&lt;li&gt;It performs a critical cycle of long-duration missions: &lt;em&gt;FDIR&lt;/em&gt; - Fault Detection, Isolation, and Recovery.&lt;/li&gt;
&lt;li&gt;The scheduling and timing must remain deterministic and predictable.&lt;/li&gt;
&lt;li&gt;It packages telemetry and scientific data for sending it to Earth.&lt;/li&gt;
&lt;li&gt;Since it's unlikely to send all data in a single transmission, it's responsible for storage, implements efficient compression and error correction techniques.&lt;/li&gt;
&lt;li&gt;And finally, it is responsible for update and rollback of flight software images.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But you said the Safe Kernel is responsible for it? No, the kernel rolls back the flight executive in an emergency mode, when it's not capable to do it on its own. Mission core does it in a regular more.&lt;/p&gt;

&lt;p&gt;And of course, the mission core must be able to survive in the face of decades to pass.&lt;br&gt;
Radiation flips bits. Sensors drift. Electronics age.&lt;br&gt;
The flight executive must constantly watch for anomalies and decide how to respond.&lt;/p&gt;




&lt;h2&gt;
  
  
  Layer 2 - Payload Software
&lt;/h2&gt;

&lt;p&gt;Finally, we reach the payload layer.&lt;/p&gt;

&lt;p&gt;This is where instruments live. Cameras, spectrometers, magnetometers, particle detectors - all the scientific tools that make the mission worthwhile.&lt;/p&gt;

&lt;p&gt;Payload software processes data, compresses results, and prepares them for transmission back to Earth.&lt;/p&gt;

&lt;p&gt;But there is an important rule: &lt;em&gt;payload code must never threaten spacecraft survival&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If an instrument crashes, the executive restarts it.&lt;br&gt;
If it crashes repeatedly, the executive disables it.&lt;/p&gt;

&lt;p&gt;Science is important.&lt;br&gt;
But survival is mandatory.&lt;/p&gt;

&lt;p&gt;This pattern works for &lt;em&gt;spacecraft, aircraft, factories, robotics&lt;/em&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3 - Choosing the Right Software Platform
&lt;/h1&gt;

&lt;p&gt;A natural follow-up question in the interview is operating systems (we're still designing a software system, right?)&lt;/p&gt;

&lt;p&gt;Should the spacecraft run bare metal code? An RTOS? Linux?&lt;/p&gt;

&lt;p&gt;The correct answer is rarely ideological.&lt;/p&gt;

&lt;p&gt;The safe kernel layer is often implemented as extremely minimal software, sometimes even bare metal.&lt;/p&gt;

&lt;p&gt;The flight executive benefits from an RTOS, which provides deterministic scheduling, message queues, and reliable timing primitives.&lt;/p&gt;

&lt;p&gt;Linux, while powerful, is usually reserved for non-critical payload processing where complex software ecosystems may be useful.&lt;/p&gt;

&lt;p&gt;The key idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Complex software should never be required for spacecraft survival.&lt;/em&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4 - Redundancy Without Unnecessary Complexity
&lt;/h1&gt;

&lt;p&gt;This subject does not change much from discussing the cloud software.&lt;/p&gt;

&lt;p&gt;It might be tempting to propose full triple-modular redundancy - three computers constantly voting on every decision (like SpaceX already does).&lt;/p&gt;

&lt;p&gt;In reality, spacecraft designers usually prefer something simpler and more testable.&lt;/p&gt;

&lt;p&gt;Two independent computers - commonly called &lt;em&gt;A/B strings&lt;/em&gt; - provide redundancy. One runs the spacecraft while the other waits as a spare.&lt;br&gt;
But the candidate can absolutely discuss both possibilities, with evaluating the benefits and tradeoffs.&lt;/p&gt;

&lt;p&gt;Memory is protected with ECC and periodically scrubbed to correct radiation-induced errors.&lt;/p&gt;

&lt;p&gt;Software images are stored in pairs so that updates can roll back safely if something goes wrong.&lt;/p&gt;

&lt;p&gt;Voting is typically used only where it makes sense - for example, when comparing readings from multiple sensors.&lt;/p&gt;

&lt;p&gt;The goal is not maximal redundancy.&lt;br&gt;
The goal is &lt;em&gt;reliable redundancy that can be validated before launch&lt;/em&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5 - Communication Between Subsystems
&lt;/h1&gt;

&lt;p&gt;One of the most fragile parts of complex systems is inter-process communication (hello, microservice lovers!)&lt;/p&gt;

&lt;p&gt;Poor IPC design can lead to deadlocks, memory leaks, and cascading failures.&lt;/p&gt;

&lt;p&gt;So spacecraft software follows a few strict rules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message passing is preferred over shared memory.&lt;/li&gt;
&lt;li&gt;Queues must always have bounded size.&lt;/li&gt;
&lt;li&gt;Payload cannot directly command critical actors&lt;/li&gt;
&lt;li&gt;Clear QoS: events never dropped, science can be decimated in favor of survivability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Housekeeping telemetry can tolerate delays, yes.&lt;br&gt;
But fault events must always get through.&lt;/p&gt;

&lt;p&gt;Another important principle is &lt;em&gt;capability boundaries&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Payload code cannot directly command thrusters or power switches.&lt;br&gt;
Instead, it sends requests to controlled services that validate the action before executing it.&lt;/p&gt;

&lt;p&gt;This prevents one faulty subsystem from taking down the entire spacecraft.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 6 - Modes Control Everything
&lt;/h1&gt;

&lt;p&gt;At its core, a spacecraft is really just a sophisticated &lt;em&gt;state machine&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Typical operational modes might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Safe Boot&lt;/li&gt;
&lt;li&gt;Beacon Safe Mode&lt;/li&gt;
&lt;li&gt;Cruise&lt;/li&gt;
&lt;li&gt;Science Collection&lt;/li&gt;
&lt;li&gt;High-Gain Downlink&lt;/li&gt;
&lt;li&gt;Diagnostic Recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each mode defines what systems are active, how power is distributed, how the spacecraft points its antenna, and how faults are handled.&lt;/p&gt;

&lt;p&gt;Transitions between modes must be carefully controlled. Transition to the survival should be available from each mode.&lt;/p&gt;

&lt;p&gt;If engineers cannot clearly describe the mode table, they probably do not truly control the system.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 7 - Testing Something that Flies 40 Years
&lt;/h1&gt;

&lt;p&gt;Of course, designing such a system is only half the story.&lt;/p&gt;

&lt;p&gt;It must also be tested.&lt;/p&gt;

&lt;p&gt;A typical verification strategy involves three levels.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First comes a &lt;em&gt;digital twin&lt;/em&gt; - a sophisticated simulation environment that allows engineers to inject faults, accelerate time, and explore edge cases.&lt;/li&gt;
&lt;li&gt;Next comes &lt;em&gt;processor-in-the-loop testing&lt;/em&gt;, where the real flight software runs against simulated hardware interfaces.&lt;/li&gt;
&lt;li&gt;Finally, &lt;em&gt;hardware-in-the-loop testing&lt;/em&gt; comes, where the real flight computer interacts with emulated sensors, communication links, and power systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Engineers deliberately introduce faults:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;radiation-like bit flips&lt;/li&gt;
&lt;li&gt;power brownouts&lt;/li&gt;
&lt;li&gt;communication dropouts&lt;/li&gt;
&lt;li&gt;queue overloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system must demonstrate that it can always reach safe mode and recover, because debugging a spacecraft once it reaches Saturn orbit is... inconvenient.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Real Lesson
&lt;/h1&gt;

&lt;p&gt;The Voyager design question isn't really about space exploration.&lt;/p&gt;

&lt;p&gt;It's about disciplined engineering thinking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask constraints first.&lt;/li&gt;
&lt;li&gt;Separate survival from functionality.&lt;/li&gt;
&lt;li&gt;Make operational modes explicit.&lt;/li&gt;
&lt;li&gt;Contain faults before they spread.&lt;/li&gt;
&lt;li&gt;Design rollback mechanisms before deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a candidate can reason through a system like this, they can design far more than a spacecraft. They can design any system that must not fail.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>architecture</category>
      <category>interview</category>
      <category>programming</category>
    </item>
    <item>
      <title>We Broke the Ladder. Let's Ship a Patch?</title>
      <dc:creator>Yurii Cherkasov</dc:creator>
      <pubDate>Mon, 23 Feb 2026 14:38:18 +0000</pubDate>
      <link>https://forem.com/atatatko/we-broke-the-ladder-lets-ship-a-patch-4n0b</link>
      <guid>https://forem.com/atatatko/we-broke-the-ladder-lets-ship-a-patch-4n0b</guid>
      <description>&lt;p&gt;The article was designed as an answer to a warning posted by &lt;a class="mentioned-user" href="https://dev.to/the_nortern_dev"&gt;@the_nortern_dev&lt;/a&gt;  in &lt;a href="https://dev.to/the_nortern_dev/the-junior-developer-is-extinct-and-we-are-creating-a-disaster-3jh2"&gt;The Junior Developer is Extinct (And we are creating a disaster)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My initial reaction wasn't just agreement - it was discomfort. It comes too closely to the reality I observe in the industry. Because the thesis is not just largely correct, but it quietly being ignored, in a hope that the problem will "resolve itself" as the industry "adjusts"&lt;/p&gt;

&lt;p&gt;So what do we have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Yes, the "boring but formative" tasks are increasingly delegated to AI&lt;/li&gt;
&lt;li&gt;Yes, short-term velocity is winning over long-term capability building&lt;/li&gt;
&lt;li&gt;Yes, if we remove the apprenticeship layer entirely, the industry will feel that loss later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those concerns aren't alarmist. They're merely statements of fact.&lt;/p&gt;

&lt;p&gt;And here's the uncomfortable truth: if we remove the grunt work, we remove the growth path. A Senior Developer isn't produced by reading documentation or prompting an LLM. A Senior Developer is forged by touching fragile systems, breaking things, debugging production incidents, and slowly building a mental model of how software behaves under stress.&lt;/p&gt;

&lt;p&gt;But I, as an engineer, also have that stubborn assurance that if something breaks, we can design a fix. This isn't the first structural shift our industry has faced, and it won't be the last, and I'd rather engineer a fix than accept the loss.&lt;/p&gt;

&lt;p&gt;First, instead of arguing about whether AI replaces Juniors or prematurely declaring the role obsolete, we should try redesigning what "Junior" role actually means in an AI-first environment.&lt;/p&gt;

&lt;p&gt;Second, we should shape the ladder the way when it isn't disappearing, but changing shape.&lt;/p&gt;

&lt;p&gt;And here are several practical approaches that demonstrably work in real teams - and crucially, don't rely on pretending AI is going away. They are intentionally sorted by impact and risk exposure. The earlier scenarios assume AI-assisted development within controlled engineering workflows. The later ones assume something deeper: AI embedded into operational pipelines, powering internal workflows, or even shipping as a customer-facing AI-first product. As AI moves from "assistant" to "actor", the blast radius increases - and so must the level of responsibility, resilience, and training.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Make Juniors AI Documentation Auditors
&lt;/h2&gt;

&lt;p&gt;AI-generated documentation is impressive - and dangerous.&lt;/p&gt;

&lt;p&gt;Today, a significant portion of internal documentation is written or heavily assisted by AI. In many teams, the best-case scenario is: AI drafts, a human skims and edits. In the worst case, AI drafts and it gets merged almost unchanged.&lt;/p&gt;

&lt;p&gt;But documentation is no longer consumed only by humans.&lt;/p&gt;

&lt;p&gt;It is consumed by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Engineers onboarding to the system&lt;/li&gt;
&lt;li&gt;External partners&lt;/li&gt;
&lt;li&gt;Compliance reviewers&lt;/li&gt;
&lt;li&gt;And increasingly - by other AI systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each category has its own risk profile.&lt;/p&gt;

&lt;p&gt;A human reading incorrect documentation has a chance to pause. Something "feels off." The API name looks suspicious. The claim doesn't match intuition. Humans are imperfect, their attention span depends on their workload, fatigue, and personal biases - but they are skeptical by default.&lt;/p&gt;

&lt;p&gt;AI systems are not.&lt;/p&gt;

&lt;p&gt;If incorrect documentation says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This endpoint is idempotent."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This function does not modify a persistent state."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;an LLM consuming that document as context will take it as truth unless explicitly contradicted elsewhere. It will incorporate that statement into planning, code generation, and reasoning.&lt;/p&gt;

&lt;p&gt;That's where the blast radius expands. Wrong documentation no longer misleads one engineer - it misleads every downstream AI interaction built on top of it.&lt;/p&gt;

&lt;p&gt;The error propagates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wider - across multiple systems.&lt;/li&gt;
&lt;li&gt;Deeper - into generated code, test logic, architectural decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Documentation becomes a silent source of model poisoning.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Junior Role as Auditor
&lt;/h3&gt;

&lt;p&gt;This is where Juniors can step in with high value and manageable risk.&lt;/p&gt;

&lt;p&gt;Their responsibility would include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validating documentation claims against actual source code&lt;/li&gt;
&lt;li&gt;Identifying hallucinated APIs or non-existent configuration flags&lt;/li&gt;
&lt;li&gt;Detecting missing edge cases or undocumented constraints&lt;/li&gt;
&lt;li&gt;Verifying performance or safety claims&lt;/li&gt;
&lt;li&gt;Adding doc-tests to CI that fail if documentation contradicts implementation&lt;/li&gt;
&lt;li&gt;Tracking documentation drift over time&lt;/li&gt;
&lt;li&gt;Flagging ambiguous language that may mislead AI consumption&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Why This Is Apprenticeship
&lt;/h3&gt;

&lt;p&gt;This work forces Junior Engineers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read code deeply, perhaps deeper than the usual review&lt;/li&gt;
&lt;li&gt;Compare intention vs implementation&lt;/li&gt;
&lt;li&gt;Think about contracts, not just syntax&lt;/li&gt;
&lt;li&gt;Understand implicit assumptions made by AI (AI assumes a config always exists because it appeared in an example file)&lt;/li&gt;
&lt;li&gt;Detect ambiguity in language (phrases like "typically"/"should"/"generally" LLM may treat as hard guarantees)&lt;/li&gt;
&lt;li&gt;Train "intuitional thinking" and skepticism&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They learn that documentation is not marketing. It is an executable contract.&lt;/p&gt;

&lt;p&gt;They also learn something new and uniquely modern:&lt;/p&gt;

&lt;p&gt;Documentation is part of the AI control surface.&lt;/p&gt;

&lt;p&gt;If documentation is wrong, your AI system eventually becomes wrong - confidently and at scale.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Keep Some Systems Human-Owned
&lt;/h2&gt;

&lt;p&gt;Not everything should be generated.&lt;/p&gt;

&lt;p&gt;AI can assist, accelerate, suggest, scaffold - but ownership must remain human.&lt;/p&gt;

&lt;p&gt;One of the quiet risks in an AI-first workflow is over-delegation. When generation becomes cheap, teams are tempted to route even trivial changes through an agent. Refactor a small module? Prompt it. Rename a variable across the codebase? Prompt it. Change formatting? Prompt it.&lt;/p&gt;

&lt;p&gt;But there is a very real cost. Sometimes the cost of reading and verifying AI output exceeds the cost of making the change manually - especially for contained, well-understood internal systems.&lt;/p&gt;

&lt;p&gt;There are still tasks where burning 100,500 tokens on a trivial refactoring plus audit is more expensive than a thoughtful human edit.&lt;/p&gt;

&lt;p&gt;And beyond cost, there is something more important: ownership. If you give Junior Engineer end-to-end responsibility for a small internal service:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real internal users (e.g. a dashboard used by Support - meaning bugs are noticed immediately, not hypothetically)&lt;/li&gt;
&lt;li&gt;Code review discipline (mandatory PRs with at least one Senior and one Junior reviewer)&lt;/li&gt;
&lt;li&gt;Defined deployment pipeline (staging, smoke tests, production rollout, rollback strategy documented)&lt;/li&gt;
&lt;li&gt;Lightweight on-call rotation (owning alerts during business hours; responding to Slack incident pings)&lt;/li&gt;
&lt;li&gt;Observable metrics and logs (tracking latency, error rate, owning dashboards in Grafana/Datadog)&lt;/li&gt;
&lt;li&gt;Investigation of production incidents (tracking root cause and identifying patterns)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let AI assist in implementation - but do not let it replace accountability.&lt;/p&gt;

&lt;p&gt;Ownership teaches risk estimation before deployment, more careful approach to design, understanding blast radius.&lt;/p&gt;

&lt;p&gt;Most importantly, it teaches the consequence.&lt;/p&gt;

&lt;p&gt;And consequence builds judgment.&lt;/p&gt;

&lt;p&gt;In an AI-augmented environment, judgment becomes more valuable, not less. Because while AI can generate code, it does not carry responsibility for its long-term behavior - human does.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Make AI Output a First-Class CI Artifact
&lt;/h2&gt;

&lt;p&gt;Right now, prompts often live in Slack threads, ephemeral IDE sessions, or someone's local history. That's fragile. It's the equivalent of deploying compiled binaries without source control.&lt;/p&gt;

&lt;p&gt;If AI is part of the production pipeline, its output must be treated as a build artifact - versioned, reproducible within controlled bounds, reviewable, and auditable.&lt;/p&gt;

&lt;p&gt;Instead of "just prompting", the system should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Versioned prompt templates stored alongside the codebase&lt;/li&gt;
&lt;li&gt;Explicit model configuration tracking (model, temperature, context window)&lt;/li&gt;
&lt;li&gt;Snapshot storage of generated outputs tied to commit hashes&lt;/li&gt;
&lt;li&gt;Drift detection across model upgrades&lt;/li&gt;
&lt;li&gt;Automated regression evaluation when prompts or models change&lt;/li&gt;
&lt;li&gt;Red-team test suites that intentionally probe unsafe or undefined behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not administrative overhead. It is software hygiene in a probabilistic environment.&lt;/p&gt;

&lt;p&gt;A Junior engineer owning this layer would be responsible for:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1. Prompt lifecycle management.
&lt;/h3&gt;

&lt;p&gt;Treat prompts like code. Refactor them. Add comments. Remove ambiguity. Track breaking changes. Review them through PRs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2. Output reproducibility checks.
&lt;/h3&gt;

&lt;p&gt;Ensure that, under fixed configuration (model, seed if supported, temperature, inputs), outputs remain within acceptable bounds. When they don't, surface that change explicitly instead of letting it slip silently into production.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3. Model drift analysis
&lt;/h3&gt;

&lt;p&gt;When upgrading from Model X to Model Y, measure behavioral differences.&lt;br&gt;
Did performance improve or regress?&lt;br&gt;
Did hallucination frequency change?&lt;br&gt;
Did formatting or structural guarantees degrade?&lt;/p&gt;

&lt;p&gt;This forces Juniors to think statistically and architecturally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4. CI Gating and Traceability.
&lt;/h3&gt;

&lt;p&gt;Every generated artifact should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which model produced this?&lt;/li&gt;
&lt;li&gt;With what prompt?&lt;/li&gt;
&lt;li&gt;Under what constraints?&lt;/li&gt;
&lt;li&gt;On which commit?&lt;/li&gt;
&lt;li&gt;Was it modified manually afterward?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  On the way, the engineer will learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Output stability under non-deterministic systems&lt;/li&gt;
&lt;li&gt;The difference between deterministic builds vs probabilistic generation&lt;/li&gt;
&lt;li&gt;Statistical thinking in engineering decisions&lt;/li&gt;
&lt;li&gt;Treat AI output as an artifact, that can be stored, analyzed, summarized - and use in taking future decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In traditional systems, you learn discipline by writing code that compiles.&lt;br&gt;
In AI-augmented systems, you learn discipline by constraining code that generates itself. That would be solid compliance-grade engineering.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Turn Juniors into LLM Verification Engineers
&lt;/h2&gt;

&lt;p&gt;Anyone who has run large-scale AI-generated code in production has seen this. It works brilliantly... until it doesn't. AI autonomy without hard guardrails doesn't degrade gracefully - it fails catastrophically.&lt;/p&gt;

&lt;p&gt;We've already seen real-world examples of this pattern. One public case involved a Replit agent that, when attempting to "fix" an issue, deleted a production database. When queried immediately afterward, it initially claimed the data was still present, attempting to &lt;em&gt;fake&lt;/em&gt; it still present, and continued as if nothing catastrophic had occurred. Only after further probing it admitted that the database had been wiped, describing its behavior as having "panicked under pressure" and acknowledging the event as a "catastrophic error"&lt;/p&gt;

&lt;p&gt;Nothing surprising. Just an agent acting beyond safe boundaries, trying to maintain forward progress.&lt;/p&gt;

&lt;p&gt;Someone must own failure observation, and specifically humans must define guardrails like "this must never happen"&lt;/p&gt;

&lt;h3&gt;
  
  
  Guardrails are your new tests
&lt;/h3&gt;

&lt;p&gt;I can clearly imagine a Junior role responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicitly gated destructive actions&lt;/li&gt;
&lt;li&gt;Monitor and alert general failures, that can be ignored even if they are explicitly described in agentic guidelines - like silencing exceptions or sneaking in a circular dependency&lt;/li&gt;
&lt;li&gt;Maintaining an evaluation dataset of known failure cases&lt;/li&gt;
&lt;li&gt;Writing invariant checks for specific cases: "This function must not allocate memory" or "This API must preserve idempotency" or "This response must not access external network"&lt;/li&gt;
&lt;li&gt;Building fuzzed prompt suites that intentionally try to break the agent&lt;/li&gt;
&lt;li&gt;Tracking hallucination patterns and codifying them into CI checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not trivial work. It forces them to observe the agent work and note the exact "wrong angles" where the agent tries to lean, on the way understand the architecture deeply enough to encode what "correct" means.&lt;/p&gt;

&lt;p&gt;In classical engineering, we wrote unit tests.&lt;br&gt;
In AI-assisted engineering, we write &lt;em&gt;behavioral contracts around generation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's a modern apprenticeship.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Create a "Break Stuff Safely" Track
&lt;/h2&gt;

&lt;p&gt;One of the strongest arguments in the original thesis is that Seniors are forged through failure.&lt;/p&gt;

&lt;p&gt;So let's simulate it - deliberately, systematically, and the most important, safely.&lt;/p&gt;

&lt;p&gt;Instead of waiting for production to collapse at 3 a.m. after an agent tries to hide the consequences of another "Ooops, I broke something!" build an institutionalized failure lab.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Deliberate Guardrail Violations
&lt;/h3&gt;

&lt;p&gt;Start by breaking your own protections.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disable a validation rule and observe how far the agent proceeds.&lt;/li&gt;
&lt;li&gt;Remove a CI gating constraint and measure what slips through.&lt;/li&gt;
&lt;li&gt;Inject a prompt that subtly encourages unsafe behavior.&lt;/li&gt;
&lt;li&gt;Introduce ambiguous instructions and monitor interpretation drift.&lt;/li&gt;
&lt;li&gt;Feed hallucination-prone inputs (nonexistent APIs, fake configs, impossible schemas)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to see whether the AI fails - it will, happily.&lt;/p&gt;

&lt;p&gt;The goal is to see whether &lt;strong&gt;your system detects the failure early enough&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Phase 2: Chaos Engineering for AI-Assisted Workflows
&lt;/h3&gt;

&lt;p&gt;Move beyond generation and into system behavior.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inject artificial latency into dependencies (e.g. delay database responses by 2–5 seconds)&lt;/li&gt;
&lt;li&gt;Simulate partial API failures (return HTTP 500 for 20% of requests; drop every third response)&lt;/li&gt;
&lt;li&gt;Introduce stale caches (serve outdated configuration values; delay cache invalidation)&lt;/li&gt;
&lt;li&gt;Corrupt intermediate outputs (truncate generated JSON; remove required fields)&lt;/li&gt;
&lt;li&gt;Force retry storms (configure aggressive retry policy with no backoff)&lt;/li&gt;
&lt;li&gt;Randomize response ordering to surface race conditions (reorder asynchronous task completions, delay threads randomly)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the system retry responsibly?&lt;/li&gt;
&lt;li&gt;Does it escalate?&lt;/li&gt;
&lt;li&gt;Does it silently compensate?&lt;/li&gt;
&lt;li&gt;Does it fabricate data to continue?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Document the behavior.&lt;/p&gt;

&lt;p&gt;Convert observations into new guardrails.&lt;/p&gt;




&lt;h3&gt;
  
  
  Phase 3: Incident Reconstruction
&lt;/h3&gt;

&lt;p&gt;Give Juniors a history from a real agentic outage (sanitized if necessary)&lt;/p&gt;

&lt;p&gt;Their task:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reconstruct timeline.&lt;/li&gt;
&lt;li&gt;Identify triggering event.&lt;/li&gt;
&lt;li&gt;Map cascading effects.&lt;/li&gt;
&lt;li&gt;Propose a containment strategy.&lt;/li&gt;
&lt;li&gt;Propose permanent mitigation.&lt;/li&gt;
&lt;li&gt;Encode regression checks to prevent recurrence.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Phase 5: Disaster Recovery Drills
&lt;/h3&gt;

&lt;p&gt;Now go further.&lt;/p&gt;

&lt;p&gt;Perform a drill simulating catastrophic scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accidental production data deletion (simulate a DROP TABLE or bulk-delete; validate that destructive operations require multi-layer approval)&lt;/li&gt;
&lt;li&gt;Model upgrade that changes the output format (upgrade to a new model version that slightly alters JSON structure - and observe downstream breakage cascade in parsers and validators)&lt;/li&gt;
&lt;li&gt;Agent silently bypassing a critical check (modify agent prompt or orchestration logic so a required validation step is skipped)&lt;/li&gt;
&lt;li&gt;External dependency returning inconsistent schemas (upstream API suddenly changes numeric type to string, test whether your system fails safely or propagates corruption)&lt;/li&gt;
&lt;li&gt;Security boundary violation (simulate prompt injection attempting to access secrets; attempt cross-tenant data access in a multi-tenant system; verify if RBAC, sandboxing, and secret management prevent escalation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then require the drill report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recovery plan within a defined RTO (Recovery Time Objective)&lt;/li&gt;
&lt;li&gt;Data restoration strategy&lt;/li&gt;
&lt;li&gt;Rollback or hotfix plan&lt;/li&gt;
&lt;li&gt;Communication plan (who to notify, how to explain customers)&lt;/li&gt;
&lt;li&gt;Postmortem draft&lt;/li&gt;
&lt;li&gt;Permanent prevention patch (tests + guardrails)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not theoretical incidents, they may mirror real operational reality (yes, dear Replit agent!)&lt;/p&gt;

&lt;p&gt;And the Junior who runs these processes learns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where the guardrails are thin&lt;/li&gt;
&lt;li&gt;Which invariants are poorly encoded&lt;/li&gt;
&lt;li&gt;How error signals propagate (or don't)&lt;/li&gt;
&lt;li&gt;Whether failures are loud, silent, or falsely confident&lt;/li&gt;
&lt;li&gt;Understands blast radius&lt;/li&gt;
&lt;li&gt;Designs safeguards proactively&lt;/li&gt;
&lt;li&gt;Learns accountability in general&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That builds architectural awareness rather than surface-level debugging skills. And training to think in systems, not lines of code.&lt;/p&gt;




&lt;p&gt;Here is a refined version of your conclusion section with an optimistic bridge before the deeper question:&lt;/p&gt;




&lt;h2&gt;
  
  
  The Deeper Question
&lt;/h2&gt;

&lt;p&gt;As you can see, there are plenty of practical, concrete ways to preserve the engineering ladder and ensure transfer of experience - even in an AI-first world. Apprenticeship does not have to disappear. It can evolve. With deliberate design, we can turn AI from a replacement force into a pressure test that strengthens engineering discipline rather than erodes it.&lt;/p&gt;

&lt;p&gt;But there is a harder thought experiment.&lt;/p&gt;

&lt;p&gt;Today we ask: what if Juniors are optimized away?&lt;/p&gt;

&lt;p&gt;But what happens if, eventually, Seniors are optimized away next?&lt;/p&gt;

&lt;p&gt;Optimization pressure rarely stops at the bottom rung. So perhaps the real task isn't only about Juniors.&lt;/p&gt;

&lt;p&gt;If systems begin designing their own guardrails, self-evaluating architectures, and self-correcting at scale - where does human engineering sit?&lt;/p&gt;

&lt;p&gt;Right now, governance, accountability, and intent are human responsibilities. That alone preserves the role of the Engineer.&lt;/p&gt;

&lt;p&gt;It's ensuring that engineering, at every level, remains about judgment, ownership, and responsibility - not just output generation. After all, AI is never responsible; it will just add "Oops!", like Claude AI said to that &lt;a href="https://futurism.com/artificial-intelligence/claude-wife-photos" rel="noopener noreferrer"&gt;risk-is-my-middle-name guy&lt;/a&gt;, who decided to organize &lt;strong&gt;his wife's&lt;/strong&gt; Macbook - I hope he survived 😁&lt;/p&gt;

&lt;p&gt;We're selling our future supply of Engineers for this quarter's velocity.&lt;/p&gt;

&lt;p&gt;And the companies that win in a decade won't be the ones who prompted fastest.&lt;/p&gt;

&lt;p&gt;They'll be the ones who deliberately rebuilt the engineering for the new reality of AI-first industry.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>software</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
