<?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: Anton Minin Baranovskii</title>
    <description>The latest articles on Forem by Anton Minin Baranovskii (@antonmb).</description>
    <link>https://forem.com/antonmb</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%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png</url>
      <title>Forem: Anton Minin Baranovskii</title>
      <link>https://forem.com/antonmb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/antonmb"/>
    <language>en</language>
    <item>
      <title>Access without passwords — short demo</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Wed, 08 Apr 2026 06:15:55 +0000</pubDate>
      <link>https://forem.com/antonmb/access-without-passwords-short-demo-19i5</link>
      <guid>https://forem.com/antonmb/access-without-passwords-short-demo-19i5</guid>
      <description></description>
      <category>authentication</category>
      <category>innovation</category>
      <category>access</category>
      <category>ux</category>
    </item>
    <item>
      <title>Toqen.app mobile testing is now live on iOS</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Tue, 07 Apr 2026 17:18:34 +0000</pubDate>
      <link>https://forem.com/antonmb/toqenapp-mobile-testing-is-now-live-on-ios-5h05</link>
      <guid>https://forem.com/antonmb/toqenapp-mobile-testing-is-now-live-on-ios-5h05</guid>
      <description>&lt;p&gt;I am glad to share that Toqen.app mobile testing is now live on iOS.&lt;/p&gt;

&lt;p&gt;If you would like to try how access-first authentication works in real usage before the official release, please fill out a short form and we will open access (link below).&lt;/p&gt;

&lt;p&gt;For Android users, testing is already ongoing on Google Play.&lt;/p&gt;

&lt;p&gt;Two scenarios are currently available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign in via the mobile app — open the “Services” tab, tap “Sign in”, and you are you are instantly signed in in the browser &lt;/li&gt;
&lt;li&gt;Sign in via QR — open Toqen.app or Litseller.com on your desktop, scan the QR code or enter the OTP in the app, and confirm access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is simple: access is confirmed at the moment of login. No separation between sign up and login. The session is created securely and has a limited lifetime.&lt;/p&gt;

&lt;p&gt;👉Join: &lt;a href="https://forms.gle/5LhYEyj87aNLuKpN9" rel="noopener noreferrer"&gt;https://forms.gle/5LhYEyj87aNLuKpN9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉Honest feedback is highly appreciated: &lt;a href="https://forms.gle/S7mmzji5ftGKZZys9" rel="noopener noreferrer"&gt;https://forms.gle/S7mmzji5ftGKZZys9&lt;/a&gt;&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>ios</category>
      <category>android</category>
      <category>security</category>
    </item>
    <item>
      <title>Hi everyone :wave: Have a great Friday!
I have just released a mobile app - Toqen - now available in closed testing.
The idea is simple: Scan Confirm Access.</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Fri, 03 Apr 2026 14:08:42 +0000</pubDate>
      <link>https://forem.com/antonmb/hi-everyone-wave-have-a-great-friday-i-have-just-released-a-mobile-app-toqen-now-available-3dbh</link>
      <guid>https://forem.com/antonmb/hi-everyone-wave-have-a-great-friday-i-have-just-released-a-mobile-app-toqen-now-available-3dbh</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/toqenapp/toqen-mobile-access-in-2-steps-1295" class="crayons-story__hidden-navigation-link"&gt;🚀 Toqen Mobile: access in 2 steps&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/toqenapp"&gt;
            &lt;img alt="Toqen.app logo" 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%2Forganization%2Fprofile_image%2F12579%2Fc1a9ea36-d31e-4203-b400-2bd54ddbad90.png" class="crayons-logo__image" width="800" height="800"&gt;
          &lt;/a&gt;

          &lt;a href="/antonmb" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" alt="antonmb profile" class="crayons-avatar__image" width="300" height="300"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/antonmb" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Anton Minin Baranovskii
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Anton Minin Baranovskii
                
              
              &lt;div id="story-author-preview-content-3449856" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/antonmb" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" class="crayons-avatar__image" alt="" width="300" height="300"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Anton Minin Baranovskii&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/toqenapp" class="crayons-story__secondary fw-medium"&gt;Toqen.app&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/toqenapp/toqen-mobile-access-in-2-steps-1295" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 3&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/toqenapp/toqen-mobile-access-in-2-steps-1295" id="article-link-3449856"&gt;
          🚀 Toqen Mobile: access in 2 steps
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/authentication"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;authentication&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mobile"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mobile&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cryptography"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cryptography&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/toqenapp/toqen-mobile-access-in-2-steps-1295" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/toqenapp/toqen-mobile-access-in-2-steps-1295#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>🚀 Toqen Mobile: access in 2 steps</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Fri, 03 Apr 2026 12:45:00 +0000</pubDate>
      <link>https://forem.com/toqenapp/toqen-mobile-access-in-2-steps-1295</link>
      <guid>https://forem.com/toqenapp/toqen-mobile-access-in-2-steps-1295</guid>
      <description>&lt;h2&gt;
  
  
  Your phone is already your access key
&lt;/h2&gt;

&lt;p&gt;Your smartphone is almost always within reach.&lt;/p&gt;

&lt;p&gt;To sign in to any service, you just tap &lt;strong&gt;Sign in&lt;/strong&gt; and confirm access on your phone.&lt;/p&gt;

&lt;p&gt;It does not matter whether you had access before.&lt;br&gt;&lt;br&gt;
Access is granted instantly, and the service determines what data is required for further interaction.&lt;/p&gt;

&lt;p&gt;Wherever you are — laptop, shared computer, TV, or any other screen —&lt;br&gt;&lt;br&gt;
everything comes down to two actions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scan → Confirm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No extra steps.&lt;br&gt;&lt;br&gt;
No manual input.&lt;/p&gt;

&lt;p&gt;One app — &lt;strong&gt;Toqen&lt;/strong&gt; — becomes your universal access key.&lt;/p&gt;


&lt;h2&gt;
  
  
  📱 How it looks
&lt;/h2&gt;
&lt;h3&gt;
  
  
  QR scanning
&lt;/h3&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%2Fd7zhtb03oepn74pegnwf.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%2Fd7zhtb03oepn74pegnwf.png" alt=" " width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The user opens the app and scans a QR code from the screen.&lt;/p&gt;

&lt;p&gt;If the camera is unavailable, a code can be entered manually.&lt;/p&gt;


&lt;h3&gt;
  
  
  Access confirmation
&lt;/h3&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%2F9f2x4wvwodv6qt9z2lby.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%2F9f2x4wvwodv6qt9z2lby.png" alt=" " width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;service
&lt;/li&gt;
&lt;li&gt;login context
&lt;/li&gt;
&lt;li&gt;request expiration
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All that remains is to confirm.&lt;/p&gt;


&lt;h3&gt;
  
  
  Access hub
&lt;/h3&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%2Fkvwuqyhi32ymi6v7k2fi.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%2Fkvwuqyhi32ymi6v7k2fi.png" alt=" " width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All access entries are stored in one place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;active
&lt;/li&gt;
&lt;li&gt;archived
&lt;/li&gt;
&lt;li&gt;usage history
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a single point of access control.&lt;/p&gt;


&lt;h3&gt;
  
  
  Services list
&lt;/h3&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%2Fivj4u9rbgpdbcnlp2jot.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%2Fivj4u9rbgpdbcnlp2jot.png" alt=" " width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select a service → tap &lt;strong&gt;Sign in&lt;/strong&gt; → confirm access.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 How it works under the hood
&lt;/h2&gt;

&lt;p&gt;Each login is not a data transfer — it is an access confirmation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scan QR
↓
challenge
↓
sign (device_private_key)
↓
verify on server
↓
access granted
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What matters:&lt;/p&gt;

&lt;p&gt;the QR contains only a temporary challenge&lt;br&gt;
each request is single-use&lt;br&gt;
the signature is created on the device&lt;br&gt;
the server verifies it using the public key&lt;/p&gt;




&lt;h2&gt;
  
  
  🔑 Keys and security
&lt;/h2&gt;

&lt;p&gt;The app uses a standard cryptographic model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a key pair is generated (public / private)&lt;/li&gt;
&lt;li&gt;the private key is stored in secure device storage&lt;/li&gt;
&lt;li&gt;the public key is registered on the server&lt;/li&gt;
&lt;li&gt;each login is a signed challenge&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📌 Biometrics and device protection
&lt;/h2&gt;

&lt;p&gt;Biometrics act as a local protection layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Face ID / Touch ID / Android Biometrics&lt;/li&gt;
&lt;li&gt;device PIN&lt;/li&gt;
&lt;li&gt;protected access to keys&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice:&lt;/p&gt;

&lt;p&gt;The device verifies the user locally&lt;br&gt;
and then signs the request.&lt;/p&gt;




&lt;h2&gt;
  
  
  📎 Where passkeys fit in
&lt;/h2&gt;

&lt;p&gt;It is important to be precise here:&lt;/p&gt;

&lt;p&gt;Toqen follows the same core model as passkeys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;device-bound keys&lt;/li&gt;
&lt;li&gt;challenge-response&lt;/li&gt;
&lt;li&gt;no secret transmission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the same time:&lt;/p&gt;

&lt;p&gt;👉 passkeys are defined by standards like WebAuthn / FIDO2&lt;br&gt;
👉 Toqen is an architecture that also supports QR-based flows and external screens&lt;/p&gt;

&lt;p&gt;A correct way to describe it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The architecture aligns with passkey principles and device-bound authentication.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡Why it is faster
&lt;/h2&gt;

&lt;p&gt;Typical login:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;enter username&lt;/li&gt;
&lt;li&gt;enter password&lt;/li&gt;
&lt;li&gt;confirm&lt;/li&gt;
&lt;li&gt;recover if forgotten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2 actions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scan → Confirm&lt;/p&gt;




&lt;h2&gt;
  
  
  📲 Availability
&lt;/h2&gt;

&lt;p&gt;The app is available on Google Play in closed testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forms.gle/f9FcbHyHJiajmFWV7" rel="noopener noreferrer"&gt;Join via form&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forms.gle/sye9s1nRwqdX9zoY9" rel="noopener noreferrer"&gt;Feedback&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/apps/testing/mobile.toqen.app" rel="noopener noreferrer"&gt;Direct access&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open to feedback and discussion.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>security</category>
      <category>mobile</category>
      <category>cryptography</category>
    </item>
    <item>
      <title>The Age of Trust</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Fri, 13 Mar 2026 11:52:03 +0000</pubDate>
      <link>https://forem.com/antonmb/the-age-of-trust-2575</link>
      <guid>https://forem.com/antonmb/the-age-of-trust-2575</guid>
      <description>&lt;h1&gt;
  
  
  The Age of Trust
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Why knowledge is no longer the main advantage in the AI era&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Artificial intelligence has changed the value of knowledge.&lt;/p&gt;

&lt;p&gt;For decades, professional evaluation was based on what a person knew: algorithms, frameworks, programming languages, and specific tools.&lt;/p&gt;

&lt;p&gt;But when knowledge becomes instantly accessible, something else becomes scarce.&lt;/p&gt;

&lt;p&gt;The ability to solve problems.&lt;/p&gt;

&lt;p&gt;And something even more important.&lt;/p&gt;

&lt;p&gt;Trust.&lt;/p&gt;




&lt;h2&gt;
  
  
  The World Has Changed
&lt;/h2&gt;

&lt;p&gt;Artificial intelligence has become a vast encyclopedia available to everyone. It helps find information, accelerates learning, takes over part of routine work, and allows people to solve problems that previously required much more time.&lt;/p&gt;

&lt;p&gt;This is already a new reality.&lt;/p&gt;

&lt;p&gt;And in this reality, the way we evaluate people is beginning to change.&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge Is No Longer the Scarce Resource
&lt;/h2&gt;

&lt;p&gt;In the past, interviews often focused on what a person knew:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sorting algorithms
&lt;/li&gt;
&lt;li&gt;the syntax of a specific programming language
&lt;/li&gt;
&lt;li&gt;details of particular libraries
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, such checks are gradually losing their meaning.&lt;/p&gt;

&lt;p&gt;Knowledge is no longer scarce.&lt;/p&gt;

&lt;p&gt;The scarce resource is the &lt;strong&gt;ability to ask the right questions and achieve results&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI can help find almost any information.&lt;/p&gt;

&lt;p&gt;However, it cannot replace a person who understands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what problem needs to be solved
&lt;/li&gt;
&lt;li&gt;what questions need to be asked
&lt;/li&gt;
&lt;li&gt;how to verify the result
&lt;/li&gt;
&lt;li&gt;how to bring a solution to a practical outcome
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what becomes a real professional skill.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Shift in How We Evaluate People
&lt;/h2&gt;

&lt;p&gt;The focus of evaluation must shift.&lt;/p&gt;

&lt;p&gt;Not toward what a person already knows,&lt;br&gt;&lt;br&gt;
but toward &lt;strong&gt;how they solve problems right now&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A strong professional today is someone who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;can clearly formulate problems
&lt;/li&gt;
&lt;li&gt;can search for solutions
&lt;/li&gt;
&lt;li&gt;can verify results
&lt;/li&gt;
&lt;li&gt;can quickly master new tools
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Speed of Learning Has Changed
&lt;/h2&gt;

&lt;p&gt;Learning speed has changed dramatically.&lt;/p&gt;

&lt;p&gt;An experienced engineer can reach a production-ready level with a new technology within weeks. What once took months or years now happens much faster because information and tools are widely accessible.&lt;/p&gt;

&lt;p&gt;Because of this, a person's past technology stack is no longer the main criterion.&lt;/p&gt;

&lt;p&gt;Something else matters far more.&lt;/p&gt;




&lt;h2&gt;
  
  
  Trust
&lt;/h2&gt;

&lt;p&gt;Whether this person can be trusted.&lt;/p&gt;

&lt;p&gt;People tend to exaggerate experience, simplify the history of past projects, and sometimes adjust reality slightly in their favor. This happens in every industry.&lt;/p&gt;

&lt;p&gt;Over time, a very simple set of factors comes to the forefront:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;How a person solves problems&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Whether they can be trusted&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These two criteria become fundamental.&lt;/p&gt;

&lt;p&gt;And this does not apply only to hiring.&lt;/p&gt;

&lt;p&gt;It applies to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;teams
&lt;/li&gt;
&lt;li&gt;partnerships
&lt;/li&gt;
&lt;li&gt;communities
&lt;/li&gt;
&lt;li&gt;projects
&lt;/li&gt;
&lt;li&gt;any long-term interactions between people
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Trust as Infrastructure
&lt;/h2&gt;

&lt;p&gt;In a world where knowledge is available almost instantly, &lt;strong&gt;trust becomes the new infrastructure of interaction&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Recently, I have been thinking a lot about how trust could become more transparent and measurable in the digital world.&lt;/p&gt;

&lt;p&gt;There are several ideas about how this could be implemented technologically. It is too early to reveal the details.&lt;/p&gt;

&lt;p&gt;I am thinking about this project and will formulate the idea more clearly soon.&lt;/p&gt;

&lt;p&gt;But one thing is already obvious.&lt;/p&gt;

&lt;p&gt;In a world where knowledge is available almost instantly, what matters most is &lt;strong&gt;not what a person knows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What matters most is &lt;strong&gt;whether they can be trusted&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;To be continued.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>career</category>
      <category>futureofwork</category>
    </item>
    <item>
      <title>Instant Access for Users, Fast Integration for Developers</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Sat, 07 Mar 2026 03:49:17 +0000</pubDate>
      <link>https://forem.com/antonmb/instant-access-for-users-fast-integration-for-developers-38jo</link>
      <guid>https://forem.com/antonmb/instant-access-for-users-fast-integration-for-developers-38jo</guid>
      <description>&lt;p&gt;Access infrastructure often becomes one of the most complex parts of a product.&lt;/p&gt;

&lt;p&gt;Login flows evolve.&lt;br&gt;&lt;br&gt;
Security checks appear.&lt;br&gt;&lt;br&gt;
Recovery scenarios multiply.&lt;br&gt;&lt;br&gt;
Protection against abuse becomes necessary.&lt;/p&gt;

&lt;p&gt;Over time this layer grows into a large subsystem that becomes increasingly difficult to modify safely.&lt;/p&gt;

&lt;p&gt;At the same time every new product still needs a reliable way to provide access.&lt;/p&gt;

&lt;p&gt;This leads to a practical engineering question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can access be implemented without building a large authentication system inside the product?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Toqen.app was designed with a simple goal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instant access for users
&lt;/li&gt;
&lt;li&gt;Fast integration for developers&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Instead of implementing authentication infrastructure inside the product, the product connects to an access layer through a lightweight SDK.&lt;/p&gt;

&lt;p&gt;From the product’s perspective the integration is intentionally minimal.&lt;/p&gt;

&lt;p&gt;In most cases it requires only two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install and connect the SDK
&lt;/li&gt;
&lt;li&gt;Store the minimal user record required by the product&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything related to access infrastructure is handled by the access layer.&lt;/p&gt;

&lt;p&gt;This means the product team does &lt;strong&gt;not&lt;/strong&gt; need to implement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;login flows
&lt;/li&gt;
&lt;li&gt;session infrastructure
&lt;/li&gt;
&lt;li&gt;cryptographic verification
&lt;/li&gt;
&lt;li&gt;abuse-prevention mechanisms
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice the basic integration typically takes &lt;strong&gt;around 10 minutes&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Development Mode
&lt;/h2&gt;

&lt;p&gt;The SDK includes a development mode designed for extremely fast local setup.&lt;/p&gt;

&lt;p&gt;In development environments the SDK runs with a built-in &lt;strong&gt;in-memory store&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This allows the access flow to work immediately without configuring any database.&lt;/p&gt;

&lt;p&gt;Developers can start building product features right away while the access layer is already functioning.&lt;/p&gt;


&lt;h2&gt;
  
  
  Moving to Production
&lt;/h2&gt;

&lt;p&gt;When the product is ready for production, the product stores its user data in its own database.&lt;/p&gt;

&lt;p&gt;At this stage the product typically keeps a minimal user record such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an internal user identifier
&lt;/li&gt;
&lt;li&gt;product-specific data
&lt;/li&gt;
&lt;li&gt;optional profile information
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SDK documentation provides clear step-by-step guides for connecting existing databases without redesigning the product architecture.&lt;/p&gt;


&lt;h2&gt;
  
  
  What the Integration Looks Like
&lt;/h2&gt;

&lt;p&gt;A simplified example might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;toqenapp&lt;/span&gt;&lt;span class="sr"&gt;/sd&lt;/span&gt;&lt;span class="err"&gt;k
&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createToqen&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@toqenapp/sdk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toqen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createToqen&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;siteKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SITE_KEY&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;development&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;callbacks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;onLogin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;onLogout&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;toqen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;middleware&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/dashboard&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;toqen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;authorize&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Protected content&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/profile&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;toqen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;authorize&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toqen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What the SDK Does
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;toqen.middleware()&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checks the access cookie&lt;/li&gt;
&lt;li&gt;validates the signature&lt;/li&gt;
&lt;li&gt;decodes claims&lt;/li&gt;
&lt;li&gt;adds the access context to req.toqen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;toqen.authorize()&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checks for valid access&lt;/li&gt;
&lt;li&gt;returns 401 if access is not present&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Reliability and Responsibility
&lt;/h2&gt;

&lt;p&gt;The architecture separates responsibilities clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Toqen.app handles&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;access infrastructure&lt;/li&gt;
&lt;li&gt;access sessions&lt;/li&gt;
&lt;li&gt;security mechanisms around access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The product handles&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;its own database&lt;/li&gt;
&lt;li&gt;business logic&lt;/li&gt;
&lt;li&gt;product functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security updates and improvements to the access infrastructure are maintained by the Toqen.app platform.&lt;/p&gt;

&lt;p&gt;This allows product teams to avoid maintaining complex authentication systems inside their own codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;For engineering teams this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extremely fast initial integration&lt;/li&gt;
&lt;li&gt;predictable architecture&lt;/li&gt;
&lt;li&gt;less security-sensitive code inside the product&lt;/li&gt;
&lt;li&gt;fewer infrastructure components to maintain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teams can focus on building product functionality instead of maintaining authentication infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pilot Integrations
&lt;/h2&gt;

&lt;p&gt;We are currently opening pilot integrations for Toqen.app.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;demonstrate how access infrastructure can remain lightweight while still providing secure and reliable access.&lt;/p&gt;

&lt;p&gt;If you are interested in exploring the approach or testing the integration in your environment, feel free to reach out.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>security</category>
      <category>backend</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Architectural Asymmetry in Authentication: Part 3 — Behavioral Automation and Phishing Efficiency</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Fri, 06 Mar 2026 18:06:32 +0000</pubDate>
      <link>https://forem.com/antonmb/architectural-asymmetry-in-authentication-part-3-behavioral-automation-and-phishing-efficiency-2gg2</link>
      <guid>https://forem.com/antonmb/architectural-asymmetry-in-authentication-part-3-behavioral-automation-and-phishing-efficiency-2gg2</guid>
      <description>&lt;p&gt;In &lt;strong&gt;Part 1&lt;/strong&gt; we introduced the concept of &lt;strong&gt;architectural asymmetry in authentication&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Part 2&lt;/strong&gt; we examined how &lt;strong&gt;disclosure before context&lt;/strong&gt; creates structural exposure inside authentication flows.&lt;/p&gt;

&lt;p&gt;This article explores another important effect of authentication architecture:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;behavioral automation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When authentication patterns repeat across services and over time, user behavior becomes automatic. That automation directly influences the effectiveness of phishing attacks.&lt;/p&gt;

&lt;p&gt;The issue is not user awareness.&lt;/p&gt;

&lt;p&gt;The issue is &lt;strong&gt;pattern conditioning created by system design.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  How Authentication Patterns Become Automatic
&lt;/h1&gt;

&lt;p&gt;Most authentication systems follow a familiar structure:&lt;br&gt;
Page loads&lt;br&gt;
→ User enters identifier&lt;br&gt;
→ User enters secret&lt;br&gt;
→ Access granted&lt;/p&gt;

&lt;p&gt;This sequence appears across thousands of services.&lt;/p&gt;

&lt;p&gt;Because the pattern repeats constantly, users begin executing it &lt;strong&gt;without conscious verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Login becomes less of a decision and more of a reflex.&lt;/p&gt;

&lt;p&gt;As this automation forms, several types of verification weaken:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;domain verification&lt;/li&gt;
&lt;li&gt;redirect origin awareness&lt;/li&gt;
&lt;li&gt;interface inconsistency detection&lt;/li&gt;
&lt;li&gt;unexpected authentication step recognition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The human brain optimizes repeated actions for speed.&lt;/p&gt;

&lt;p&gt;Authentication becomes &lt;strong&gt;habitual interaction&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Cognitive Load and Time Pressure
&lt;/h1&gt;

&lt;p&gt;Authentication often happens under time pressure.&lt;/p&gt;

&lt;p&gt;Typical situations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;internal systems accessed many times per day&lt;/li&gt;
&lt;li&gt;consumer services opened quickly on mobile&lt;/li&gt;
&lt;li&gt;short session lifetimes&lt;/li&gt;
&lt;li&gt;frequent reauthentication policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under these conditions the mental model becomes simple:&lt;br&gt;
Open page&lt;br&gt;
→ complete expected steps&lt;br&gt;
→ continue work&lt;/p&gt;

&lt;p&gt;When a phishing page reproduces the expected pattern, the user’s cognitive system interprets the interaction as familiar.&lt;/p&gt;

&lt;p&gt;The attack succeeds not because the user is careless.&lt;/p&gt;

&lt;p&gt;It succeeds because &lt;strong&gt;the pattern matches expectation&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Phishing Pages Are So Effective
&lt;/h1&gt;

&lt;p&gt;Phishing attacks rarely introduce new interaction models.&lt;/p&gt;

&lt;p&gt;Instead attackers reproduce &lt;strong&gt;the exact interaction pattern users already know&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Typical phishing pages mimic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;login page layout&lt;/li&gt;
&lt;li&gt;identifier input field&lt;/li&gt;
&lt;li&gt;secret entry step&lt;/li&gt;
&lt;li&gt;redirect flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the interaction structure matches expectation, users often complete the process &lt;strong&gt;before deeper verification occurs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The attack relies on &lt;strong&gt;behavioral predictability&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Transferable Secrets Amplify the Risk
&lt;/h1&gt;

&lt;p&gt;Behavioral automation becomes far more dangerous when authentication relies on &lt;strong&gt;transferable secrets&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;passwords&lt;/li&gt;
&lt;li&gt;manually entered OTP codes&lt;/li&gt;
&lt;li&gt;recovery codes&lt;/li&gt;
&lt;li&gt;shared authentication factors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a user enters such a secret into a phishing interface, the attacker can reuse it.&lt;/p&gt;

&lt;p&gt;A behavioral mistake becomes &lt;strong&gt;persistent compromise&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even short-lived secrets can be exploited if interception occurs within the valid window.&lt;/p&gt;

&lt;p&gt;The combination of behavioral automation transferable secrets creates a highly efficient attack path.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Security Training Has Limited Effect
&lt;/h1&gt;

&lt;p&gt;Security awareness training encourages users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;verify domains&lt;/li&gt;
&lt;li&gt;avoid suspicious links&lt;/li&gt;
&lt;li&gt;check login pages carefully&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps.&lt;/p&gt;

&lt;p&gt;But training competes with a powerful opposing force:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;habit formation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When users repeat the same authentication pattern dozens of times per day, automatic behavior dominates.&lt;/p&gt;

&lt;p&gt;Even well-trained users may act automatically when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;they are under time pressure&lt;/li&gt;
&lt;li&gt;the interface looks familiar&lt;/li&gt;
&lt;li&gt;the expected login pattern appears&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Education improves resilience.&lt;/p&gt;

&lt;p&gt;It does not eliminate &lt;strong&gt;behavioral conditioning created by authentication architecture&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Breaking the Behavioral Pattern
&lt;/h1&gt;

&lt;p&gt;Reducing phishing efficiency requires weakening predictable authentication patterns.&lt;/p&gt;

&lt;p&gt;Several architectural approaches help achieve this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Device-Bound Confirmation
&lt;/h3&gt;

&lt;p&gt;Authentication tied to a device rather than manual secret entry.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge-Response Authentication
&lt;/h3&gt;

&lt;p&gt;User confirmation occurs in a trusted environment rather than inside the requesting page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Out-of-Band Verification
&lt;/h3&gt;

&lt;p&gt;Confirmation happens through a separate trusted channel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cryptographic Authenticators
&lt;/h3&gt;

&lt;p&gt;Hardware-backed keys and passkeys replace typed secrets.&lt;/p&gt;

&lt;p&gt;The key principle remains the same:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;confirmation happens in a trusted context, not inside the requesting interface&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This significantly reduces the impact of page imitation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Context Changes the Pattern
&lt;/h1&gt;

&lt;p&gt;When authentication begins with &lt;strong&gt;context validation&lt;/strong&gt; rather than identifier disclosure, the interaction model changes.&lt;/p&gt;

&lt;p&gt;Instead of repeated manual steps, confirmation becomes tied to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;device possession&lt;/li&gt;
&lt;li&gt;session continuity&lt;/li&gt;
&lt;li&gt;cryptographic challenge&lt;/li&gt;
&lt;li&gt;trusted environment signals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Users perform &lt;strong&gt;less repetitive secret entry&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Behavioral automation weakens.&lt;/p&gt;

&lt;p&gt;Attackers can no longer rely on a universal login pattern being executed automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  Architectural Implication
&lt;/h1&gt;

&lt;p&gt;Authentication security depends not only on cryptography and protocols, but also on &lt;strong&gt;behavioral patterns created by system design&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Identity-first systems encourage repeated disclosure of identifiers and secrets.&lt;/p&gt;

&lt;p&gt;Over time this produces a stable loop:&lt;br&gt;
open page&lt;br&gt;
→ disclose&lt;br&gt;
→ proceed&lt;/p&gt;

&lt;p&gt;Attackers exploit the predictability of this loop.&lt;/p&gt;

&lt;p&gt;Architectural changes that reduce repeated secret entry and bind confirmation to trusted contexts weaken this predictability.&lt;/p&gt;

&lt;p&gt;This does not eliminate phishing entirely.&lt;/p&gt;

&lt;p&gt;But it changes &lt;strong&gt;the economics of the attack&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Looking Ahead
&lt;/h1&gt;

&lt;p&gt;Authentication systems are gradually moving toward models where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manual secret entry becomes rare&lt;/li&gt;
&lt;li&gt;confirmation is device-bound&lt;/li&gt;
&lt;li&gt;session context influences authentication decisions&lt;/li&gt;
&lt;li&gt;disclosure happens only when strictly necessary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These changes reduce both compromise scale and behavioral exploitation.&lt;/p&gt;

&lt;p&gt;The shift is gradual, but the architectural direction is becoming clearer.&lt;/p&gt;




&lt;p&gt;In &lt;strong&gt;Part 4&lt;/strong&gt;, we will examine how &lt;strong&gt;transferable secrets amplify compromise scale&lt;/strong&gt; and why reducing their role fundamentally changes the attack surface of authentication systems.&lt;/p&gt;

</description>
      <category>security</category>
      <category>authentication</category>
      <category>cybersecurity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Where AI Will Not Replace Humans Anytime Soon</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Fri, 06 Mar 2026 07:47:53 +0000</pubDate>
      <link>https://forem.com/antonmb/where-ai-will-not-replace-humans-anytime-soon-4f6k</link>
      <guid>https://forem.com/antonmb/where-ai-will-not-replace-humans-anytime-soon-4f6k</guid>
      <description>&lt;p&gt;If AI ever “takes over the world”, it probably will not happen with weapons.&lt;/p&gt;

&lt;p&gt;It will happen much more quietly — by gradually taking over human work.&lt;/p&gt;

&lt;p&gt;We are already seeing this shift.&lt;/p&gt;

&lt;p&gt;AI tools are replacing many routine tasks across industries. But the impact is not uniform. Some professions are changing rapidly, while others remain far more resistant to automation.&lt;/p&gt;

&lt;p&gt;Here are a few areas where humans are likely to remain essential for a long time.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Physical Repair and Service
&lt;/h2&gt;

&lt;p&gt;The real world is messy.&lt;/p&gt;

&lt;p&gt;Unlike software systems, physical environments are rarely predictable or standardized.&lt;/p&gt;

&lt;p&gt;Every repair job can involve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;different equipment
&lt;/li&gt;
&lt;li&gt;unexpected failures
&lt;/li&gt;
&lt;li&gt;incomplete documentation
&lt;/li&gt;
&lt;li&gt;unique environmental conditions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A mechanic repairing an engine or an electrician troubleshooting wiring constantly deals with situations that cannot easily be reduced to structured data.&lt;/p&gt;

&lt;p&gt;Robotics will eventually improve, but deploying adaptable machines capable of handling this complexity at scale is still far away.&lt;/p&gt;

&lt;p&gt;For now, humans remain far better at solving problems in unpredictable environments.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. B2B Sales
&lt;/h2&gt;

&lt;p&gt;Enterprise sales are not just about presenting information.&lt;/p&gt;

&lt;p&gt;They are about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;trust
&lt;/li&gt;
&lt;li&gt;negotiation
&lt;/li&gt;
&lt;li&gt;relationships
&lt;/li&gt;
&lt;li&gt;timing
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI can already help generate emails, proposals, and reports.&lt;/p&gt;

&lt;p&gt;But closing a complex deal still depends heavily on human interaction and trust.&lt;/p&gt;

&lt;p&gt;Large contracts often involve informal communication, subtle signals during negotiations, and long-term relationship building.&lt;/p&gt;

&lt;p&gt;AI will become a powerful assistant in sales workflows, but replacing human sales professionals entirely is unlikely anytime soon.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Software Engineering
&lt;/h2&gt;

&lt;p&gt;AI is already transforming how code is written.&lt;/p&gt;

&lt;p&gt;Tools like AI coding assistants can generate code, suggest fixes, write tests, and even scaffold entire services.&lt;/p&gt;

&lt;p&gt;This significantly impacts routine development tasks.&lt;/p&gt;

&lt;p&gt;In particular:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;junior-level tasks are increasingly automated&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;many middle-level tasks are becoming easier with AI&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, higher-level engineering work remains difficult to automate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system architecture
&lt;/li&gt;
&lt;li&gt;large-scale system design
&lt;/li&gt;
&lt;li&gt;complex integrations
&lt;/li&gt;
&lt;li&gt;engineering trade-offs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The role of developers is shifting.&lt;/p&gt;

&lt;p&gt;Less time writing boilerplate code.&lt;br&gt;&lt;br&gt;
More time designing systems and making architectural decisions.&lt;/p&gt;

&lt;p&gt;The real value of developers increasingly comes from &lt;strong&gt;system thinking rather than typing code&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. DevOps and Infrastructure
&lt;/h2&gt;

&lt;p&gt;Production systems rarely behave like clean diagrams in documentation.&lt;/p&gt;

&lt;p&gt;Real infrastructure often includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;legacy systems
&lt;/li&gt;
&lt;li&gt;unusual configurations
&lt;/li&gt;
&lt;li&gt;partial documentation
&lt;/li&gt;
&lt;li&gt;unexpected operational failures
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a system goes down at 3 AM, solving the problem usually requires experience, judgment, and the ability to understand complex system behavior quickly.&lt;/p&gt;

&lt;p&gt;AI tools can help analyze logs and suggest solutions.&lt;/p&gt;

&lt;p&gt;But responsibility for diagnosing and fixing incidents still falls on experienced engineers.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Cybersecurity
&lt;/h2&gt;

&lt;p&gt;Cybersecurity is fundamentally different from many other technical fields.&lt;/p&gt;

&lt;p&gt;It is not just about solving technical problems.&lt;/p&gt;

&lt;p&gt;It is about defending systems against &lt;strong&gt;intelligent adversaries&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Attackers constantly change tactics, adapt tools, and search for new weaknesses.&lt;/p&gt;

&lt;p&gt;AI will certainly help automate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;threat detection
&lt;/li&gt;
&lt;li&gt;log analysis
&lt;/li&gt;
&lt;li&gt;vulnerability discovery
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But security ultimately remains a strategic battle between humans.&lt;/p&gt;

&lt;p&gt;As long as attackers continue to innovate, human expertise will remain essential.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Shift
&lt;/h2&gt;

&lt;p&gt;AI is not simply replacing professions.&lt;/p&gt;

&lt;p&gt;It is reshaping them.&lt;/p&gt;

&lt;p&gt;Routine and predictable tasks are increasingly automated, while the remaining work shifts toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system thinking
&lt;/li&gt;
&lt;li&gt;responsibility and decision-making
&lt;/li&gt;
&lt;li&gt;working with uncertainty
&lt;/li&gt;
&lt;li&gt;operating in complex real-world environments
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In many fields, the future will not be &lt;strong&gt;humans vs AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It will be &lt;strong&gt;humans working with increasingly powerful tools&lt;/strong&gt; — focusing on the parts of the problem that machines still struggle to solve.&lt;/p&gt;




&lt;p&gt;If you want to explore these ideas further — especially system thinking, decision-making under uncertainty, and working in complex environments — these books are worth reading.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://litseller.com/meadows-donella/thinking-in-systems-a-primer" rel="noopener noreferrer"&gt;Thinking in Systems — Donella Meadows&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A foundational book about how complex systems behave and how feedback loops shape real-world outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://litseller.com/tetlock-philip/superforecasting-the-art-and-science-of-prediction" rel="noopener noreferrer"&gt;Superforecasting — Philip Tetlock&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A deep dive into how people can make better predictions and decisions in uncertain environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://litseller.com/taleb-nassim-nicholas/skin-in-the-game-hidden-asymmetries-in-daily-life" rel="noopener noreferrer"&gt;Skin in the Game — Nassim Nicholas Taleb&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A powerful perspective on responsibility, risk, and why decision-makers must face the consequences of their choices.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://litseller.com/epstein-david/range-why-generalists-triumph-in-a-specialized-world" rel="noopener noreferrer"&gt;Range — David Epstein&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An argument for broad thinking and interdisciplinary knowledge in a world that increasingly rewards adaptability.&lt;/p&gt;

&lt;p&gt;Short summaries of these books are available on &lt;strong&gt;&lt;a href="https://litseller.com" rel="noopener noreferrer"&gt;https://litseller.com&lt;/a&gt;&lt;/strong&gt; if you want to quickly understand their core ideas before deciding whether to read the full book.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>cybersecurity</category>
      <category>futureofwork</category>
    </item>
    <item>
      <title>Telegram and the Architectural Shift Toward Access-Layer Authentication</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Tue, 03 Mar 2026 19:21:40 +0000</pubDate>
      <link>https://forem.com/antonmb/telegram-and-the-architectural-shift-toward-access-layer-authentication-2o0j</link>
      <guid>https://forem.com/antonmb/telegram-and-the-architectural-shift-toward-access-layer-authentication-2o0j</guid>
      <description>&lt;p&gt;Telegram has introduced a new OpenID Connect-based implementation of Log In with Telegram, aligning its authentication flow with standardized OIDC practices.&lt;/p&gt;

&lt;p&gt;Architecturally, it reflects a broader shift: authentication is increasingly designed as a structured access layer within digital systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  Protocol-Driven Access
&lt;/h2&gt;

&lt;p&gt;With OIDC in place, access is formalized through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authorization Code Flow
&lt;/li&gt;
&lt;li&gt;PKCE
&lt;/li&gt;
&lt;li&gt;ID tokens
&lt;/li&gt;
&lt;li&gt;Signature verification
&lt;/li&gt;
&lt;li&gt;Issuer and audience validation
&lt;/li&gt;
&lt;li&gt;Strict &lt;code&gt;redirect_uri&lt;/code&gt; control
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The login process becomes a standardized protocol for negotiating access between client, browser, and server.&lt;/p&gt;

&lt;p&gt;Login evolves into a formal access issuance mechanism.&lt;/p&gt;




&lt;h2&gt;
  
  
  From Identity-Centric to Access-Centric Design
&lt;/h2&gt;

&lt;p&gt;Traditional authentication systems centered around identity storage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User accounts
&lt;/li&gt;
&lt;li&gt;Profile attributes
&lt;/li&gt;
&lt;li&gt;Credential verification
&lt;/li&gt;
&lt;li&gt;Password recovery
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Modern architectures increasingly center around access control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When is access granted?
&lt;/li&gt;
&lt;li&gt;Under which scope?
&lt;/li&gt;
&lt;li&gt;For how long?
&lt;/li&gt;
&lt;li&gt;Under what validation guarantees?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identity remains part of the system.&lt;br&gt;&lt;br&gt;
Access becomes the architectural focus.&lt;/p&gt;




&lt;h2&gt;
  
  
  Access as a Dedicated Layer
&lt;/h2&gt;

&lt;p&gt;When authentication is implemented through OIDC + PKCE, attention shifts toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session issuance
&lt;/li&gt;
&lt;li&gt;Token lifecycle
&lt;/li&gt;
&lt;li&gt;Scope definition
&lt;/li&gt;
&lt;li&gt;Cryptographic validation
&lt;/li&gt;
&lt;li&gt;Lifetime enforcement
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This defines an &lt;strong&gt;access layer&lt;/strong&gt; — a component responsible for governing how access is negotiated, issued, and validated.&lt;/p&gt;

&lt;p&gt;Such a layer integrates cleanly with existing authentication stacks and access management systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  Trusted Client Confirmation
&lt;/h2&gt;

&lt;p&gt;Telegram’s flow includes confirmation inside the application itself.&lt;/p&gt;

&lt;p&gt;Architecturally, this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Binds the browser session to an authenticated client
&lt;/li&gt;
&lt;li&gt;Moves confirmation into a trusted environment
&lt;/li&gt;
&lt;li&gt;Reduces exposure to phishing-style credential capture
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Session binding becomes part of the access architecture.&lt;/p&gt;




&lt;h2&gt;
  
  
  Scoped and Contextual Access
&lt;/h2&gt;

&lt;p&gt;Use of scopes (e.g., phone sharing, communication permissions) structures access as a defined set of rights.&lt;/p&gt;

&lt;p&gt;This model introduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit permission negotiation
&lt;/li&gt;
&lt;li&gt;Context-bound access
&lt;/li&gt;
&lt;li&gt;Clearly defined capability boundaries
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Authorization becomes a controlled issuance of rights with defined parameters.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architectural Direction
&lt;/h2&gt;

&lt;p&gt;Standardized, protocol-driven authentication models point toward a clear architectural direction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access mechanisms are formalized
&lt;/li&gt;
&lt;li&gt;Login flows are protocolized
&lt;/li&gt;
&lt;li&gt;Session issuance is cryptographically verifiable
&lt;/li&gt;
&lt;li&gt;Access control is treated as infrastructure
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Authentication increasingly functions as a &lt;strong&gt;dedicated access layer&lt;/strong&gt; within system design.&lt;/p&gt;

&lt;p&gt;Telegram represents one example of this broader architectural evolution.&lt;/p&gt;

&lt;p&gt;Access-layer design is becoming a norm rather than an exception in modern digital systems.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>cybersecurity</category>
      <category>architecture</category>
      <category>oidc</category>
    </item>
    <item>
      <title>After the AI Boom Comes the Engineering Correction</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Tue, 03 Mar 2026 04:01:37 +0000</pubDate>
      <link>https://forem.com/antonmb/after-the-ai-boom-comes-the-engineering-correction-4607</link>
      <guid>https://forem.com/antonmb/after-the-ai-boom-comes-the-engineering-correction-4607</guid>
      <description>&lt;p&gt;Software history does not move linearly.&lt;br&gt;&lt;br&gt;
It moves in cycles.&lt;/p&gt;

&lt;p&gt;Every major wave of automation follows a similar structural pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Acceleration
&lt;/li&gt;
&lt;li&gt;Mass adoption
&lt;/li&gt;
&lt;li&gt;Complexity explosion
&lt;/li&gt;
&lt;li&gt;Operational cost growth
&lt;/li&gt;
&lt;li&gt;Engineering stabilization
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;AI-generated code is not a disruption of this pattern.&lt;br&gt;&lt;br&gt;
It is the latest iteration.&lt;/p&gt;

&lt;p&gt;This article is not about whether AI will replace developers.&lt;br&gt;&lt;br&gt;
It is about how automation repeatedly shifts complexity rather than removing it.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Recurring Pattern in Software History
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1️⃣ WordPress and the Democratization Wave (2008–2014)
&lt;/h2&gt;

&lt;p&gt;In 2011, WordPress powered ~8% of all websites.&lt;br&gt;&lt;br&gt;
By 2014, that number reached ~20%.&lt;br&gt;&lt;br&gt;
Today it exceeds 40% (W3Techs).&lt;/p&gt;

&lt;p&gt;The narrative at the time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build websites without developers
&lt;/li&gt;
&lt;li&gt;Fast deployment
&lt;/li&gt;
&lt;li&gt;Massive plugin ecosystem
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The structural result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plugin conflicts
&lt;/li&gt;
&lt;li&gt;Update instability
&lt;/li&gt;
&lt;li&gt;Security surface expansion
&lt;/li&gt;
&lt;li&gt;Performance degradation from heavy themes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A secondary market emerged:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security audits
&lt;/li&gt;
&lt;li&gt;Performance refactoring
&lt;/li&gt;
&lt;li&gt;Migration to custom stacks
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Acceleration created architectural debt.&lt;br&gt;&lt;br&gt;
Debt created demand for engineers.&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ Low-Code / No-Code Expansion (2015–2020)
&lt;/h2&gt;

&lt;p&gt;Gartner reported &amp;gt;20% CAGR in low-code platforms during the mid-2010s.&lt;/p&gt;

&lt;p&gt;The promise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business teams build their own tools
&lt;/li&gt;
&lt;li&gt;MVP in days
&lt;/li&gt;
&lt;li&gt;Reduced dependency on engineering
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What happened at scale:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integration constraints
&lt;/li&gt;
&lt;li&gt;Custom logic bottlenecks
&lt;/li&gt;
&lt;li&gt;Vendor lock-in
&lt;/li&gt;
&lt;li&gt;Scaling limitations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Low-code reduced the cost of &lt;em&gt;starting&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
It did not reduce the cost of &lt;em&gt;growing&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  3️⃣ Microservices Hyper-Expansion (2015–2020)
&lt;/h2&gt;

&lt;p&gt;After public architecture disclosures from Netflix and Amazon, microservices became aspirational architecture.&lt;/p&gt;

&lt;p&gt;Even small teams adopted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Distributed services
&lt;/li&gt;
&lt;li&gt;Kubernetes
&lt;/li&gt;
&lt;li&gt;Service meshes
&lt;/li&gt;
&lt;li&gt;Complex CI/CD pipelines
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CNCF surveys show Kubernetes adoption accelerating sharply after 2017, reaching broad enterprise usage by the early 2020s.&lt;/p&gt;

&lt;p&gt;Then reality appeared:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operational overhead
&lt;/li&gt;
&lt;li&gt;DevOps team expansion
&lt;/li&gt;
&lt;li&gt;Observability complexity
&lt;/li&gt;
&lt;li&gt;Distributed failure modes
&lt;/li&gt;
&lt;li&gt;Network latency accumulation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A counter-movement emerged:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modular monoliths
&lt;/li&gt;
&lt;li&gt;Infrastructure simplification
&lt;/li&gt;
&lt;li&gt;Service consolidation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again:&lt;/p&gt;

&lt;p&gt;Acceleration → Complexity → Correction&lt;/p&gt;




&lt;h1&gt;
  
  
  The AI Code Phase (2023–…)
&lt;/h1&gt;

&lt;p&gt;GitHub reports indicate that a significant portion of new code is now written with AI assistance.&lt;br&gt;&lt;br&gt;
In some surveys, over 40% of new code involves AI tools.&lt;/p&gt;

&lt;p&gt;What AI improves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boilerplate generation
&lt;/li&gt;
&lt;li&gt;CRUD scaffolding
&lt;/li&gt;
&lt;li&gt;Test generation
&lt;/li&gt;
&lt;li&gt;Rapid prototyping
&lt;/li&gt;
&lt;li&gt;Documentation drafting
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What AI does &lt;em&gt;not&lt;/em&gt; solve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cohesive system architecture
&lt;/li&gt;
&lt;li&gt;Long-term maintainability
&lt;/li&gt;
&lt;li&gt;Evolutionary design
&lt;/li&gt;
&lt;li&gt;Scaling trade-offs
&lt;/li&gt;
&lt;li&gt;Operational simplicity
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI generates functions.&lt;br&gt;&lt;br&gt;
It does not carry responsibility for system evolution.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Structural Shift
&lt;/h1&gt;

&lt;p&gt;AI lowers the cost of &lt;strong&gt;writing code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It does not lower the cost of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintaining code
&lt;/li&gt;
&lt;li&gt;Refactoring systems
&lt;/li&gt;
&lt;li&gt;Scaling infrastructure
&lt;/li&gt;
&lt;li&gt;Integrating with external systems
&lt;/li&gt;
&lt;li&gt;Reducing architectural entropy
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Complexity does not disappear.&lt;br&gt;&lt;br&gt;
It relocates.&lt;/p&gt;

&lt;p&gt;From creation&lt;br&gt;&lt;br&gt;
to operation.&lt;/p&gt;




&lt;h1&gt;
  
  
  The 5-Phase Automation Model
&lt;/h1&gt;

&lt;p&gt;Across waves, the pattern remains consistent:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1 – Acceleration (2–4 years)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
New tooling dramatically increases output velocity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 – Mass Adoption&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Barriers fall. System count explodes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 – Architectural Debt Accumulation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inconsistent patterns emerge. Redundancy grows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4 – Operational Cost Expansion&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Maintenance outpaces development cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 5 – Engineering Stabilization&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Demand shifts toward simplification and structural redesign.&lt;/p&gt;

&lt;p&gt;AI is currently in Phase 2.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Will Likely Happen Next
&lt;/h1&gt;

&lt;p&gt;Based on previous cycles:&lt;/p&gt;

&lt;p&gt;2023–2026 → AI-driven rapid generation&lt;br&gt;&lt;br&gt;
2026–2030 → Structural cleanup and consolidation  &lt;/p&gt;

&lt;p&gt;This is not collapse.&lt;br&gt;&lt;br&gt;
It is correction.&lt;/p&gt;




&lt;h1&gt;
  
  
  Who Becomes Critical in the Stabilization Phase
&lt;/h1&gt;

&lt;p&gt;Not “people who can write code.”&lt;/p&gt;

&lt;p&gt;But engineers who can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read large unfamiliar codebases
&lt;/li&gt;
&lt;li&gt;Identify redundancy
&lt;/li&gt;
&lt;li&gt;Remove unnecessary abstraction layers
&lt;/li&gt;
&lt;li&gt;Collapse over-engineered systems
&lt;/li&gt;
&lt;li&gt;Redesign for scale
&lt;/li&gt;
&lt;li&gt;Reduce operational surface area
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The scarce skill is not typing speed.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;system-level simplification under real-world constraints.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  A Technical Observation About AI-Generated Code
&lt;/h1&gt;

&lt;p&gt;AI tends to produce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defensive over-abstraction
&lt;/li&gt;
&lt;li&gt;Pattern repetition
&lt;/li&gt;
&lt;li&gt;Verbose indirection
&lt;/li&gt;
&lt;li&gt;Excessive optionality
&lt;/li&gt;
&lt;li&gt;Generic solutions where specificity would be simpler
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is rational behavior for probabilistic generation.&lt;/p&gt;

&lt;p&gt;It is not optimal behavior for long-term systems.&lt;/p&gt;

&lt;p&gt;Entropy increases quietly.&lt;/p&gt;




&lt;p&gt;Automation first lowers entry barriers.&lt;br&gt;&lt;br&gt;
Later, it raises the value of expertise.&lt;/p&gt;

&lt;p&gt;Software history does not show engineers disappearing.&lt;br&gt;&lt;br&gt;
It shows engineers becoming more necessary during stabilization.&lt;/p&gt;

&lt;p&gt;We are in the acceleration phase.&lt;/p&gt;

&lt;p&gt;Stabilization is structurally inevitable.&lt;/p&gt;

&lt;p&gt;And it will require engineers who design systems — not just generate code.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>ai</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Pilot Program is open. Access-first authentication in production.</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Tue, 03 Mar 2026 00:42:07 +0000</pubDate>
      <link>https://forem.com/antonmb/pilot-program-is-open-access-first-authentication-in-production-6no</link>
      <guid>https://forem.com/antonmb/pilot-program-is-open-access-first-authentication-in-production-6no</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/toqenapp/access-first-authentication-in-production-opening-the-toqenapp-pilot-program-3m86" class="crayons-story__hidden-navigation-link"&gt;Access-First Authentication in Production: Opening the Toqen.app Pilot Program&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/toqenapp"&gt;
            &lt;img alt="Toqen.app logo" 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%2Forganization%2Fprofile_image%2F12579%2Fc1a9ea36-d31e-4203-b400-2bd54ddbad90.png" class="crayons-logo__image" width="800" height="800"&gt;
          &lt;/a&gt;

          &lt;a href="/antonmb" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" alt="antonmb profile" class="crayons-avatar__image" width="300" height="300"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/antonmb" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Anton Minin Baranovskii
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Anton Minin Baranovskii
                
              
              &lt;div id="story-author-preview-content-3301947" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/antonmb" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" class="crayons-avatar__image" alt="" width="300" height="300"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Anton Minin Baranovskii&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/toqenapp" class="crayons-story__secondary fw-medium"&gt;Toqen.app&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/toqenapp/access-first-authentication-in-production-opening-the-toqenapp-pilot-program-3m86" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/toqenapp/access-first-authentication-in-production-opening-the-toqenapp-pilot-program-3m86" id="article-link-3301947"&gt;
          Access-First Authentication in Production: Opening the Toqen.app Pilot Program
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/authentication"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;authentication&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/architecture"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;architecture&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/toqenapp/access-first-authentication-in-production-opening-the-toqenapp-pilot-program-3m86" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/toqenapp/access-first-authentication-in-production-opening-the-toqenapp-pilot-program-3m86#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>authentication</category>
      <category>security</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is so complicated about authentication?
Connected, configured, launched, everything works.
Then why is there so much discussion around it?</title>
      <dc:creator>Anton Minin Baranovskii</dc:creator>
      <pubDate>Tue, 03 Mar 2026 00:40:55 +0000</pubDate>
      <link>https://forem.com/antonmb/what-is-so-complicated-about-authentication-connected-configured-launched-everything-works-9p8</link>
      <guid>https://forem.com/antonmb/what-is-so-complicated-about-authentication-connected-configured-launched-everything-works-9p8</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/antonmb/seriously-whats-so-hard-about-authentication-3ajm" class="crayons-story__hidden-navigation-link"&gt;Seriously? What’s So Hard About Authentication?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/antonmb" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" alt="antonmb profile" class="crayons-avatar__image" width="300" height="300"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/antonmb" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Anton Minin Baranovskii
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Anton Minin Baranovskii
                
              
              &lt;div id="story-author-preview-content-3299996" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/antonmb" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3667847%2F860f21ff-4ee9-40c5-aced-b1b913c378c9.png" class="crayons-avatar__image" alt="" width="300" height="300"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Anton Minin Baranovskii&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/antonmb/seriously-whats-so-hard-about-authentication-3ajm" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/antonmb/seriously-whats-so-hard-about-authentication-3ajm" id="article-link-3299996"&gt;
          Seriously? What’s So Hard About Authentication?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/authentication"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;authentication&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/architecture"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;architecture&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/antonmb/seriously-whats-so-hard-about-authentication-3ajm" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/antonmb/seriously-whats-so-hard-about-authentication-3ajm#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>authentication</category>
      <category>security</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
