<?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: Induwara Ashinsana</title>
    <description>The latest articles on DEV Community by Induwara Ashinsana (@induwara_ashinsana_9e4d5b).</description>
    <link>https://dev.to/induwara_ashinsana_9e4d5b</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958655%2F6fa1c062-e3e8-4949-affc-f60cccfc2dfb.jpg</url>
      <title>DEV Community: Induwara Ashinsana</title>
      <link>https://dev.to/induwara_ashinsana_9e4d5b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/induwara_ashinsana_9e4d5b"/>
    <language>en</language>
    <item>
      <title>Korea capped 2x leverage. Retail bought 3x instead.</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Wed, 05 Aug 2026 12:36:14 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/korea-capped-2x-leverage-retail-bought-3x-instead-405l</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/korea-capped-2x-leverage-retail-bought-3x-instead-405l</guid>
      <description>&lt;p&gt;Korean retail investors put &lt;strong&gt;$4.63 billion&lt;/strong&gt; into a single &lt;strong&gt;3x leveraged ETF&lt;/strong&gt; in the three weeks after their government tightened the rules on 2x domestic products. That is more than seven times what went into the next most-bought US stock. The regulator closed one door and the money walked straight to a riskier one.&lt;/p&gt;

&lt;p&gt;I want to write about why, because the interesting failure here is not financial. It is a systems design failure, and I have shipped the same bug in software more than once.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What the numbers actually show
&lt;/h2&gt;

&lt;p&gt;The reporting is from &lt;strong&gt;The Asia Business Daily&lt;/strong&gt; (&lt;a href="https://www.asiae.co.kr/en/article/2026080416131786841" rel="noopener noreferrer"&gt;asiae.co.kr&lt;/a&gt;, 5 August 2026, by Park SeungUk), citing &lt;strong&gt;Korea Securities Depository&lt;/strong&gt; data. I am commenting on it, not reproducing it, so the figures below are the ones that carry the argument.&lt;/p&gt;

&lt;p&gt;Between &lt;strong&gt;16 July&lt;/strong&gt; (when the Korean government announced its single-stock leverage measures) and &lt;strong&gt;3 August&lt;/strong&gt;, the most-purchased US-listed security by Korean investors was &lt;strong&gt;SOXL&lt;/strong&gt;, Direxion's 3x daily semiconductor ETF.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Security&lt;/th&gt;
&lt;th&gt;Tracks&lt;/th&gt;
&lt;th&gt;Daily leverage&lt;/th&gt;
&lt;th&gt;Purchase volume (16 Jul – 3 Aug)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SOXL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;US semiconductor index&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3x&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$4,636.17 M&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Micron Technology&lt;/td&gt;
&lt;td&gt;Itself (ordinary share)&lt;/td&gt;
&lt;td&gt;1x&lt;/td&gt;
&lt;td&gt;$515.35 M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;SOXL + KORU + TSLL&lt;/strong&gt; combined&lt;/td&gt;
&lt;td&gt;Chips, KOSPI, Tesla&lt;/td&gt;
&lt;td&gt;3x / 3x / 2x&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$5,174.40 M&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same three, previous 13 trading days&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;$4,145.87 M&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three of the ten most-bought US securities were leveraged ETFs. Combined buying rose by &lt;strong&gt;more than $1 billion&lt;/strong&gt; against the prior 13-day window. &lt;strong&gt;KORU&lt;/strong&gt; is a 3x product on the KOSPI itself, which means Korean investors were routing through New York to take triple-leveraged exposure to their own domestic index.&lt;/p&gt;




&lt;h2&gt;
  
  
  📉 The control worked perfectly. The goal did not.
&lt;/h2&gt;

&lt;p&gt;The measures themselves landed exactly as designed. Minimum margin for domestic single-stock leverage went from &lt;strong&gt;₩10 million to ₩30 million&lt;/strong&gt;, and a &lt;strong&gt;20% per-person portfolio cap&lt;/strong&gt; took effect on 29 July. Domestic trading in the 16 affected products then did this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Individual investors&lt;/th&gt;
&lt;th&gt;Foreign investors&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;30 July&lt;/td&gt;
&lt;td&gt;₩5,543.1 bn&lt;/td&gt;
&lt;td&gt;₩4,858.8 bn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;31 July (₩30m margin live)&lt;/td&gt;
&lt;td&gt;₩423.7 bn&lt;/td&gt;
&lt;td&gt;₩1,016.4 bn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 August&lt;/td&gt;
&lt;td&gt;₩309.2 bn&lt;/td&gt;
&lt;td&gt;₩488.0 bn&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Individual trading fell roughly &lt;strong&gt;94%&lt;/strong&gt; in three sessions. If your dashboard metric was "domestic single-stock leverage volume," you shipped a triumph.&lt;/p&gt;

&lt;p&gt;Meanwhile, on 31 July, the first day the higher margin applied, SOXL was still the top US buy at &lt;strong&gt;$498.42 million&lt;/strong&gt;, KORU second at &lt;strong&gt;$63.8 million&lt;/strong&gt;, and those two alone made up &lt;strong&gt;80.2%&lt;/strong&gt; of the value across the top ten purchases.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The metric measured the mechanism, not the outcome. Volume moved. Risk exposure did not fall, it increased, because the offshore substitute is leveraged 3x rather than 2x.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🛠️ Every engineer has shipped this bug
&lt;/h2&gt;

&lt;p&gt;Strip the finance out and this is a familiar shape: you constrain one path, demand is unchanged, and traffic finds the cheapest remaining route. The route it finds is usually the one you instrumented least.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;The control&lt;/th&gt;
&lt;th&gt;What it assumed&lt;/th&gt;
&lt;th&gt;Where demand actually went&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Higher margin on domestic 2x&lt;/td&gt;
&lt;td&gt;Cost suppresses appetite&lt;/td&gt;
&lt;td&gt;Offshore 3x, no margin rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limit on &lt;code&gt;/api/v1&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;That is the only entry point&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;/api/v2&lt;/code&gt;, still open&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free-tier quota per account&lt;/td&gt;
&lt;td&gt;Accounts are scarce&lt;/td&gt;
&lt;td&gt;Ten free accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client-side validation&lt;/td&gt;
&lt;td&gt;Users use your client&lt;/td&gt;
&lt;td&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blocking a domain at DNS&lt;/td&gt;
&lt;td&gt;Name resolution is the chokepoint&lt;/td&gt;
&lt;td&gt;The raw IP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each time, the limit binds where you can observe, appetite is unchanged, and the substitute path is worse precisely because nobody was watching it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; A constraint does not reduce demand. It reprices one route. If you have not measured the substitute route, you have not reduced risk, you have only moved it somewhere you cannot see.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An industry figure quoted in the same report made the second-order point, that regulation arriving within two months of a product's launch creates its own risk:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It's important to establish appropriate measures, but hasty responses may end up causing unintended capital outflows."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the credibility cost. In product terms: users who route around your limit rarely route back after you fix it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧮 Why 3x is not "one more than 2x"
&lt;/h2&gt;

&lt;p&gt;Daily-reset leveraged products compound each day's move, so the multiplier applies to the &lt;em&gt;path&lt;/em&gt;, not the destination. Take an index that drops 10%, then recovers fully:&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="c1"&gt;// Index: 100 -&amp;gt; 90 -&amp;gt; 100. Net move: zero.&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.90&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.1111&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// 100.00  — unleveraged, back to flat&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.80&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.2222&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;//  97.78  — 2x daily reset, down 2.2%&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.70&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.3333&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;//  93.33  — 3x daily reset, down 6.7%&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The index is flat. The 3x holder is down &lt;strong&gt;6.7%&lt;/strong&gt; with no directional call gone wrong. Widen the swing and it gets uglier: a 50% drawdown needs a &lt;strong&gt;100%&lt;/strong&gt; gain just to break even, so a 3x product hit by a 20% down day is down 60% and needs +150% to get back to where it started.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Volatility decay is not a fee you can shop around, it is the product working as specified.&lt;/li&gt;
&lt;li&gt;The cost scales with the &lt;em&gt;square&lt;/em&gt; of daily volatility, so leverage is most expensive exactly when markets are chaotic.&lt;/li&gt;
&lt;li&gt;Nothing about "the chip sector goes up long-term" survives contact with this if the path is rough.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to see what different return paths do to an ending balance, our &lt;a href="https://induwara.lk/tools/investment-return-calculator" rel="noopener noreferrer"&gt;investment return calculator&lt;/a&gt; and &lt;a href="https://induwara.lk/tools/compound-interest-calculator" rel="noopener noreferrer"&gt;compound interest calculator&lt;/a&gt; make the compounding visible with your own numbers.&lt;/p&gt;




&lt;h2&gt;
  
  
  🇱🇰 The Sri Lankan version of this story
&lt;/h2&gt;

&lt;p&gt;A Sri Lankan reader cannot run the Korean trade. Under exchange-control rules, residents do not freely move money offshore to buy US-listed ETFs, and I will not pretend to quote current thresholds at you. What is not closed is the pattern, and we have lived it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Import restrictions and grey channels.&lt;/strong&gt; Restrict a category at the border and demand does not evaporate, it reappears through informal routes at worse prices and zero consumer protection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forex controls and parallel rates.&lt;/strong&gt; Cap the official channel and price discovery relocates rather than stops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own product's quotas.&lt;/strong&gt; If you run a free tier for Sri Lankan users on a small budget, the per-account limit you just added is a per-&lt;em&gt;signup&lt;/em&gt; limit. Signups are free.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The practical version: instrument the substitute before you tighten the primary. Log what people do &lt;em&gt;after&lt;/em&gt; they hit the wall. That log is the only evidence your control did anything real.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What this means for you
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;If you write policy, code, or pricing:&lt;/strong&gt; define success as the outcome you care about, never as the throughput of the thing you throttled. Korea's domestic volume metric looks like a 94% win and describes a worse risk position.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you are tempted by leverage:&lt;/strong&gt; 3x is not incrementally riskier than 2x, it is a different instrument whose losses compound against you on flat markets. Run the numbers on a path, not an endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you run a free tier:&lt;/strong&gt; assume every limit you set will be met by a workaround within a week, and decide now whether you can live with that workaround.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you are a student watching this:&lt;/strong&gt; the transferable skill is not stock-picking. It is asking "and then what happens?" one step further than the people who designed the rule did.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Korean regulator was not wrong to act. Single-stock products that amplify daily moves genuinely do amplify market volatility. The gap is that the intervention was scoped to what the regulator could reach, while appetite was scoped to what the investor could reach. Those two boundaries were never the same shape.&lt;/p&gt;

</description>
      <category>markets</category>
      <category>systemsdesign</category>
      <category>risk</category>
    </item>
    <item>
      <title>Apple's Next CEO Rehired a Scheduler. That's the Signal</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Tue, 04 Aug 2026 16:09:52 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/apples-next-ceo-rehired-a-scheduler-thats-the-signal-37d1</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/apples-next-ceo-rehired-a-scheduler-thats-the-signal-37d1</guid>
      <description>&lt;p&gt;&lt;strong&gt;John Ternus&lt;/strong&gt; rehired &lt;strong&gt;Laura Legros&lt;/strong&gt; before he has even started as Apple's CEO, and the choice tells you more about how he plans to run the company than any keynote will. Legros is a former &lt;strong&gt;vice president of hardware engineering&lt;/strong&gt; who retired from Apple in &lt;strong&gt;2022&lt;/strong&gt;. She is not a chip architect or a designer. She ran schedules.&lt;/p&gt;

&lt;p&gt;Juli Clover covered the move at &lt;a href="https://www.macrumors.com/2026/08/03/apple-john-ternus-hiring-retired-vp/" rel="noopener noreferrer"&gt;MacRumors&lt;/a&gt;, citing Bloomberg. I want to talk about why this specific kind of hire is the one most small teams skip, including mine.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Ternus actually bought back
&lt;/h2&gt;

&lt;p&gt;Strip out the job title and look at what Legros owned, per the reporting:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What she managed&lt;/th&gt;
&lt;th&gt;What that means day to day&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Product delivery&lt;/td&gt;
&lt;td&gt;Something ships on the date it was promised&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Development schedules&lt;/td&gt;
&lt;td&gt;Who is blocked, by what, and for how long&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-team coordination&lt;/td&gt;
&lt;td&gt;The camera team and the silicon team agree on one truth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The reporting adds two things worth noting. She will &lt;strong&gt;work across different parts of the company&lt;/strong&gt; rather than own one product line, and she will &lt;strong&gt;report directly to Ternus&lt;/strong&gt;. Bloomberg describes her as one of his most trusted deputies before she retired.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; A new CEO's first hire is a statement about what he thinks is broken. Ternus did not hire a visionary. He hired the person who makes dates real.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ternus takes over from &lt;strong&gt;Tim Cook&lt;/strong&gt; on &lt;strong&gt;1 September 2026&lt;/strong&gt;, with Cook moving to executive chairman. So this is a pre-start hire, made during the handover window while Ternus has been shadowing Cook and meeting leaders about product plans.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The role nobody puts on their org chart
&lt;/h2&gt;

&lt;p&gt;Every Sri Lankan dev team I have worked with has a version of this person, and almost none of them have the title. It is usually the senior engineer who quietly keeps a spreadsheet, or the founder who does it badly at 11pm on a Sunday.&lt;/p&gt;

&lt;p&gt;Here is the uncomfortable part. The work is real, it is full-time at scale, and doing it badly is expensive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Silent dependencies.&lt;/strong&gt; Backend thinks the API contract is settled. Frontend is building against a Figma file from three weeks ago.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fake dates.&lt;/strong&gt; Everyone commits to a Friday nobody believes in, so nobody plans around it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration debt.&lt;/strong&gt; Two parts work. Together they do not, and you find out in the last week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The bus problem.&lt;/strong&gt; One person holds the whole schedule in their head and takes leave.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apple ships hardware, where a slipped date means an empty warehouse and a wasted ad buy. Software has softer edges, so the cost hides longer. It does not go away.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your team has never named an owner for "does this ship on the promised day," the answer is that nobody owns it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🤝 Why rehiring a known quantity beats a better CV
&lt;/h2&gt;

&lt;p&gt;Legros retired four years ago. Ternus could have hired someone younger, cheaper, and currently in the market. He went back for someone he had already worked with. That is my reading of the trade he made:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Boomerang hire&lt;/th&gt;
&lt;th&gt;Strong outside hire&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time to useful&lt;/td&gt;
&lt;td&gt;Weeks&lt;/td&gt;
&lt;td&gt;Two to three quarters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knows where the bodies are buried&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust with the CEO&lt;/td&gt;
&lt;td&gt;Already established&lt;/td&gt;
&lt;td&gt;Must be earned under pressure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fresh outside perspective&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk of importing old bad habits&lt;/td&gt;
&lt;td&gt;Real&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When your main constraint is &lt;strong&gt;time and trust&lt;/strong&gt;, the left column wins. When your main constraint is &lt;strong&gt;stale thinking&lt;/strong&gt;, the right column wins. Ternus has roughly four weeks before the job is his and clearly picked time and trust.&lt;/p&gt;

&lt;p&gt;This is directly usable if you run a small studio or agency in Colombo or Galle. The engineer who left you eighteen months ago for a remote contract, and left on good terms, is often a better hire than a stranger with a stronger GitHub. You already know how they behave in a bad sprint. That information is worth more than most interview loops produce.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Copying this on a two-person budget
&lt;/h2&gt;

&lt;p&gt;You do not need a VP. You need the function. Concretely:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Name the owner.&lt;/strong&gt; One person, by name, owns the ship date. Rotate it quarterly if you want, but never leave it blank.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write dates against real working days.&lt;/strong&gt; Sri Lanka has a lot of Poya days and public holidays, and a fortnight of calendar time is often eight working days. Our &lt;a href="https://induwara.lk/tools/sri-lanka-working-days-calculator" rel="noopener noreferrer"&gt;Sri Lanka working days calculator&lt;/a&gt; will give you the honest number between two dates. Quote clients from that, not from a calendar month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep one written dependency list.&lt;/strong&gt; Not a tool. A file. "X is blocked by Y, owned by Z, expected date D." Update it weekly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrate early and often.&lt;/strong&gt; If the parts have never been run together, your estimate is a guess.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost the delay, not the task.&lt;/strong&gt; If a two-day slip idles a second engineer, the slip cost you four engineer-days. Our &lt;a href="https://induwara.lk/tools/freelancer-hourly-rate-calculator" rel="noopener noreferrer"&gt;freelancer hourly rate calculator&lt;/a&gt; is a fast way to put a rupee figure on that if you bill by time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Point 5 is the one that changes behaviour. Delays feel free until you write down what they cost.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The career read for engineers
&lt;/h2&gt;

&lt;p&gt;There is a quieter lesson here for anyone building a career from Sri Lanka. Legros presented the &lt;strong&gt;2018 MacBook Air&lt;/strong&gt; and the &lt;strong&gt;2020 iPad Air&lt;/strong&gt; on stage, so she was visible. But the reason she got called back was reportedly the trust, not the stage time.&lt;/p&gt;

&lt;p&gt;Two things travel well across a decade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A reputation for hitting dates.&lt;/strong&gt; It is boring, it is rare, and it compounds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaving well.&lt;/strong&gt; The people who rehire you are the people you did not burn.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither shows up on a CV. Both decide whether you get the call four years after you stop working somewhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this means for you
&lt;/h2&gt;

&lt;p&gt;If you are a student or a junior engineer, notice that the delivery and coordination track is a real career, not a consolation prize for people who stopped coding. At Apple it goes to VP.&lt;/p&gt;

&lt;p&gt;If you run a small team, the takeaway is narrower and more urgent. Assign the ship date to a person this week. Recalculate your current deadline against actual working days, not calendar weeks. And before you post a job ad, go through the list of people who have already worked with you and left on good terms.&lt;/p&gt;

&lt;p&gt;Ternus had one hire to make before day one, and he spent it on the unglamorous function. Given that he is about to run a company that has to land hardware on a date, that is the correct instinct.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; Ideas are not the bottleneck on most small teams. Coordination is. Staff it before you staff anything else.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>apple</category>
      <category>engineeringmanagement</category>
      <category>career</category>
    </item>
    <item>
      <title>AI COBOL to Java migration: the bugs come with it</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Mon, 03 Aug 2026 19:55:22 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/ai-cobol-to-java-migration-the-bugs-come-with-it-32an</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/ai-cobol-to-java-migration-the-bugs-come-with-it-32an</guid>
      <description>&lt;p&gt;If you are watching &lt;strong&gt;AI COBOL to Java migration&lt;/strong&gt; and waiting for the moment it becomes safe, the interesting news this week is not a better translator. It is a validator. A paper posted to arXiv on &lt;strong&gt;30 July 2026&lt;/strong&gt; describes an agentic loop that proves a generated Java program behaves the same as the COBOL it came from.&lt;/p&gt;

&lt;p&gt;Same. Not correct. That distinction is the whole story, and most people reading the headline are getting it backwards.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What the paper actually built
&lt;/h2&gt;

&lt;p&gt;The paper is &lt;a href="https://arxiv.org/abs/2607.28271" rel="noopener noreferrer"&gt;Agentic Method for Deterministic Validation of Legacy Code Migration&lt;/a&gt; by Andras Ferenczi, Jordan Docherty, Mariya Bessonov, Matthew Findlay and Krishna Lingamneni. I am commenting on it, not reproducing it, so go read the abstract yourself.&lt;/p&gt;

&lt;p&gt;Their method is called the &lt;strong&gt;Locksmith Loop&lt;/strong&gt;. The shape of it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stand up &lt;strong&gt;two runtime environments&lt;/strong&gt; — the original COBOL and the generated Java — both instrumented with mocks.&lt;/li&gt;
&lt;li&gt;Run both &lt;strong&gt;off-mainframe, on commodity hardware&lt;/strong&gt;. No z/OS licence required to test.&lt;/li&gt;
&lt;li&gt;Run a &lt;strong&gt;Witness Search&lt;/strong&gt; over the mocked inputs, hunting for values that push execution into unvisited branches.&lt;/li&gt;
&lt;li&gt;Apply &lt;strong&gt;parity-preserving mutations&lt;/strong&gt; to those inputs to widen coverage without changing expected behaviour.&lt;/li&gt;
&lt;li&gt;When the search stalls, an analyser identifies a &lt;strong&gt;Locked Paragraph&lt;/strong&gt; — the specific condition blocking deeper exploration.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;The clever part is step 5. Most coverage tooling tells you &lt;em&gt;that&lt;/em&gt; you plateaued at some percentage. This tells you &lt;em&gt;which gate&lt;/em&gt; is holding the door shut.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🐛 Bug-for-bug parity is the goal, not the failure
&lt;/h2&gt;

&lt;p&gt;The Hacker News headline that carried this paper around framed it as "bugs included," as if the AI fumbled. That framing is the submitter's, not the authors'. And it inverts the engineering reality.&lt;/p&gt;

&lt;p&gt;When you migrate a forty-year-old batch job that posts interest to savings accounts, the COBOL &lt;strong&gt;is the specification&lt;/strong&gt;. There is no other one. The analyst who wrote the requirements retired in 2003. If the COBOL rounds a half-cent down in one obscure branch, and your shiny Java rounds it up, you have not fixed a bug. You have created a reconciliation break that some poor operations team will chase for three weeks.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Migration goal&lt;/th&gt;
&lt;th&gt;What you validate against&lt;/th&gt;
&lt;th&gt;Failure mode&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Behavioural parity&lt;/td&gt;
&lt;td&gt;The old system's actual output&lt;/td&gt;
&lt;td&gt;You inherit legacy quirks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Correctness"&lt;/td&gt;
&lt;td&gt;A written spec nobody has&lt;/td&gt;
&lt;td&gt;You silently change business logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rewrite from scratch&lt;/td&gt;
&lt;td&gt;New requirements&lt;/td&gt;
&lt;td&gt;Multi-year project, high abandon rate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; In legacy migration, the old program is the test oracle. Preserving its bugs is a feature of the process, and you fix them &lt;em&gt;after&lt;/em&gt; the cutover, as separate, reviewable changes.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📊 The numbers, and what they do not cover
&lt;/h2&gt;

&lt;p&gt;Here is everything the paper actually reports, so you can calibrate the hype yourself:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Reported&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Case studies&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open-source programs&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal production-like program&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program size range&lt;/td&gt;
&lt;td&gt;430 to 4,114 source lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Branch coverage (internal program)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;91.90%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coverage (open-source programs)&lt;/td&gt;
&lt;td&gt;"nearly complete"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three programs. The largest is roughly &lt;strong&gt;4,114 lines&lt;/strong&gt;. A real bank core is measured in millions of lines across thousands of programs, with copybooks, VSAM files, CICS transactions and JCL glue that this evaluation does not touch.&lt;/p&gt;

&lt;p&gt;That is not a criticism of the paper. It is a paper, not a product. But if a vendor walks into your office next quarter waving "91.9% verified migration," ask them which of those three numbers they are borrowing from.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ How to steal this method without owning a mainframe
&lt;/h2&gt;

&lt;p&gt;You almost certainly do not have COBOL. You almost certainly do have a rewrite: a PHP monolith going to Node, a jQuery admin panel going to React, a stored-procedure pile going to application code. The method transfers directly, and it costs nothing but discipline.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep the old system runnable.&lt;/strong&gt; The single most common mistake I see in local rewrites is decommissioning the old code before the new one is proven. Without the original running, you have no oracle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mock the boundaries, not the logic.&lt;/strong&gt; Database, clock, file system, network. Then both versions become deterministic functions of their inputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diff the outputs, not the code.&lt;/strong&gt; Feed identical inputs to both, capture stdout / JSON / row sets, and compare. A plain text diff is a legitimate regression suite. Ours is free if you want one: &lt;a href="https://induwara.lk/tools/text-diff-checker" rel="noopener noreferrer"&gt;text diff checker&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chase the uncovered branch, not the coverage number.&lt;/strong&gt; The paper's Locked Paragraph idea is really just: when coverage stalls, name the blocking condition out loud and hand-craft an input for it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log every parity break as a ticket, not a fix.&lt;/strong&gt; Decide deliberately whether each difference is a bug you are inheriting or a bug you are correcting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are learning Java as part of a modernisation job and want somewhere to test snippets without setting up a JDK on a slow laptop, our &lt;a href="https://induwara.lk/tools/online-java-compiler" rel="noopener noreferrer"&gt;online Java compiler&lt;/a&gt; runs in the browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What this means for you
&lt;/h2&gt;

&lt;p&gt;There is real money in this for Sri Lankan teams, and it is not in writing the translator.&lt;/p&gt;

&lt;p&gt;Local banks, insurers and government departments run systems old enough to vote, and the offshore modernisation work that flows through Colombo IT services firms is mostly the same shape: someone has a legacy system, an LLM can produce plausible target code in an afternoon, and nobody can sign off that it is safe. The bottleneck moved. Generation got cheap; &lt;strong&gt;assurance did not&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The billable skill in 2026 is not "I can convert COBOL to Java." It is "I can prove this conversion did not change behaviour, and here is the evidence."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Three things worth doing this month:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learn differential testing properly.&lt;/strong&gt; It is old, unglamorous and applies to every rewrite you will ever touch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get comfortable reading branch coverage reports&lt;/strong&gt; in whatever stack you use. The paper's whole contribution is a smarter way to attack a coverage plateau.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop treating "the AI wrote it" as a review status.&lt;/strong&gt; The output of a migration agent is a patch from an unfamiliar contributor. Review it that way.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The headline says AI moved the bugs across. Good. Moving the bugs across, on purpose, with proof, is the hard part.&lt;/p&gt;

</description>
      <category>legacymigration</category>
      <category>aiengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>The open-source agentic CRM that locks its own agent out</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Sun, 02 Aug 2026 23:53:52 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/the-open-source-agentic-crm-that-locks-its-own-agent-out-5elk</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/the-open-source-agentic-crm-that-locks-its-own-agent-out-5elk</guid>
      <description>&lt;p&gt;The most interesting thing about &lt;strong&gt;trycompai/crm&lt;/strong&gt;, a new open-source agentic CRM on GitHub, is not that it's a CRM. It's the sentence in the README that reorders everything: &lt;em&gt;"The agent is not a feature of the CRM; the CRM is where the agent keeps its notes."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's a structural claim, not a marketing one. And if you're building anything with an LLM in it from a small team in Sri Lanka, the architecture in &lt;a href="https://github.com/trycompai/crm" rel="noopener noreferrer"&gt;trycompai/crm&lt;/a&gt; is worth more to you than the product itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔁 The inversion that actually matters
&lt;/h2&gt;

&lt;p&gt;Almost every "AI-powered" tool shipped in the last two years follows the same shape: a normal CRUD app, plus a chat sidebar. You open the app, you type at the agent, the agent does a thing, you close the tab and it stops existing.&lt;/p&gt;

&lt;p&gt;This repo flips the dependency. The agent runs on its own deployment, on its own schedule, against a work queue. It keeps going when the browser is shut.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Chat-sidebar AI&lt;/th&gt;
&lt;th&gt;Agentic-first&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Trigger&lt;/td&gt;
&lt;td&gt;User types&lt;/td&gt;
&lt;td&gt;Work queue + schedule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lifetime&lt;/td&gt;
&lt;td&gt;The tab session&lt;/td&gt;
&lt;td&gt;Continuous&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where logic lives&lt;/td&gt;
&lt;td&gt;The API&lt;/td&gt;
&lt;td&gt;The agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App's job&lt;/td&gt;
&lt;td&gt;Do the work&lt;/td&gt;
&lt;td&gt;Record what happened&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The README puts the API's role bluntly: &lt;strong&gt;no intelligence in the API&lt;/strong&gt;. The NestJS service reports events; the agent interprets them. That single rule is why the design holds together, and it's the part most teams get wrong when they bolt an LLM onto an existing backend.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; If your agent only exists while a user is watching it, you've built a chat feature. An agent that has its own schedule, its own budget and its own queue is a different system with different failure modes — plan for it up front.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🔒 The agent runs with no database credentials
&lt;/h2&gt;

&lt;p&gt;This is the part I'd copy tomorrow. The agent runs in an isolated sandbox with &lt;strong&gt;deny-all egress&lt;/strong&gt; and &lt;strong&gt;no &lt;code&gt;DATABASE_URL&lt;/code&gt;&lt;/strong&gt;. It cannot open a socket to the internet unless explicitly allowed, and it cannot reach the database at all.&lt;/p&gt;

&lt;p&gt;Instead it gets &lt;strong&gt;18 authored tools&lt;/strong&gt; — named, bounded functions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read_crm_history&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search_crm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;identify_contact&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;research_person&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;enrich_company&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every read and write goes through one of those. There is no &lt;code&gt;SELECT&lt;/code&gt; the model can improvise, and no shell it can use to curl your data somewhere else.&lt;/p&gt;

&lt;p&gt;A model holding database credentials and open egress has, functionally, been granted your entire customer table on a prompt-injection basis. One hostile line of text in an email body is enough. Removing the credential kills the whole class of bug, not just the instance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your agent can run arbitrary shell commands and also holds your production connection string, prompt injection isn't a risk you mitigate. It's a shell you've already handed out.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧭 No confidence scores, evidence tiers instead
&lt;/h2&gt;

&lt;p&gt;The README rejects self-reported confidence outright: models grade their own certainty unreliably, so the system doesn't ask them to. Tools report only what they observe. Nothing is guessed.&lt;/p&gt;

&lt;p&gt;What replaces the score is a two-tier evidence rule:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Evidence strength&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;The record is updated directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weak&lt;/td&gt;
&lt;td&gt;It becomes a suggestion for a human to review&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I like this because it's a product decision disguised as an architecture decision. "0.82 confidence" is a number nobody can act on. "This needs a human to look at it" is a queue item somebody clears before lunch.&lt;/p&gt;

&lt;p&gt;If you're building an AI feature for a Sri Lankan client and you're tempted to surface a confidence percentage in the UI — don't. Pick the threshold yourself, then show the user a binary: applied, or waiting for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  💰 What it actually costs to run from here
&lt;/h2&gt;

&lt;p&gt;Self-hosting needs &lt;strong&gt;Bun&lt;/strong&gt; and &lt;strong&gt;Docker&lt;/strong&gt;, and the quickstart is short:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/trycompai/crm.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;crm
bun &lt;span class="nb"&gt;install
&lt;/span&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
bun run db:deploy
bun run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;strong&gt;four&lt;/strong&gt; values are strictly required to boot: &lt;code&gt;BETTER_AUTH_SECRET&lt;/code&gt;, &lt;code&gt;ALLOWED_SIGN_IN&lt;/code&gt;, and a Google OAuth client ID and secret. Auth is Google-only with an allowlist, because the whole thing is single-tenant by design.&lt;/p&gt;

&lt;p&gt;Production is heavier. The README describes &lt;strong&gt;three independent deployments&lt;/strong&gt; (app, API, agent) sharing a &lt;code&gt;DATABASE_URL&lt;/code&gt; and auth secret, plus Postgres, optionally Redis, and a scheduler that has to POST to &lt;code&gt;/internal/sync/google&lt;/code&gt; to keep the mailbox in sync.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Free-tier friendly?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Postgres&lt;/td&gt;
&lt;td&gt;Self-hosted or Neon&lt;/td&gt;
&lt;td&gt;Yes, at small scale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redis&lt;/td&gt;
&lt;td&gt;Upstash, optional&lt;/td&gt;
&lt;td&gt;Optional, skip it first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App / API / agent&lt;/td&gt;
&lt;td&gt;Three Vercel deployments&lt;/td&gt;
&lt;td&gt;Hobby limits apply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model calls&lt;/td&gt;
&lt;td&gt;Vercel AI Gateway&lt;/td&gt;
&lt;td&gt;No — metered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enrichment&lt;/td&gt;
&lt;td&gt;Perplexity, RapidAPI, Context Dev&lt;/td&gt;
&lt;td&gt;No — all optional, all billed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The README doesn't quote prices and I'm not going to invent any. But the honest read is this: the code is MIT and free, the &lt;em&gt;research&lt;/em&gt; is not. An agent that autonomously decides to enrich a company is an agent autonomously spending your money in USD while you earn in LKR. The README notes the agent manages its own research budget, which tells you the authors hit this problem too.&lt;/p&gt;

&lt;p&gt;That scheduled sync POST is a plain cron job, incidentally. If you're setting one up, our &lt;a href="https://induwara.lk/tools/cron-expression-builder" rel="noopener noreferrer"&gt;cron expression builder&lt;/a&gt; will save you the usual ten minutes of second-guessing the five fields.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ What's worth stealing even if you never run it
&lt;/h2&gt;

&lt;p&gt;At the time I looked, the repo was at &lt;strong&gt;1.1k stars&lt;/strong&gt;, &lt;strong&gt;131 forks&lt;/strong&gt; and &lt;strong&gt;28 commits&lt;/strong&gt; on main. That's early. Twenty-eight commits is not a codebase with years of edge cases sanded off it, and I would not put a client's sales pipeline on it this month.&lt;/p&gt;

&lt;p&gt;Read it anyway. The transferable parts, ranked:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tools over credentials.&lt;/strong&gt; Give the model named functions, not a connection string.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deny-all egress by default.&lt;/strong&gt; Allowlist what the agent may reach. That's a network policy, not a rewrite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The agent owns its schedule.&lt;/strong&gt; Decouple it from the request cycle and the UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence tiers, not confidence floats.&lt;/strong&gt; Strong writes, weak suggests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skip multi-tenancy you don't need.&lt;/strong&gt; The README's line on this is sharp: an &lt;code&gt;organizationId&lt;/code&gt; that's always the same value is "a column, an index and a permissions check that buys nothing."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last one is the most Sri-Lanka-relevant point on the list. A lot of local products get built multi-tenant from day one for a customer base of four, and then carry that tax through every query for years.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this means for you
&lt;/h2&gt;

&lt;p&gt;If you're a student or a small-team builder here, the practical takeaway isn't "self-host this CRM." It's that a credible reference implementation of a sandboxed, scheduled, tool-only agent now exists under an MIT licence, and you can read all of it in an afternoon.&lt;/p&gt;

&lt;p&gt;Clone it, run &lt;code&gt;docker compose up -d&lt;/code&gt;, and go read the tool definitions and the sandbox config. That's maybe two hours. What you'll take away is a defensible answer to the question every client eventually asks: &lt;em&gt;"What stops your AI from leaking my data?"&lt;/em&gt; — and "we prompted it not to" is not that answer.&lt;/p&gt;

&lt;p&gt;If you do end up running sales through something like this, you'll still need the boring bits around it. Our &lt;a href="https://induwara.lk/tools/invoice-generator" rel="noopener noreferrer"&gt;invoice generator&lt;/a&gt; and &lt;a href="https://induwara.lk/tools/quotation-generator" rel="noopener noreferrer"&gt;quotation generator&lt;/a&gt; are free and need no signup, which covers the paperwork the agent isn't doing for you.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>aiagents</category>
      <category>architecture</category>
    </item>
    <item>
      <title>A 3-Person AI Startup Is Paying $350K for Kernel Work</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Sun, 02 Aug 2026 03:33:04 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/a-3-person-ai-startup-is-paying-350k-for-kernel-work-2ln9</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/a-3-person-ai-startup-is-paying-350k-for-kernel-work-2ln9</guid>
      <description>&lt;p&gt;&lt;strong&gt;AI infrastructure jobs&lt;/strong&gt; are where the money in AI has quietly moved, and here's the receipt: a &lt;strong&gt;3-person startup&lt;/strong&gt; just listed a role paying up to &lt;strong&gt;$350K&lt;/strong&gt; plus &lt;strong&gt;0.40% equity&lt;/strong&gt;. If you're reading this from Sri Lanka, you can't apply. The listing says &lt;strong&gt;"US citizen/visa only."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's exactly why it's worth reading. A job ad is a company publishing, in public, the shortest possible statement of what it thinks is scarce. Morph's tells you something specific about where the money in AI has moved — and most of it is not where the bootcamps are pointing.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 What the listing actually says
&lt;/h2&gt;

&lt;p&gt;The role is &lt;strong&gt;Member of Technical Staff&lt;/strong&gt; at &lt;strong&gt;Morph&lt;/strong&gt;, tagged &lt;strong&gt;S23&lt;/strong&gt; on Y Combinator's jobs board. &lt;a href="https://www.ycombinator.com/companies/morph/jobs/0Z8vI3K-member-of-technical-staff" rel="noopener noreferrer"&gt;Here's the original posting&lt;/a&gt;. I'm commenting on it, not republishing it — go read the source for the full text.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;What the listing says&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Role&lt;/td&gt;
&lt;td&gt;Member of Technical Staff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compensation&lt;/td&gt;
&lt;td&gt;$175K – $350K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Equity&lt;/td&gt;
&lt;td&gt;0.40%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Experience&lt;/td&gt;
&lt;td&gt;6+ years&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;San Francisco, CA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eligibility&lt;/td&gt;
&lt;td&gt;US citizen/visa only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team size&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Founder&lt;/td&gt;
&lt;td&gt;Tejas Bhakta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interview&lt;/td&gt;
&lt;td&gt;2-day work trial&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The company description is one sentence: Morph &lt;strong&gt;"builds specialized code-generation models and serves them on a custom inference stack."&lt;/strong&gt; The work named includes &lt;strong&gt;autoresearch for kernels&lt;/strong&gt; and &lt;strong&gt;custom speculative-decoding models&lt;/strong&gt;. The stated success metrics are &lt;strong&gt;tokens per second, tokens per dollar, and correctness&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Three people. One of them is being hired at up to $350K. That ratio is the whole story.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚡ The scarce skill isn't "AI" — it's making GPUs cheaper
&lt;/h2&gt;

&lt;p&gt;Notice what is &lt;em&gt;not&lt;/em&gt; in that listing. No prompt engineering. No RAG pipeline. No agent framework. No fine-tuning a model on a customer's PDFs.&lt;/p&gt;

&lt;p&gt;What's there instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kernels&lt;/strong&gt; — writing the low-level GPU code that actually executes matrix operations, rather than calling someone else's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serving, routing, autoscaling, capacity optimization&lt;/strong&gt; — the unglamorous plumbing that decides whether a GPU sits idle at 30% utilisation or runs hot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speculative decoding&lt;/strong&gt; — using a small cheap model to guess ahead, and a big expensive model to verify the guesses in one pass.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All three point at the same target: cost per token. When you serve a model, the model itself is a fixed asset and the GPU hours are the variable one. A team that cuts inference cost 40% has done something no amount of clever prompting achieves.&lt;/p&gt;

&lt;p&gt;If you want to feel that maths rather than read about it, our &lt;a href="https://induwara.lk/tools/ai-speculative-decoding-calculator" rel="noopener noreferrer"&gt;speculative decoding speedup calculator&lt;/a&gt; implements the standard improvement-factor formula. Put in an acceptance rate and a draft-to-target cost ratio and watch how fast the speedup collapses when the draft model guesses badly. Ten minutes with it will teach you more about why this role exists than a week of reading job ads.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; The premium is on the layer &lt;em&gt;below&lt;/em&gt; the model, not above it. Everyone is building on top of LLMs. Very few people can make them run cheaper, and those people are being paid like it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚫 "US citizen/visa only" is a fact, not an insult
&lt;/h2&gt;

&lt;p&gt;I want to be direct about this, because a lot of career advice for Sri Lankan engineers is dishonest by omission.&lt;/p&gt;

&lt;p&gt;You cannot apply to this role. Not "it'll be hard." The listing states the eligibility rule, requires San Francisco, and runs a &lt;strong&gt;2-day work trial&lt;/strong&gt;. A 3-person company has no immigration lawyer and no relocation budget. That's not gatekeeping, it's arithmetic.&lt;/p&gt;

&lt;p&gt;What follows from that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't build a career plan around US-onsite seed-stage startups.&lt;/strong&gt; The failure rate on that path from here is near total.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do build a plan around companies that already hire distributed.&lt;/strong&gt; Contractor-first infra companies, open-source foundations, and Series-B-and-later firms with an existing EOR setup are where the door is actually open.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do treat the skill list as portable.&lt;/strong&gt; The eligibility rule is local to this job. The skills are not — kernel work and inference optimisation are priced high everywhere, including at companies that will hire you as a contractor.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ How to build this skill set on a Sri Lankan budget
&lt;/h2&gt;

&lt;p&gt;The obvious objection: this work needs GPUs, and GPUs cost money I don't have. Partly true, but less true than it looks. Here's what's genuinely reachable without a hardware budget.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want to learn&lt;/th&gt;
&lt;th&gt;Free/cheap way in&lt;/th&gt;
&lt;th&gt;What it costs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CUDA / Triton kernel basics&lt;/td&gt;
&lt;td&gt;Colab or Kaggle free GPU sessions&lt;/td&gt;
&lt;td&gt;Free, time-limited sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reading real serving code&lt;/td&gt;
&lt;td&gt;vLLM and llama.cpp source on GitHub&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quantisation and its accuracy cost&lt;/td&gt;
&lt;td&gt;Run a small model locally on CPU, measure output quality yourself&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batching and throughput intuition&lt;/td&gt;
&lt;td&gt;Benchmark a small model at batch size 1 vs 16 and plot it&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speculative decoding theory&lt;/td&gt;
&lt;td&gt;Read the Leviathan et al. paper, then model it numerically&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sustained GPU time for real experiments&lt;/td&gt;
&lt;td&gt;Hourly rental from a spot-instance provider&lt;/td&gt;
&lt;td&gt;Cheapest line item you'll actually pay for&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A concrete first project, in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick one small open model you can run end to end.&lt;/li&gt;
&lt;li&gt;Measure its &lt;strong&gt;tokens per second&lt;/strong&gt; at batch size 1. Write the number down.&lt;/li&gt;
&lt;li&gt;Change exactly one thing — batch size, quantisation level, attention implementation — and measure again.&lt;/li&gt;
&lt;li&gt;Publish the numbers, the method, and the thing that surprised you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That fourth step is the one people skip, and it's the one that gets you hired. A public benchmark with an honest methodology section is worth more than a certificate, because it demonstrates the exact instinct this job is screening for: you measured, you didn't guess.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A GitHub repo titled "I made this model 2.1× faster and here's the profiler output" is a stronger application than any CV I've seen.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What this means for you
&lt;/h2&gt;

&lt;p&gt;Read job ads from companies you can't join. They're the cleanest market signal available, they're free, and nobody is trying to sell you anything in them.&lt;/p&gt;

&lt;p&gt;The specific reads from this one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure skills are outpricing application skills right now.&lt;/strong&gt; If you're choosing what to go deep on, the low-level side has less competition and higher ceilings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small teams pay top-of-band for narrow depth.&lt;/strong&gt; A 3-person company doesn't hire generalists at $350K. It hires the one skill it can't fake.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geography still binds hard at seed stage.&lt;/strong&gt; Aim your applications at companies structured to hire remotely, and treat SF-onsite listings as free curriculum rather than opportunities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measurement is the differentiator.&lt;/strong&gt; Tokens per second, tokens per dollar, correctness. Every one of those is a number. Get comfortable producing numbers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can't take this job. You can take the reading list it implies, and that part is free.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Commentary on a public Y Combinator job listing. All figures quoted are from the listing itself as of 2 August 2026; roles and terms change, so check the source before relying on any of it.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>aiinfrastructure</category>
      <category>srilankatech</category>
    </item>
    <item>
      <title>Rivian spinoff Also ships late: 4 lessons for hardware teams</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Sat, 01 Aug 2026 07:25:25 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/rivian-spinoff-also-ships-late-4-lessons-for-hardware-teams-3b3f</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/rivian-spinoff-also-ships-late-4-lessons-for-hardware-teams-3b3f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Rivian spinoff Also&lt;/strong&gt; has started delivering its &lt;strong&gt;TM-B&lt;/strong&gt; e-bike after months of missed dates, according to &lt;a href="https://techcrunch.com/2026/07/31/rivian-spinoff-also-to-start-delivering-e-bikes-after-months-of-delays/" rel="noopener noreferrer"&gt;TechCrunch&lt;/a&gt;. Bikes began shipping the week of 31 July, with the rest of the Launch Edition queue expected to land through September.&lt;/p&gt;

&lt;p&gt;I don't care much about the bike. I care that a company with &lt;strong&gt;$105 million&lt;/strong&gt;, a parent automaker's supply chain, and Jony Ive's design firm on the industrial design still could not hit a shipping date. That failure mode is the same one that eats a two-person team in Colombo, just with more zeroes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🕐 The timeline is the whole story
&lt;/h2&gt;

&lt;p&gt;Here is the sequence, pulled from the source:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;When&lt;/th&gt;
&lt;th&gt;What happened&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;Starts as an internal skunkworks project inside Rivian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;March 2025&lt;/td&gt;
&lt;td&gt;Spun out as &lt;strong&gt;Also&lt;/strong&gt;, with &lt;strong&gt;$105M&lt;/strong&gt; from Eclipse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spring 2026&lt;/td&gt;
&lt;td&gt;Original delivery target for the TM-B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;July 2026&lt;/td&gt;
&lt;td&gt;Revised delivery target&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Week of 31 July 2026&lt;/td&gt;
&lt;td&gt;Deliveries actually begin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Through September 2026&lt;/td&gt;
&lt;td&gt;Remaining Launch Edition orders expected&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Four years from skunkworks to first customer unit. Two public target dates, both missed. The company's stated cause was component supply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A rapid, industry-wide spike in demand for raw materials and electronic components has impacted key parts required for the TM-B."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a real constraint, not an excuse. But notice what it implies: the &lt;strong&gt;Spring 2026&lt;/strong&gt; date was published while the bill of materials still had single-sourced parts nobody had locked. The date wasn't a plan. It was a hope with a month attached.&lt;/p&gt;




&lt;h2&gt;
  
  
  📣 The delay didn't cost them customers. The silence did.
&lt;/h2&gt;

&lt;p&gt;The detail worth stealing is in the customer reaction. TechCrunch reports that reservation holders on Reddit were frustrated by &lt;strong&gt;repeated missed timelines and a lack of communication&lt;/strong&gt;, and that some cancelled.&lt;/p&gt;

&lt;p&gt;Read that carefully. Two separate complaints:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The dates kept moving.&lt;/strong&gt; Annoying, forgivable, normal for hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nobody told them.&lt;/strong&gt; Not forgivable, and entirely free to fix.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; Customers will absorb a schedule slip they were warned about. They will not absorb finding out on their own that a date passed. The second one reads as contempt, and it is the only part of a supply-chain delay that costs you nothing to prevent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you are running a pre-order, a client project, or an open-source release with people waiting on it, the rule is boring and absolute: &lt;strong&gt;the update ships on the promised date even when the product doesn't.&lt;/strong&gt; A three-line email saying "we slipped, here's the new date, here's why" on the day you said you'd deliver is worth more than the delivery being two weeks earlier.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚲 Also is not selling you a bicycle
&lt;/h2&gt;

&lt;p&gt;The line most people will skim past: Also mostly calls itself a &lt;strong&gt;"vehicle" company&lt;/strong&gt;, not an e-bike company. The roadmap the source describes is not bikes at all:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Four-wheel &lt;strong&gt;pedal-assist cargo vehicles for Amazon&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous delivery vehicle&lt;/strong&gt; development with DoorDash&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the &lt;strong&gt;$4,500&lt;/strong&gt; e-bike is a wedge. It is the smallest thing that exercises the whole stack — battery, motor control, frame manufacturing, regulatory approval, fulfilment, warranty, support queue — and it does so against paying consumers instead of a procurement department at Amazon. Every screw-up on the TM-B is a screw-up that doesn't happen on a fleet contract.&lt;/p&gt;

&lt;p&gt;That is a strategy small teams should copy and almost never do. The usual pattern here is the opposite: chase the enterprise deal first because it's worth more, then discover the delivery muscle doesn't exist. Also inverted it. Ship the small, unforgiving, public thing first. Learn on strangers who paid $4,500, not on a client who can end you.&lt;/p&gt;

&lt;p&gt;The uncomfortable read is that this cuts both ways. If the wedge product slipped twice on a parts shortage, that is exactly the signal Amazon's procurement team is now pricing in.&lt;/p&gt;




&lt;h2&gt;
  
  
  💰 What a $4,500 e-bike actually costs landed in Sri Lanka
&lt;/h2&gt;

&lt;p&gt;For a local reader the sticker is only the opening number. A &lt;strong&gt;$4,500&lt;/strong&gt; bike is not a $4,500 bike once it clears Customs, and I'm not going to guess at your final figure because it depends on HS classification, motor rating, and whatever the levy schedule looks like on the day your shipment lands.&lt;/p&gt;

&lt;p&gt;What I'd check before getting attached to the idea:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Where to work it out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Is it classed as a bicycle or an electric two-wheeler?&lt;/td&gt;
&lt;td&gt;&lt;a href="https://induwara.lk/tools/sri-lanka-bicycle-import-tax-calculator" rel="noopener noreferrer"&gt;Bicycle import tax calculator&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What if it's treated as an electric scooter?&lt;/td&gt;
&lt;td&gt;&lt;a href="https://induwara.lk/tools/sri-lanka-electric-scooter-import-tax-calculator" rel="noopener noreferrer"&gt;Electric scooter import tax calculator&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What's the running cost vs a petrol bike?&lt;/td&gt;
&lt;td&gt;&lt;a href="https://induwara.lk/tools/sri-lanka-ev-vs-petrol-cost-calculator" rel="noopener noreferrer"&gt;EV vs petrol cost calculator&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total duty on a general shipment&lt;/td&gt;
&lt;td&gt;&lt;a href="https://induwara.lk/tools/sri-lanka-customs-duty-calculator" rel="noopener noreferrer"&gt;Customs duty calculator&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The classification question is the one that decides everything. Two products that look identical in photos can land in different duty brackets on motor wattage alone, and that difference is usually larger than the discount you negotiated on the unit price.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Pre-ordering hardware from a startup that ships internationally means your money is exposed to two independent risks — the company missing its date, and the duty regime changing while your unit sits on a boat. Also's reservation holders only faced the first one.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🛠️ The part that transfers to software
&lt;/h2&gt;

&lt;p&gt;Most people reading this build software, not vehicles, so here's the honest translation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Single-sourced dependencies are single-sourced dependencies.&lt;/strong&gt; Also got caught by one supplier of one component. You get caught by one free-tier API, one unmaintained npm package, one hosting provider's pricing change. Same shape, cheaper blast radius.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A date you publish is a promise about your least-understood dependency&lt;/strong&gt;, not about your work. Estimate the unknown part or don't publish the date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship the small public thing first.&lt;/strong&gt; The wedge-product logic works even better in software, where the cost of shipping the small thing is close to zero.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication is the only variable fully under your control.&lt;/strong&gt; Supply chains, upstream APIs, and Customs are not. The status update is.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 What this means for you
&lt;/h2&gt;

&lt;p&gt;If you're building something with a delivery date attached, take one concrete action from this: write down every dependency you do not control, and next to each one write what your public timeline looks like if that dependency slips by six weeks. If the answer is "the timeline is wrong," you have a hope, not a plan, and you should either pad the date or stop publishing it.&lt;/p&gt;

&lt;p&gt;And if you're the one waiting on Also's TM-B, or on any pre-order: the useful signal was never the delay. It was how long the company let you sit there wondering.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is commentary on reporting by TechCrunch. All facts about Also, the TM-B, and its delivery schedule come from &lt;a href="https://techcrunch.com/2026/07/31/rivian-spinoff-also-to-start-delivering-e-bikes-after-months-of-delays/" rel="noopener noreferrer"&gt;their 31 July 2026 article&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>startup</category>
      <category>supplychain</category>
    </item>
    <item>
      <title>Amazon's $220B AI bet is really your cloud bill</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Fri, 31 Jul 2026 10:09:13 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/amazons-220b-ai-bet-is-really-your-cloud-bill-hhb</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/amazons-220b-ai-bet-is-really-your-cloud-bill-hhb</guid>
      <description>&lt;p&gt;AI cloud costs for the next few years are being set by a company that just told the market it plans to spend &lt;strong&gt;$220 billion&lt;/strong&gt; on infrastructure this year, and the market cheered. Amazon's quarterly numbers landed on 30 July.&lt;/p&gt;

&lt;p&gt;The reaction is the interesting part, and TechCrunch framed it well in &lt;a href="https://techcrunch.com/2026/07/30/investors-love-ai-as-long-as-youre-a-cloud-host/" rel="noopener noreferrer"&gt;Investors love AI, as long as you're a cloud host&lt;/a&gt;. Investors are rewarding the layer that &lt;em&gt;rents&lt;/em&gt; compute and punishing the layer that only &lt;em&gt;buys&lt;/em&gt; it. If you build software from a small team here, that split is worth more to you than the headline number.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 What the market actually rewarded
&lt;/h2&gt;

&lt;p&gt;Here are the figures from the quarter, as reported:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Amazon, latest quarter&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS revenue&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;$42 billion&lt;/strong&gt;, up &lt;strong&gt;37%&lt;/strong&gt; year-over-year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total net sales&lt;/td&gt;
&lt;td&gt;up &lt;strong&gt;20%&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capex, fiscal year ended 30 June&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;$173 billion&lt;/strong&gt; (up from &lt;strong&gt;$107.65 billion&lt;/strong&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026 capex forecast&lt;/td&gt;
&lt;td&gt;raised from &lt;strong&gt;$200B&lt;/strong&gt; to &lt;strong&gt;$220B&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cash reserves&lt;/td&gt;
&lt;td&gt;down &lt;strong&gt;$7.6 billion&lt;/strong&gt; year-over-year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free cash flow&lt;/td&gt;
&lt;td&gt;negative for the first time in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stock, after hours&lt;/td&gt;
&lt;td&gt;up nearly &lt;strong&gt;10%&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Now the contrast. &lt;strong&gt;Meta&lt;/strong&gt; reported in the same window, spent heavily on the same kind of buildout, and its stock &lt;strong&gt;fell 8%&lt;/strong&gt; — investors fixed on the cash flow crunch and the continued spending without an equivalent revenue line to point at.&lt;/p&gt;

&lt;p&gt;Same spending behaviour. Opposite reaction.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; The market is not pricing AI enthusiasm. It is pricing whether your AI revenue appears on the same page as your AI spending. Amazon can show a 37% growth line next to the bill. Meta, for now, cannot.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 The most useful sentence in the whole story
&lt;/h2&gt;

&lt;p&gt;Amazon's CEO said something that I think matters more to a two-person team than it does to a fund manager:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We see the AI business following very much the same margin trajectory we saw in the core business before...AWS and &lt;strong&gt;Amazon Bedrock can have a wildly successful business without its own frontier model&lt;/strong&gt;."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read that again with your own product in mind. The largest AI infrastructure business on earth is openly saying it does not need to own a frontier model to win.&lt;/p&gt;

&lt;p&gt;If that is true at their scale, it is far more true at yours. I keep meeting local developers who treat "we didn't train our own model" as a confession. It isn't. The durable parts of a small software business have never been the model weights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Distribution&lt;/strong&gt; — do people already come to you for this problem?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boring proprietary data&lt;/strong&gt; — the messy local dataset nobody else bothered to clean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow fit&lt;/strong&gt; — knowing that a Sri Lankan payroll run has EPF, ETF and APIT in it, and that a generic tool will get it wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust and support&lt;/strong&gt; — a real person who answers when it breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those four require a GPU cluster. All of them are hard to copy.&lt;/p&gt;




&lt;h2&gt;
  
  
  📉 Negative free cash flow is a signal about your future pricing
&lt;/h2&gt;

&lt;p&gt;This next part is my reading, not a claim the article makes — flagging that clearly.&lt;/p&gt;

&lt;p&gt;Capex does not stay on the balance sheet quietly. &lt;strong&gt;$173 billion&lt;/strong&gt; of data centre spending becomes depreciation, and depreciation lands on the income statement for years afterwards. Amazon just posted its first negative free cash flow period of 2026 while raising the forecast anyway. That is a company betting the revenue arrives before the depreciation bites.&lt;/p&gt;

&lt;p&gt;For you, the practical consequence is simple:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;What happens to your inference bill&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI demand keeps compounding&lt;/td&gt;
&lt;td&gt;Scale economics improve, prices likely keep drifting down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Demand plateaus mid-buildout&lt;/td&gt;
&lt;td&gt;Providers must recover depreciation — free tiers shrink first&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not build a product whose margin only works at today's promotional API price. Free tiers and aggressive per-token pricing exist partly because everyone is buying market share during a buildout. Buildouts end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The article makes the same point from the other direction: cloud host revenue depends on AI spending being sustainable across the whole industry. If demand doesn't justify the buildout, AWS and its competitors are exposed too.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 What a $220 billion bill looks like in rupees
&lt;/h2&gt;

&lt;p&gt;Here is where it gets local. Your compute is priced in &lt;strong&gt;USD&lt;/strong&gt;. A meaningful share of small-team revenue here is priced in &lt;strong&gt;LKR&lt;/strong&gt;. That mismatch is a real risk sitting quietly inside your unit economics.&lt;/p&gt;

&lt;p&gt;Three things I'd actually do before shipping anything AI-powered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Model the cost per active user, not per request.&lt;/strong&gt; A single call is cheap. A chatty user across a month is not. Our &lt;a href="https://induwara.lk/tools/ai-agent-cost-calculator" rel="noopener noreferrer"&gt;AI agent cost calculator&lt;/a&gt; exists for exactly this — multi-turn cost is where budgets die.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know your token counts before you know your price.&lt;/strong&gt; Prompt bloat is the most common cause of a surprise bill. Measure with the &lt;a href="https://induwara.lk/tools/ai-token-counter" rel="noopener noreferrer"&gt;token counter&lt;/a&gt; instead of guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price your LKR invoices with FX headroom.&lt;/strong&gt; If you quote a fixed rupee retainer against a dollar API bill, you have written an unhedged currency position into your contract. The &lt;a href="https://induwara.lk/tools/freelancer-usd-lkr-calculator" rel="noopener noreferrer"&gt;USD-LKR earnings calculator&lt;/a&gt; is a blunt but honest way to see the gap.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The cheapest optimisation remains the unglamorous one: &lt;strong&gt;don't call a large model when a small one, a cache, or a regex will do&lt;/strong&gt;. Route by difficulty. Cache aggressively. Most "AI features" are 80% deterministic logic wearing a model as a hat.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What this means for you
&lt;/h2&gt;

&lt;p&gt;The headline says investors love AI if you're a cloud host. The more useful version for a small builder is this: &lt;strong&gt;the market is rewarding proven revenue attached to spending, and nothing else.&lt;/strong&gt; That standard is being applied to trillion-dollar companies. It will absolutely be applied to you by your first serious client or investor.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stop apologising for not owning a model.&lt;/strong&gt; Amazon says it doesn't need one either.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attach every rupee of AI spend to a revenue line you can name.&lt;/strong&gt; If you can't name it, it's a hobby, and that's fine — just label it correctly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assume today's inference price is a floor, not a ceiling.&lt;/strong&gt; Build the margin to survive a 2× price move.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Own the layer they can't buy&lt;/strong&gt; — local context, distribution, the data nobody cleaned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The buildout is being financed by people with $220 billion to deploy. You will never win that game, and you don't need to. You're renting from them. Rent carefully, price honestly, and keep your costs attached to something real.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Commentary on reporting by TechCrunch. Figures cited are from the linked article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aiinfrastructure</category>
      <category>cloudcosts</category>
      <category>startup</category>
    </item>
    <item>
      <title>The Kinney Drugs AI Bot Failed for a Boring Reason</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Thu, 30 Jul 2026 13:47:13 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/the-kinney-drugs-ai-bot-failed-for-a-boring-reason-12b6</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/the-kinney-drugs-ai-bot-failed-for-a-boring-reason-12b6</guid>
      <description>&lt;p&gt;The most instructive &lt;strong&gt;AI customer service failure&lt;/strong&gt; I have read about this month is not a model problem at all. It is an architecture problem, and it is one I see in small Sri Lankan products constantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VTDigger&lt;/strong&gt; reported on 29 July 2026 that &lt;a href="https://vtdigger.org/2026/07/29/a-pharmacy-chain-in-vermont-implemented-ai-for-efficiency-its-led-to-delays-incorrect-information-and-privacy-concerns/" rel="noopener noreferrer"&gt;Kinney Drugs, a pharmacy chain in Vermont and New York, rolled out an AI assistant called "Burt"&lt;/a&gt; for prescription refills in &lt;strong&gt;May 2026&lt;/strong&gt;. Patients got delays, wrong dosages, and a new privacy policy. I want to talk about why, because the fix is cheap and nobody applies it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What actually broke, in engineering terms
&lt;/h2&gt;

&lt;p&gt;Strip the story down to symptoms and every one of them is a known failure class, not a mystery:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Reported symptom&lt;/th&gt;
&lt;th&gt;What it actually is&lt;/th&gt;
&lt;th&gt;Where it lives&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Wrong dosage ordered&lt;/td&gt;
&lt;td&gt;Unvalidated model output written to a system of record&lt;/td&gt;
&lt;td&gt;Write path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Could not find longtime customer accounts&lt;/td&gt;
&lt;td&gt;Fuzzy name/voice matching against an exact-match database&lt;/td&gt;
&lt;td&gt;Identity resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No notification when refills were ready&lt;/td&gt;
&lt;td&gt;Outbound job never wired, or wired to the bot instead of SMS&lt;/td&gt;
&lt;td&gt;Integration gap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delays between doctor order and processing&lt;/td&gt;
&lt;td&gt;A synchronous human step replaced by an async queue nobody drains&lt;/td&gt;
&lt;td&gt;Workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calls that do not name the drug&lt;/td&gt;
&lt;td&gt;Over-cautious privacy redaction with no useful content left&lt;/td&gt;
&lt;td&gt;Prompt/policy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;None of that requires a smarter model. Four of the five would be caught by a staging environment and one afternoon of adversarial testing with real account names.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; The bot did not hallucinate its way into ordering a wrong dosage. Somebody let a probabilistic component write directly to a system of record with no confirmation step. That is a design decision, and it is reversible.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚡ The actual bug: they deleted the deterministic path
&lt;/h2&gt;

&lt;p&gt;The detail from the article that stopped me was a patient saying there is no option to use a keypad. It is talk to the bot or do not get your prescription.&lt;/p&gt;

&lt;p&gt;That is the whole failure in one sentence. The old system was a &lt;strong&gt;DTMF phone tree&lt;/strong&gt;: ugly, slow, and completely deterministic. Press 1, get refills. It worked for people with strong accents, bad phone lines, hearing loss, and no patience. The AI was added &lt;em&gt;in place of&lt;/em&gt; that path rather than &lt;em&gt;in front of&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;The correct shape is boring:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;AI handles the happy path.&lt;/strong&gt; Natural language in, intent out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic fallback stays live forever.&lt;/strong&gt; Keypad, form, WhatsApp menu, whatever the old thing was. Never delete it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low-confidence intents route to the fallback automatically.&lt;/strong&gt; Do not ask the user to notice the bot is failing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Any write to a system of record needs an explicit confirmation.&lt;/strong&gt; "You asked for 500mg of X, correct?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One escape phrase always works.&lt;/strong&gt; "Agent." "Operator." "Menu."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Rule 2 is the one teams break, because keeping two paths alive is unglamorous and the whole business case for the AI was reducing cost. But you do not get the savings by removing the fallback. You get them because 80% of traffic stops touching it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Your privacy policy quietly becomes your vendor's
&lt;/h2&gt;

&lt;p&gt;The other half of the story matters more than the delays. The chain updated its privacy policy to disclose that customer health information could be used in AI tools, and the vendor, a Texas company called &lt;strong&gt;Synerio&lt;/strong&gt;, became a new third party holding that data.&lt;/p&gt;

&lt;p&gt;That is the part builders underestimate. Adding an AI feature is often adding a &lt;strong&gt;data processor&lt;/strong&gt;, and it changes your legal surface even when your code barely changes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you send user data to a hosted model API, you have added a sub-processor to your product. Your privacy policy is now wrong until you update it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vermont's own data privacy bill, &lt;strong&gt;S.71&lt;/strong&gt;, was signed on &lt;strong&gt;16 June 2026&lt;/strong&gt; but does not take effect until &lt;strong&gt;2028&lt;/strong&gt;. So the regulatory floor for this rollout was, in practice, whatever the company chose. Sri Lanka is in a comparable gap: the Personal Data Protection Act exists on paper and enforcement is still maturing. Do not read that as permission. Read it as: nobody is going to catch your mistake before your users do.&lt;/p&gt;

&lt;p&gt;Practical version for a two-person team in Colombo shipping a support bot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;List every third party&lt;/strong&gt; that touches user text before you ship. Model provider, vector DB, logging service, error tracker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not log full prompts&lt;/strong&gt; containing personal data by default. Redact at the edge, not in the dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check retention settings&lt;/strong&gt; on your model provider. Many default to retaining inputs for abuse monitoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update the policy in the same PR&lt;/strong&gt; as the feature. Not "next sprint."&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ The cheap test that would have caught this
&lt;/h2&gt;

&lt;p&gt;You do not need a QA department. You need a list of 20 hostile inputs and one hour, run before every release:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Test&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Longest real customer name in your DB&lt;/td&gt;
&lt;td&gt;Breaks fuzzy matching first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A name with two spellings (Perera / Pereira)&lt;/td&gt;
&lt;td&gt;Identity resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heavy background noise, low-bitrate call&lt;/td&gt;
&lt;td&gt;Real phone conditions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sinhala or Tamil name spoken in English sentence&lt;/td&gt;
&lt;td&gt;Code-switching is normal here, not an edge case&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deliberate mid-sentence correction ("no, 250, not 500")&lt;/td&gt;
&lt;td&gt;Tests whether the last value wins&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Silence for 10 seconds&lt;/td&gt;
&lt;td&gt;Timeout and fallback behaviour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Request the bot has no tool for&lt;/td&gt;
&lt;td&gt;Should escalate, not improvise&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you are building voice features, the components are cheap to prototype now. Our free &lt;a href="https://induwara.lk/tools/speech-to-text" rel="noopener noreferrer"&gt;speech-to-text tool&lt;/a&gt; and &lt;a href="https://induwara.lk/tools/text-to-speech" rel="noopener noreferrer"&gt;text-to-speech tool&lt;/a&gt; run in the browser and are enough to sanity-check whether transcription even survives a Sri Lankan accent on a 3G connection before you commit to a vendor.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What this means for you
&lt;/h2&gt;

&lt;p&gt;The Kinney Drugs story will get filed under "AI failed" and that reading is lazy and useless. A refill line is an ideal AI use case: high volume, repetitive, low creativity. The rollout failed on three specific decisions any of us could make next week.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You are allowed to ship an AI feature to 10% of traffic.&lt;/strong&gt; Nobody is forcing a full cutover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never remove the deterministic path.&lt;/strong&gt; It is your rollback plan, your accessibility story, and your incident mitigation, for the price of some unglamorous code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Probabilistic components do not get write access&lt;/strong&gt; to anything a human would be upset about. Read-only until confirmed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A new AI vendor is a new data processor.&lt;/strong&gt; Treat the privacy policy as part of the deliverable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The teams that will look good in two years are not the ones with the best models. They are the ones who kept the boring path working while everyone else deleted it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productengineering</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Gemini 3.6 Flash &amp; 3.5 Flash-Lite: the token math</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Wed, 29 Jul 2026 03:51:46 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/gemini-36-flash-35-flash-lite-the-token-math-4le0</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/gemini-36-flash-35-flash-lite-the-token-math-4le0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Gemini 3.6 Flash&lt;/strong&gt; landed on 21 July 2026 alongside two siblings, and the announcement everyone quoted was the benchmark chart. I want to talk about the boring number underneath it: &lt;strong&gt;output tokens dropped 17%&lt;/strong&gt; for the same work. When you pay per token in dollars and earn or study on a rupee budget, that line matters more than any leaderboard.&lt;/p&gt;

&lt;p&gt;Google's post, &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-6-flash-3-5-flash-lite-3-5-flash-cyber/" rel="noopener noreferrer"&gt;Gemini 3.6 Flash, 3.5 Flash-Lite, and 3.5 Flash Cyber&lt;/a&gt;, covers three models at once. Here's my read on which one you should actually reach for.&lt;/p&gt;




&lt;h2&gt;
  
  
  🗂️ Three models, one page — what each is for
&lt;/h2&gt;

&lt;p&gt;The launch bundled a workhorse, a speed model, and a locked-down security model. Quick map before the numbers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Who can use it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.6 Flash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;General coding, knowledge work, multimodal&lt;/td&gt;
&lt;td&gt;Everyone (AI Studio, Gemini app, Enterprise)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash-Lite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fastest, cheapest 3.5-class; high-throughput agents&lt;/td&gt;
&lt;td&gt;Everyone; rolling into Google Search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash Cyber&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Finding and fixing security vulnerabilities&lt;/td&gt;
&lt;td&gt;Governments + trusted partners only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; Two of these three are for you. The third — the interesting one for security folks — you can't touch yet.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💰 The pricing that actually decides your bill
&lt;/h2&gt;

&lt;p&gt;Here are the published rates, per one million tokens:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input / 1M&lt;/th&gt;
&lt;th&gt;Output / 1M&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.6 Flash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;$7.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash-Lite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0.30&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Output is where LLM bills quietly balloon, because a chatty agent generates far more tokens than you feed it. Flash-Lite's &lt;strong&gt;$2.50 output&lt;/strong&gt; is a third of 3.6 Flash's $7.50. For a side project or a class assignment, that gap is the difference between a hobby and a habit.&lt;/p&gt;

&lt;p&gt;At roughly &lt;strong&gt;Rs 300 to the dollar&lt;/strong&gt; (check the live rate, it moves), a million Flash-Lite output tokens costs around &lt;strong&gt;Rs 750&lt;/strong&gt;. A million on 3.6 Flash is closer to &lt;strong&gt;Rs 2,250&lt;/strong&gt;. If you're not sure how many tokens your prompts actually burn, run them through our free &lt;a href="https://induwara.lk/tools/ai-token-counter" rel="noopener noreferrer"&gt;AI Token Counter&lt;/a&gt; — it covers GPT, Claude, and Gemini and needs no signup.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Why "17% fewer tokens" beats a benchmark win
&lt;/h2&gt;

&lt;p&gt;Google says 3.6 Flash cuts output token usage &lt;strong&gt;17%&lt;/strong&gt; versus 3.5 Flash, and &lt;strong&gt;up to 65% on the DeepSWE benchmark&lt;/strong&gt;. That's not a vanity stat. Fewer tokens for the same answer means every request is cheaper, even before you compare per-token prices.&lt;/p&gt;

&lt;p&gt;The benchmarks did move too:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;3.5 Flash&lt;/th&gt;
&lt;th&gt;3.6 Flash&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE&lt;/td&gt;
&lt;td&gt;37%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;49%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MLE Bench&lt;/td&gt;
&lt;td&gt;49.7%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;63.9%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OSWorld-Verified&lt;/td&gt;
&lt;td&gt;78.4%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;83.0%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;But a coding agent that loops ten times to fix a bug pays ten output bills. Shaving 17% off each one compounds. I'd rather have a model that's slightly less flashy on a chart and consistently cheaper per task, because my monthly cost is the sum of every loop, not the peak score.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A cheaper token on every call scales better than a higher benchmark you hit once.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 Flash-Lite: the throughput model for tight budgets
&lt;/h2&gt;

&lt;p&gt;Flash-Lite is the one I'd start a project on. Google clocks it at &lt;strong&gt;350 output tokens per second&lt;/strong&gt; and pitches it for high-throughput agentic work and document processing. Its own benchmark jumps are steep:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Terminal-Bench 2.1:&lt;/strong&gt; 31% → &lt;strong&gt;54%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SWE-Bench Pro:&lt;/strong&gt; 49.6% → &lt;strong&gt;54.2%&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the kind of work a small Colombo team or a solo student actually ships — parsing PDFs, tagging support tickets, batch-summarising documents — speed and price beat frontier reasoning. Named customers like Ashler, Palo Alto Networks, and Ramp flagged exactly that: they picked it to scale volume, not to win a hard reasoning puzzle.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prototype on &lt;strong&gt;Flash-Lite&lt;/strong&gt; to keep costs near zero while you iterate.&lt;/li&gt;
&lt;li&gt;Move a route to &lt;strong&gt;3.6 Flash&lt;/strong&gt; only if Lite visibly struggles on it.&lt;/li&gt;
&lt;li&gt;Measure real token counts before you commit to either.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔒 Flash Cyber: the model you can't have (and why that's notable)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini 3.5 Flash Cyber&lt;/strong&gt; is a fine-tuned 3.5 Flash aimed at finding and fixing security vulnerabilities, offered only to governments and trusted partners through a limited-access pilot called &lt;strong&gt;CodeMender&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; A frontier lab is now treating vulnerability-finding as capable enough to gate behind vetting. That's a signal worth watching, even if you're locked out of the tool.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a student here building a security portfolio, the takeaway isn't the model — it's the direction. Automated vuln-finding is graduating from research demo to controlled release. The public models above are strong enough to practise the same workflow: point one at your own code, ask it to audit for common flaws, and learn to read what it flags.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What this means for you
&lt;/h2&gt;

&lt;p&gt;If you build, study, or freelance from Sri Lanka on a dollar-priced AI bill, the practical order of operations is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Default to Flash-Lite.&lt;/strong&gt; At $0.30/$2.50 per million tokens, it's the cheapest way to keep a project alive while you learn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reserve 3.6 Flash&lt;/strong&gt; for the routes that genuinely need more, and lean on its 17% token cut to keep those cheaper than they used to be.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count before you commit.&lt;/strong&gt; Estimate real usage with a &lt;a href="https://induwara.lk/tools/ai-token-counter" rel="noopener noreferrer"&gt;token counter&lt;/a&gt; so your first invoice isn't a surprise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't chase Flash Cyber.&lt;/strong&gt; You can't get it, and the public models are enough to build the same security-review muscle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The headline was three models. The story, for anyone paying per token, is that the floor on running useful AI just dropped again.&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>llmpricing</category>
      <category>aitools</category>
    </item>
    <item>
      <title>Vibe Coding vs Agentic Engineering: The Full-Stack Shift</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Tue, 28 Jul 2026 02:29:15 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/vibe-coding-vs-agentic-engineering-the-full-stack-shift-4hc</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/vibe-coding-vs-agentic-engineering-the-full-stack-shift-4hc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Agentic engineering&lt;/strong&gt; is the phrase I keep running into now, and a recent Stack Overflow podcast finally pins down why it matters. In &lt;a href="https://stackoverflow.blog/2026/07/21/the-future-of-development-is-full-stack/" rel="noopener noreferrer"&gt;&lt;em&gt;The Future of Development is Full-Stack&lt;/em&gt;&lt;/a&gt;, Snowflake's &lt;strong&gt;Umesh Unnikrishnan&lt;/strong&gt; argues the industry is moving past "vibe coding" for throwaway prototypes toward disciplined, agent-driven work for real software.&lt;/p&gt;

&lt;p&gt;His prediction: every developer will eventually become a full-stack builder. For a solo dev or a three-person shop in Sri Lanka, that's not a threat. It's the reality you already live, and it's about to get cheaper to pull off.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Vibe coding and agentic engineering are not the same thing
&lt;/h2&gt;

&lt;p&gt;The episode draws a line I think a lot of people blur. &lt;strong&gt;Vibe coding&lt;/strong&gt; is prompting an AI until something runs, then shipping it. It's great for a weekend demo or a client mockup. &lt;strong&gt;Agentic engineering&lt;/strong&gt; is the enterprise version: agents that plan, edit, and verify across a codebase, wrapped in process so the output is trustworthy.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Vibe coding&lt;/th&gt;
&lt;th&gt;Agentic engineering&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Goal&lt;/td&gt;
&lt;td&gt;Fast prototype&lt;/td&gt;
&lt;td&gt;Production software&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Review&lt;/td&gt;
&lt;td&gt;Eyeball it, ship it&lt;/td&gt;
&lt;td&gt;Human-in-the-loop approval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure cost&lt;/td&gt;
&lt;td&gt;Low (throwaway)&lt;/td&gt;
&lt;td&gt;High (real users, real data)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Demos, learning&lt;/td&gt;
&lt;td&gt;Teams that maintain code&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; Vibe coding gets you a prototype. Agentic engineering is what you need the moment someone other than you depends on the result.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The mistake is using the first when the job needs the second. A tax calculator that's 5% wrong is worse than no calculator.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Governance is the part nobody wants to talk about
&lt;/h2&gt;

&lt;p&gt;Unnikrishnan's real point isn't "AI writes code now." It's that enterprises need &lt;strong&gt;control layers that sit above the LLM itself&lt;/strong&gt;. The episode names three guardrails worth stealing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-loop approval&lt;/strong&gt; — a person signs off before an agent's change lands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrails&lt;/strong&gt; — hard limits on what an agent is allowed to touch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control layers beyond the model&lt;/strong&gt; — governance that doesn't depend on the LLM behaving.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;His colleague &lt;strong&gt;Vivek Raghunathan&lt;/strong&gt;, SVP of engineering at Snowflake, described moving his org from chaos to a repeatable, org-wide system using a five-stage framework for AI-assisted engineering. The specific stages aren't detailed in the episode, so I won't invent them, but the direction is clear: process, not vibes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Governance sounds like a big-company problem. It isn't. If an agent can edit your files, "review every diff before it merges" is governance, and you can do it alone.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 Why "everyone becomes full-stack" favours small Sri Lankan teams
&lt;/h2&gt;

&lt;p&gt;Here's my angle. Big companies are only now discovering what small teams have always known: when there are three of you, everyone is already full-stack. You write the API, the frontend, the migration, and the deploy script in the same afternoon because nobody else will.&lt;/p&gt;

&lt;p&gt;Agentic tools flatten the cost of the parts you're weakest at. If backend is your comfort zone, an agent covers the CSS. If you're a designer who codes, it scaffolds the database layer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The old moat was headcount.&lt;/strong&gt; A 40-person team out-built a 4-person one on volume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The new moat is judgment.&lt;/strong&gt; Knowing what to ask for, and catching when the agent is confidently wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;That second skill is cheap to practise&lt;/strong&gt; and it doesn't require a Silicon Valley salary to learn.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a freelancer billing overseas clients from Colombo or Galle, this is leverage. You can credibly quote full-stack work you'd previously have subcontracted.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ How to practise agentic engineering on a learning budget
&lt;/h2&gt;

&lt;p&gt;You don't need Snowflake's stack to build the habits. Start with the loop: &lt;strong&gt;plan, generate, verify, approve.&lt;/strong&gt; The verify step is where beginners cut corners, so make it concrete.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Habit&lt;/th&gt;
&lt;th&gt;What it looks like solo&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Human-in-the-loop&lt;/td&gt;
&lt;td&gt;Read every diff before you accept it&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guardrails&lt;/td&gt;
&lt;td&gt;Agent works on a branch, never &lt;code&gt;main&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verify output&lt;/td&gt;
&lt;td&gt;Run the code, don't trust the prose&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn the language&lt;/td&gt;
&lt;td&gt;Test snippets in a sandbox before trusting them&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When an agent hands you a Python or SQL snippet and you're not sure it does what it claims, paste it into a sandbox and run it yourself. Our free &lt;a href="https://induwara.lk/tools/online-python-compiler" rel="noopener noreferrer"&gt;online code compilers&lt;/a&gt; execute Python, JavaScript, SQL, and more right in the browser, no signup, so "verify before you trust" costs you nothing but a few seconds.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; The developers who win the agentic era aren't the fastest prompters. They're the ones who reliably catch the 1-in-20 answer that's wrong.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🌐 What this means for you
&lt;/h2&gt;

&lt;p&gt;The Stack Overflow episode was recorded at Snowflake Summit for an enterprise audience, but the lesson scales down cleanly. Being full-stack is becoming the default, not the exception, and the tooling that makes it possible is mostly free or close to it.&lt;/p&gt;

&lt;p&gt;If you're a Sri Lankan student or a small-team builder, here's what I'd take from it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stop treating vibe coding and real engineering as the same skill.&lt;/strong&gt; Use the first to explore, the second to ship.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add one guardrail this week.&lt;/strong&gt; Even just "agent works on a branch, I review the diff" puts you ahead of most people abusing AI right now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get fast at verification.&lt;/strong&gt; It's the one habit that separates people who build with agents from people who get burned by them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lean into full-stack.&lt;/strong&gt; The market is about to reward generalists who can own a whole feature, and small teams here have been generalists all along.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The future the episode describes isn't one where AI replaces you. It's one where the developer with good judgment and a verify-everything habit finally gets to build like a team of ten.&lt;/p&gt;

</description>
      <category>agenticengineering</category>
      <category>vibecoding</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Vercel Buys Better Auth: What It Means for Your Stack</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Mon, 27 Jul 2026 06:26:53 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/vercel-buys-better-auth-what-it-means-for-your-stack-823</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/vercel-buys-better-auth-what-it-means-for-your-stack-823</guid>
      <description>&lt;p&gt;&lt;strong&gt;Vercel acquiring Better Auth&lt;/strong&gt; is the kind of news that sounds like plumbing until you realise it touches almost every login screen a TypeScript developer will ever ship. Better Auth is the open source authentication library with &lt;strong&gt;4.7M+ weekly npm downloads&lt;/strong&gt; and &lt;strong&gt;850+ contributors&lt;/strong&gt;, and now the team behind it is joining Vercel. Founder &lt;strong&gt;Bereket Engida&lt;/strong&gt; and the core team are coming along.&lt;/p&gt;

&lt;p&gt;I read the announcement on the &lt;a href="https://vercel.com/blog/vercel-acquires-better-auth" rel="noopener noreferrer"&gt;Vercel blog&lt;/a&gt; and my first reaction wasn't excitement. It was the same cautious pause I get whenever a big platform buys a piece of infrastructure I actually rely on. So let me work through what this changes, and what it doesn't, for the kind of builder I write for: solo devs, students, and small teams in Sri Lanka running on free tiers.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Why a boring auth library is a big deal
&lt;/h2&gt;

&lt;p&gt;Authentication is the one feature nobody wants to build and everybody has to. For years the choice on a small budget was ugly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Roll your own sessions and pray you got the cookie flags right.&lt;/li&gt;
&lt;li&gt;Reach for a hosted service and accept per-user pricing that scales against you.&lt;/li&gt;
&lt;li&gt;Glue together five libraries and own the maintenance forever.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Better Auth's pitch was different: &lt;strong&gt;framework-agnostic, runs anywhere, and the auth is yours&lt;/strong&gt;. No vendor sitting between you and your users' credentials.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; The value of Better Auth was never a feature list. It was ownership. You keep your user table, your sessions, your control. An acquisition is worth judging on whether that ownership survives.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🌐 "Open by default" is the promise to watch
&lt;/h2&gt;

&lt;p&gt;Vercel framed this using the same line it used for Next.js, the AI SDK, and Nuxt: software that's &lt;strong&gt;open by default, loosely coupled, and portable to any platform&lt;/strong&gt;. Better Auth is supposed to apply that to authentication.&lt;/p&gt;

&lt;p&gt;That phrase "portable to any platform" is the one I care about. Here's the honest comparison of what's on the table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concern&lt;/th&gt;
&lt;th&gt;What's promised&lt;/th&gt;
&lt;th&gt;What I'll verify before trusting it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;Stays open source&lt;/td&gt;
&lt;td&gt;Which license, and whether that holds across future releases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portability&lt;/td&gt;
&lt;td&gt;Runs on any platform&lt;/td&gt;
&lt;td&gt;Whether non-Vercel deploys stay first-class, not second-class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data ownership&lt;/td&gt;
&lt;td&gt;Auth you own&lt;/td&gt;
&lt;td&gt;That self-hosting keeps working without a paid tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Roadmap&lt;/td&gt;
&lt;td&gt;Continued by same team&lt;/td&gt;
&lt;td&gt;Whether community PRs still land&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I'm not accusing anyone of anything. I'm saying the load-bearing word in this deal is &lt;strong&gt;portable&lt;/strong&gt;, and the proof is in the next twelve months of commits, not the launch post.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Agent identity is the actual story
&lt;/h2&gt;

&lt;p&gt;Buried under the acquisition headline is the part I think matters most long-term. When an AI agent acts on your behalf today, it runs &lt;strong&gt;under your identity and your access&lt;/strong&gt;. Every service it touches sees you, not the agent.&lt;/p&gt;

&lt;p&gt;That's a real problem, and the announcement describes it plainly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There's no clean way to limit what any one agent or subagent can do, or to shut down just one without cutting off the rest.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Better Auth team has been building &lt;strong&gt;Agent Auth&lt;/strong&gt; so each agent carries its own identity and its own &lt;strong&gt;scoped, revocable authority&lt;/strong&gt;, with you as the single point of control. Think of the difference like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Who the service sees&lt;/th&gt;
&lt;th&gt;Kill one agent?&lt;/th&gt;
&lt;th&gt;Blast radius if leaked&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Today (shared identity)&lt;/td&gt;
&lt;td&gt;You&lt;/td&gt;
&lt;td&gt;No, you cut off everything&lt;/td&gt;
&lt;td&gt;Full account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Auth (scoped identity)&lt;/td&gt;
&lt;td&gt;The specific agent&lt;/td&gt;
&lt;td&gt;Yes, revoke just that one&lt;/td&gt;
&lt;td&gt;One scope&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you're building anything that lets an LLM call tools or hit APIs, this is the pattern to understand now. It's the auth equivalent of giving each script its own API key instead of sharing the root credential.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What a Sri Lankan builder should actually do
&lt;/h2&gt;

&lt;p&gt;You don't need to react to an acquisition. You need to make good decisions regardless of who owns the library. Here's my checklist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;If you already use Better Auth&lt;/strong&gt;, change nothing today. Keep an eye on the release notes and the license file. Migrating auth under panic is how you leak sessions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you're picking auth for a new project&lt;/strong&gt;, Better Auth is still a strong free-tier choice precisely because it self-hosts. No per-user bill as you grow. Just confirm the self-host path stays free before you commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you're learning&lt;/strong&gt;, read the source. An 850-contributor auth library is one of the best-documented ways to actually understand sessions, tokens, and JWTs without a course.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep an escape hatch.&lt;/strong&gt; Because it's framework-agnostic, your user data lives in your database. That's your portability insurance. Guard it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When you're poking at tokens during any of this, a quick decode helps. Our &lt;a href="https://induwara.lk/tools/jwt-decoder" rel="noopener noreferrer"&gt;JWT decoder&lt;/a&gt; reads a token's header and payload right in the browser, nothing sent to a server, which is handy when you're debugging a login flow at 2am on shared hosting.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; An acquisition doesn't change your architecture. Owning your user data does. Design so that switching auth libraries is a weekend, not a rewrite.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 What this means for you
&lt;/h2&gt;

&lt;p&gt;Vercel buying Better Auth is a bet that authentication and &lt;strong&gt;agent identity&lt;/strong&gt; become core infrastructure, not an add-on. For a solo builder in Colombo shipping on a free tier, the practical takeaway is small and steady: keep using open, self-hostable auth, keep your user data in a database you control, and start learning the scoped-identity pattern now because agent-driven apps are going to need it.&lt;/p&gt;

&lt;p&gt;The best thing about open source infrastructure is that ownership doesn't transfer in an acquisition. The code you've already deployed still runs. Your job is to make sure it stays that way, and to treat "portable to any platform" as a claim you verify, not a slogan you trust. If the team keeps that promise, this is good news. If they don't, you kept your data, and you can walk. Either way, you win by staying in control.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Context Engineering: The Real AI Bottleneck Explained</title>
      <dc:creator>Induwara Ashinsana</dc:creator>
      <pubDate>Sun, 26 Jul 2026 10:24:29 +0000</pubDate>
      <link>https://dev.to/induwara_ashinsana_9e4d5b/context-engineering-the-real-ai-bottleneck-explained-5ed5</link>
      <guid>https://dev.to/induwara_ashinsana_9e4d5b/context-engineering-the-real-ai-bottleneck-explained-5ed5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Context engineering&lt;/strong&gt; is the skill I now think separates people who get real work out of AI from people who get impressive-looking demos and nothing shippable. That framing comes from a piece I read this week: Stack Overflow's &lt;em&gt;No Dumb Questions&lt;/em&gt; episode, &lt;a href="https://stackoverflow.blog/2026/07/24/no-dumb-questions-ai-bottleneck/" rel="noopener noreferrer"&gt;"What is the AI bottleneck?"&lt;/a&gt;, where their Director of Data Science, &lt;strong&gt;Michael Foree&lt;/strong&gt;, explains the idea to a colleague named Phoebe.&lt;/p&gt;

&lt;p&gt;The headline claim is the interesting bit. The model isn't the problem anymore. The plumbing around it is.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 The bottleneck isn't intelligence, it's connection
&lt;/h2&gt;

&lt;p&gt;Foree's definition of the bottleneck is blunt: AI is "competent and capable of doing most of the things that people want it to do," but it can't reach the actual context of your everyday work. The capability is sitting there. The wiring to your real files, threads, and tools is not.&lt;/p&gt;

&lt;p&gt;That reframes a lot of the "AI can't do my job" complaints. Usually the model isn't failing at reasoning. It's failing because it never got the inputs a human would have gathered without thinking.&lt;/p&gt;

&lt;p&gt;The article gives three grounded examples:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Where AI stalls&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Replying to an email&lt;/td&gt;
&lt;td&gt;You must manually gather the thread, related docs, Slack messages, and meeting context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redesigning a room&lt;/td&gt;
&lt;td&gt;AI picks paint and furniture, but can't iterate fast across disconnected tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grocery shopping&lt;/td&gt;
&lt;td&gt;It builds the list fine, but ordering needs multiple store APIs with unclear incentives&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; In every example, the model was capable. What was missing was access to the right information and the ability to act on it. That gap is the bottleneck.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🛠️ What "context engineering" actually means
&lt;/h2&gt;

&lt;p&gt;Foree defines context engineering as deliberately identifying and providing the AI with relevant information sources while filtering out distractions. His one-line version: &lt;em&gt;"You have to stop and think about what you're doing."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That sounds soft until you notice it's the opposite of how most people use a chatbot. The default habit is to type a vague request and hope. Context engineering is the discipline of assembling the input on purpose.&lt;/p&gt;

&lt;p&gt;I'd break the job into three moves:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Include&lt;/strong&gt; the sources that actually matter to the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exclude&lt;/strong&gt; the noise that will pull the model off track.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate&lt;/strong&gt; on that selection and write down what worked.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The reason exclusion matters as much as inclusion: the article notes AI "gets distracted by irrelevant information." More context is not automatically better context. A bloated prompt full of unrelated dumps can produce a worse answer than a tight one.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Why this is good news if you're on a small budget
&lt;/h2&gt;

&lt;p&gt;Here's the part that matters for a student in Kandy or a two-person startup in Colombo. Context engineering is a &lt;strong&gt;skill, not a subscription.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don't need a bigger model or an enterprise plan to practise it. You need to think harder about what you paste in. That levels the field in a way most AI advantages don't.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Advantage&lt;/th&gt;
&lt;th&gt;Costs money?&lt;/th&gt;
&lt;th&gt;Who can practise it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Access to the biggest frontier model&lt;/td&gt;
&lt;td&gt;Usually yes&lt;/td&gt;
&lt;td&gt;Anyone with budget&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Massive proprietary data warehouse&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Enterprises&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Anyone, including free-tier users&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There's one real constraint worth watching: the &lt;strong&gt;context window&lt;/strong&gt;. Every model has a fixed budget for how much text it can hold at once, and long dumps get expensive on paid APIs and can crowd out the useful bits. If you're piecing together email threads, docs, and code into a single prompt, it helps to know roughly how much you're stuffing in. Our &lt;a href="https://induwara.lk/tools/ai-context-window-calculator" rel="noopener noreferrer"&gt;AI context window calculator&lt;/a&gt; and &lt;a href="https://induwara.lk/tools/ai-token-counter" rel="noopener noreferrer"&gt;token counter&lt;/a&gt; are free ways to check that before you hit a limit or a bill.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Filtering isn't just about accuracy. On a metered API, every irrelevant paragraph you leave out is money you keep.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 How to actually get better at it
&lt;/h2&gt;

&lt;p&gt;Foree's advice for becoming a better context engineer is to &lt;strong&gt;"observe and wonder."&lt;/strong&gt; Pay attention to which information sources matter, what should be excluded, and what distractions keep creeping in. Then test, iterate, and document.&lt;/p&gt;

&lt;p&gt;I'd turn that into a routine you can run this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before the prompt:&lt;/strong&gt; ask "what would a competent colleague need to answer this?" Gather exactly that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;During:&lt;/strong&gt; watch where the model guesses or drifts. A guess usually means a missing input, not a dumb model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After:&lt;/strong&gt; save the prompts that worked. Your reusable context beats a one-off clever question every time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A small worked example. Say you're a freelancer drafting a reply to an overseas client about a late invoice. The lazy prompt is "write a polite follow-up about my payment." The engineered version includes the original invoice terms, the two prior emails, the agreed currency, and a note to keep it short and non-pushy. Same model, completely different output. The second one is usable; the first one is a form letter.&lt;/p&gt;

&lt;p&gt;That's the whole discipline in one message: you did the gathering the model couldn't do for itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this means for you
&lt;/h2&gt;

&lt;p&gt;The Stack Overflow piece is really an argument about where the value is moving. If the models are already "competent," then the edge isn't owning the smartest one. It's feeding whatever model you have the right context and cutting the rest.&lt;/p&gt;

&lt;p&gt;For a Sri Lankan builder, student, or small team, that's the encouraging read:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don't need the biggest model to get strong results.&lt;/li&gt;
&lt;li&gt;The scarce skill is judgement about inputs, and that's free to build.&lt;/li&gt;
&lt;li&gt;Documenting your good prompts compounds. Treat them like reusable code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The people who win the next couple of years won't be the ones with the fanciest subscription. They'll be the ones who got disciplined about what they put in front of the model, and left the noise out. Start noticing your own context now, while it's still a rare habit.&lt;/p&gt;

</description>
      <category>contextengineering</category>
      <category>aiworkflow</category>
      <category>promptengineering</category>
    </item>
  </channel>
</rss>
