<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Martin Kambla</title>
    <description>The latest articles on DEV Community by Martin Kambla (@xmkx).</description>
    <link>https://dev.to/xmkx</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%2F3855918%2Fa334d629-dda6-444b-a4cc-87f6826ae68e.png</url>
      <title>DEV Community: Martin Kambla</title>
      <link>https://dev.to/xmkx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xmkx"/>
    <language>en</language>
    <item>
      <title>The Commoditization Thesis: What Actually Happens When Software Gets Easy</title>
      <dc:creator>Martin Kambla</dc:creator>
      <pubDate>Wed, 08 Apr 2026 01:03:48 +0000</pubDate>
      <link>https://dev.to/xmkx/the-commoditization-thesis-what-actually-happens-when-software-gets-easy-1lm7</link>
      <guid>https://dev.to/xmkx/the-commoditization-thesis-what-actually-happens-when-software-gets-easy-1lm7</guid>
      <description>&lt;p&gt;The data is clear on what’s already happening.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Labor’s share of GDP fell to &lt;strong&gt;53.8% in Q3 2025&lt;/strong&gt; — the lowest in the modern BLS series back to 1947. Capital is eating labor’s lunch, and AI is accelerating it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Entry-level pressure is already visible: Stanford’s Digital Economy Lab found declines concentrated among &lt;strong&gt;22–25 year-old workers in AI-exposed jobs&lt;/strong&gt; such as software development, customer service, and clerical work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The narrower BLS category of &lt;strong&gt;computer programmers&lt;/strong&gt; is projected to &lt;strong&gt;decline 6% through 2034&lt;/strong&gt;, even while broader software development roles still grow. That distinction matters: implementation-heavy work gets pressured first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meanwhile, workers with &lt;strong&gt;AI skills command meaningful wage premiums&lt;/strong&gt;. PwC found an average &lt;strong&gt;56% wage premium&lt;/strong&gt; for workers with AI skills in 2024, and other labor-market reporting showed premiums up to &lt;strong&gt;43%&lt;/strong&gt; for jobs listing multiple AI skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tech salary growth slowed to &lt;strong&gt;1.6% in 2025&lt;/strong&gt;, down from &lt;strong&gt;3.5% in 2023&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not speculation. The compression is measurable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Historical pattern — this has happened before, twice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Web development (late 90s → 2008):&lt;/strong&gt; Developers charged premium rates to technically naive clients. WordPress, Squarespace, and frameworks killed the implementation premium. Value migrated to architecture, product strategy, integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile apps (2008 → mid-2010s):&lt;/strong&gt; App Store gold rush → React Native / Flutter commoditized a large chunk of standalone app building. Same outcome: implementation became cheaper, judgment became more expensive.&lt;/p&gt;

&lt;p&gt;The arc is usually the same: scarcity premium → tool-driven commoditization → value migrates upward to domain expertise, architecture, integration, and judgment.&lt;/p&gt;

&lt;p&gt;Historically, that took &lt;strong&gt;5–8 years&lt;/strong&gt;. AI appears to be compressing the cycle closer to &lt;strong&gt;2–3 years&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the capital side of this looks like
&lt;/h2&gt;

&lt;p&gt;Piketty’s &lt;strong&gt;r &amp;gt; g&lt;/strong&gt; framework feels increasingly visible in current data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;S&amp;amp;P 500&lt;/strong&gt; is dramatically above its January 2023 level.&lt;/li&gt;
&lt;li&gt;AI captured &lt;strong&gt;close to 50% of all global venture funding in 2025&lt;/strong&gt;, with roughly &lt;strong&gt;$202.3B&lt;/strong&gt; invested across infrastructure, foundation labs, and applications.&lt;/li&gt;
&lt;li&gt;McKinsey has explicitly warned that when &lt;strong&gt;real estate and equity values rise faster than GDP&lt;/strong&gt;, capital can get pulled toward asset inflation and repurchases rather than the kinds of investment that generate broad long-run growth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Labor income alone is becoming a weaker wealth-building vehicle. The gap between returns on capital and returns on labor is widening, not narrowing. For someone starting from near-zero capital, that is the fundamental challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  The critical prediction for 2026–2030
&lt;/h2&gt;

&lt;p&gt;Middle-class software developer income will likely bifurcate.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bottom 60% of current developers:&lt;/strong&gt; real income stagnation or decline. Implementation work commoditizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Top 20%:&lt;/strong&gt; premium widens. Architecture, security, compliance, domain-specific systems, AI integration, and judgment-heavy work become more valuable.&lt;/li&gt;
&lt;li&gt;The gap between these groups likely widens through at least &lt;strong&gt;2030&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because software disappears.&lt;/p&gt;

&lt;p&gt;Because &lt;strong&gt;undifferentiated software work gets repriced downward&lt;/strong&gt;, while the value of high-context, high-trust, high-complexity work rises by contrast.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable truth
&lt;/h2&gt;

&lt;p&gt;Software commoditization means the &lt;strong&gt;floor rises&lt;/strong&gt; — more people can build — but the &lt;strong&gt;ceiling also rises&lt;/strong&gt;. Complex integration, security, compliance, architecture, and domain-specific work become more valuable precisely because raw implementation gets cheaper.&lt;/p&gt;

&lt;p&gt;That usually hollows out the middle.&lt;/p&gt;

&lt;p&gt;The real risk is getting distracted by opportunities that look easier, when in practice they are just more crowded.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>I scanned 8 popular npm projects for quantum-vulnerable cryptography. Here's what I found.</title>
      <dc:creator>Martin Kambla</dc:creator>
      <pubDate>Wed, 01 Apr 2026 15:25:03 +0000</pubDate>
      <link>https://dev.to/xmkx/i-scanned-8-popular-npm-projects-for-quantum-vulnerable-cryptography-heres-what-i-found-48</link>
      <guid>https://dev.to/xmkx/i-scanned-8-popular-npm-projects-for-quantum-vulnerable-cryptography-heres-what-i-found-48</guid>
      <description>&lt;p&gt;This week Google published a paper that changed the post-quantum timeline. Breaking ECDSA-256 — the signature scheme protecting Bitcoin, Ethereum, and most of the web — now requires &lt;a href="https://research.google/blog/safeguarding-cryptocurrency-by-disclosing-quantum-vulnerabilities-responsibly/" rel="noopener noreferrer"&gt;roughly 1,200 logical qubits and under 500,000 physical qubits&lt;/a&gt;. That's a 20x reduction from previous estimates.&lt;/p&gt;

&lt;p&gt;I wanted to answer a simple question: &lt;strong&gt;how exposed are the projects we all depend on?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://github.com/PQCWorld/pqaudit" rel="noopener noreferrer"&gt;pqaudit&lt;/a&gt;, an open-source CLI that scans source code and npm dependencies for quantum-vulnerable cryptography — algorithms broken by Shor's algorithm (RSA, ECDSA, Ed25519, ECDH, Diffie-Hellman) and weakened by Grover's algorithm (AES-128) — and flags the NIST-approved replacement for each one.&lt;/p&gt;

&lt;p&gt;Then I pointed it at 8 popular projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Files&lt;/th&gt;
&lt;th&gt;Critical&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;th&gt;PQC Ready&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Express&lt;/td&gt;
&lt;td&gt;142&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fastify&lt;/td&gt;
&lt;td&gt;295&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;22,478&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prisma&lt;/td&gt;
&lt;td&gt;3,291&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jsonwebtoken&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solana web3.js&lt;/td&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ethereum web3.js&lt;/td&gt;
&lt;td&gt;1,194&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signal Desktop&lt;/td&gt;
&lt;td&gt;2,854&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;30,423 files scanned. 6 of 8 are not quantum-ready.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me walk through the interesting ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  jsonwebtoken: 21 critical findings in 65 files
&lt;/h2&gt;

&lt;p&gt;This one hit hardest. &lt;a href="https://github.com/auth0/node-jsonwebtoken" rel="noopener noreferrer"&gt;node-jsonwebtoken&lt;/a&gt; is the most popular JWT library on npm — and it's fundamentally built on quantum-vulnerable algorithms.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[!!] RSA — RS256, RS384, RS512, PS256, PS384, PS512
     sign.js, verify.js, lib/validateAsymmetricKey.js
     Fix: ML-DSA-65 (FIPS 204)

[!!] ECDSA — ES256, ES384, ES512
     lib/validateAsymmetricKey.js
     Fix: ML-DSA-65 (FIPS 204)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every signing algorithm the library supports — RS256, ES256, and their variants — is broken by Shor's algorithm. If your app uses JWTs for authentication (and most Node.js apps do), your auth tokens are signed with quantum-vulnerable cryptography.&lt;/p&gt;

&lt;p&gt;There's no PQC JWT standard yet. The IETF is working on it, but it doesn't exist today. This is a systemic gap in the entire web ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solana web3.js: Ed25519 everywhere
&lt;/h2&gt;

&lt;p&gt;Solana's entire identity and transaction model is built on Ed25519:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[!!] Ed25519 — src/account.ts, src/keypair.ts, src/transaction/legacy.ts
     Fix: ML-DSA-65 (FIPS 204) — blocked by Solana protocol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;17 critical findings across 104 files. Every account, every keypair, every transaction signature depends on an algorithm that Shor's breaks. The secp256k1 program (for Ethereum compatibility) adds more.&lt;/p&gt;

&lt;p&gt;The migration path exists — ML-DSA-65 is the NIST replacement — but it requires a protocol-level upgrade across the entire Solana network. This isn't something you can fix in your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next.js: 17 critical findings (but it's not what you think)
&lt;/h2&gt;

&lt;p&gt;Next.js has 17 critical findings across 22,478 files. Sounds bad, but the nuance matters — &lt;strong&gt;every single finding is in vendored bundles&lt;/strong&gt;, not in Next.js source code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;crypto-browserify&lt;/code&gt; bundled in &lt;code&gt;packages/next/src/compiled/&lt;/code&gt; contains RSA, ECDSA, Ed25519, ECDH, and Diffie-Hellman polyfills&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;jsonwebtoken&lt;/code&gt; compiled into the same directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;constants-browserify&lt;/code&gt; exposes RSA padding and ECDSA engine constants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next.js doesn't use quantum-vulnerable crypto itself. But it ships it to every application that depends on it, through vendored dependencies. This is a supply-chain problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Signal Desktop: the only one migrating
&lt;/h2&gt;

&lt;p&gt;Signal Desktop had 12 critical findings (X25519 key exchange, ECDSA), but it's also &lt;strong&gt;the only project in this scan that has active PQC adoption&lt;/strong&gt;. pqaudit detected ML-KEM (Kyber) usage through &lt;code&gt;@signalapp/libsignal-client&lt;/code&gt; — Signal's implementation of the &lt;a href="https://signal.org/docs/specifications/pqxdh/" rel="noopener noreferrer"&gt;PQXDH protocol&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Signal is ahead. Everyone else is at zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Express and Prisma: PQC ready
&lt;/h2&gt;

&lt;p&gt;Express and Prisma both passed with zero critical findings. The pattern is clear — frameworks that delegate cryptography to the runtime or database layer don't have this problem. The vulnerability lives in libraries that implement or wrap cryptographic primitives directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What breaks and what doesn't
&lt;/h2&gt;

&lt;p&gt;Not all cryptography is quantum-vulnerable. Here's the split:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Broken by Shor's algorithm (must migrate):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RSA (any key size) — key exchange and signatures&lt;/li&gt;
&lt;li&gt;ECDSA, Ed25519, EdDSA — signatures&lt;/li&gt;
&lt;li&gt;ECDH, X25519, Diffie-Hellman — key exchange&lt;/li&gt;
&lt;li&gt;DSA — signatures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Weakened by Grover's algorithm:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-128 — reduced to 64-bit effective security. Fix: use AES-256.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Already quantum-safe (no action needed):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-256, ChaCha20-Poly1305 — symmetric encryption&lt;/li&gt;
&lt;li&gt;SHA-256, SHA-3 — hashing&lt;/li&gt;
&lt;li&gt;ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA (SPHINCS+) — the NIST PQC standards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;You might think quantum computers are far away. Google's paper says otherwise. And even before a quantum computer exists, "harvest now, decrypt later" attacks mean adversaries are collecting your encrypted traffic today for future decryption.&lt;/p&gt;

&lt;p&gt;The NSA's &lt;a href="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF" rel="noopener noreferrer"&gt;CNSA 2.0&lt;/a&gt; mandates PQC for new national security systems by &lt;strong&gt;January 2027&lt;/strong&gt;. Google has set a &lt;a href="https://blog.google/innovation-and-ai/technology/safety-security/cryptography-migration-timeline/" rel="noopener noreferrer"&gt;2029 deadline&lt;/a&gt; for its own products. NIST finalized the standards (FIPS 203, 204, 205) in August 2024.&lt;/p&gt;

&lt;p&gt;The migration window is open. The first step is visibility — knowing where quantum-vulnerable cryptography lives in your stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx pqaudit &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command, no signup, no config. It scans your source code and npm dependencies, classifies findings by severity, and tells you the NIST-approved replacement for each one.&lt;/p&gt;

&lt;p&gt;Outputs: human-readable text, JSON, &lt;a href="https://cyclonedx.org/capabilities/cbom/" rel="noopener noreferrer"&gt;CycloneDX CBOM&lt;/a&gt;, or &lt;a href="https://sarifweb.azurewebsites.net/" rel="noopener noreferrer"&gt;SARIF&lt;/a&gt; for GitHub Code Scanning.&lt;/p&gt;

&lt;p&gt;For CI/CD:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx pqaudit &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--ci&lt;/span&gt; &lt;span class="nt"&gt;--format&lt;/span&gt; sarif &lt;span class="nt"&gt;--output&lt;/span&gt; pqaudit.sarif
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's MIT licensed and on &lt;a href="https://github.com/PQCWorld/pqaudit" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. Issues and contributions welcome — especially detection rules for languages beyond JavaScript/TypeScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full results
&lt;/h2&gt;

&lt;p&gt;The detailed scan data for all 8 projects is published at &lt;a href="https://pqcworld.com/scan-results.html" rel="noopener noreferrer"&gt;pqcworld.com/scan-results.html&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>security</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>node</category>
    </item>
  </channel>
</rss>
