<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ashish Choubey - Blog</title>
    <link>https://imashish.dev/blog/</link>
    <description>Technical blog posts on embedded systems, debugging, software architecture, and open source by Ashish Choubey.</description>
    <language>en-us</language>
    <lastBuildDate>Fri, 05 Jun 2026 11:46:34 GMT</lastBuildDate>
    <atom:link href="https://imashish.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title><![CDATA[Making MobX @computed Lazy: A 97-Line Patch with a Surprising Amount of Care]]></title>
      <link>https://imashish.dev/blog/mobx-lazy-computed-decorator/</link>
      <guid>https://imashish.dev/blog/mobx-lazy-computed-decorator/</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[MobX was eagerly allocating a ComputedValue for every @computed getter on every instance — even ones that never get read. This is the story of issue #4616, the lazy fix that landed in PR #4639, and the quiet contracts that made it harder than it looks.]]></description>
      <category>Open Source</category>
    </item>
    <item>
      <title><![CDATA[How an E-Paper Display Keeps Time: The RMT Peripheral Story]]></title>
      <link>https://imashish.dev/blog/how-e-paper-keeps-time/</link>
      <guid>https://imashish.dev/blog/how-e-paper-keeps-time/</guid>
      <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[E-paper displays need microsecond-accurate electrical pulses to move ink particles. This is the story of how the ESP32 RMT peripheral generates those pulses, and what broke when Espressif rewrote the driver API.]]></description>
      <category>Embedded</category>
    </item>
    <item>
      <title><![CDATA[The Byte That Froze My Display]]></title>
      <link>https://imashish.dev/blog/the-byte-that-froze-my-display/</link>
      <guid>https://imashish.dev/blog/the-byte-that-froze-my-display/</guid>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[A single malformed UTF-8 byte froze an entire e-ink display. No crash, no error — just an infinite loop. This is the story of how a bare continuation byte exposed a parser bug in embedded firmware.]]></description>
      <category>Debugging</category>
    </item>
    <item>
      <title><![CDATA[From ASCII to UTF-8: How Text Learned Every Language]]></title>
      <link>https://imashish.dev/blog/from-ascii-to-utf8/</link>
      <guid>https://imashish.dev/blog/from-ascii-to-utf8/</guid>
      <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[From 128 characters in the 1960s to every writing system on Earth. The history of text encoding, why UTF-8 won the internet, and what happens between bytes and the pixels you read.]]></description>
      <category>History</category>
    </item>
  </channel>
</rss>
