<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[KridWorks - Medium]]></title>
        <description><![CDATA[A publication about my experiences from product world to consulting world. Navigating through different aspects of software engineering, tackling problems with human resources and communications. - Medium]]></description>
        <link>https://medium.com/blog-by-kridworks?source=rss----6e70320e5ccc---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>KridWorks - Medium</title>
            <link>https://medium.com/blog-by-kridworks?source=rss----6e70320e5ccc---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 18 May 2026 09:25:46 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/blog-by-kridworks" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[AI Division of Labor — Part 1]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/blog-by-kridworks/ai-division-of-labor-part-1-0a59259337cd?source=rss----6e70320e5ccc---4"><img src="https://cdn-images-1.medium.com/max/1408/1*LDnhYIjZ8681rgfgV1bGvg.png" width="1408"></a></p><p class="medium-feed-snippet">t&#x2019;s not about replacing engineers. It&#x2019;s about deciding where human judgment begins&#x200A;&#x2014;&#x200A;and where machine execution takes over.</p><p class="medium-feed-link"><a href="https://medium.com/blog-by-kridworks/ai-division-of-labor-part-1-0a59259337cd?source=rss----6e70320e5ccc---4">Continue reading on KridWorks »</a></p></div>]]></description>
            <link>https://medium.com/blog-by-kridworks/ai-division-of-labor-part-1-0a59259337cd?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/0a59259337cd</guid>
            <category><![CDATA[division-of-labor]]></category>
            <category><![CDATA[computer-science]]></category>
            <category><![CDATA[understanding]]></category>
            <category><![CDATA[human-in-the-loop]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Tue, 28 Apr 2026 03:02:24 GMT</pubDate>
            <atom:updated>2026-04-28T03:02:24.156Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Zig as a Teacher: Rediscovering the Fundamentals of Web Development]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/blog-by-kridworks/zig-as-a-teacher-rediscovering-the-fundamentals-of-web-development-3bb6a6689169?source=rss----6e70320e5ccc---4"><img src="https://cdn-images-1.medium.com/max/1536/1*xDgvKYTv0WUboqmMXwvzGg.png" width="1536"></a></p><p class="medium-feed-snippet">For decades, web developers have been building applications on top of HTTP, but many of us have never really learned how it works. I&#x2019;ll&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/blog-by-kridworks/zig-as-a-teacher-rediscovering-the-fundamentals-of-web-development-3bb6a6689169?source=rss----6e70320e5ccc---4">Continue reading on KridWorks »</a></p></div>]]></description>
            <link>https://medium.com/blog-by-kridworks/zig-as-a-teacher-rediscovering-the-fundamentals-of-web-development-3bb6a6689169?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/3bb6a6689169</guid>
            <category><![CDATA[self-learning]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[zig]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Thu, 18 Sep 2025 01:18:14 GMT</pubDate>
            <atom:updated>2025-10-11T19:18:19.740Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Building a Boilerplate Generator: From Theory to Rust Implementation]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-rust-implementation-38a5d8831774?source=rss----6e70320e5ccc---4"><img src="https://cdn-images-1.medium.com/max/2600/0*usH5r4-etK1IUqAu" width="5184"></a></p><p class="medium-feed-snippet">Previously, we explored how to create a boilerplate generator in TypeScript. If you&#x2019;re curious about that approach, check out the article&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-rust-implementation-38a5d8831774?source=rss----6e70320e5ccc---4">Continue reading on KridWorks »</a></p></div>]]></description>
            <link>https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-rust-implementation-38a5d8831774?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/38a5d8831774</guid>
            <category><![CDATA[boilerplate]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[rust]]></category>
            <category><![CDATA[design-patterns]]></category>
            <category><![CDATA[tools]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Wed, 04 Dec 2024 14:31:02 GMT</pubDate>
            <atom:updated>2024-12-04T14:40:01.281Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Turbopack 2024: Understanding State Machines for Optimum Performance]]></title>
            <link>https://medium.com/blog-by-kridworks/turbopack-2024-understanding-state-machines-for-optimum-performance-72baf52e8efe?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/72baf52e8efe</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[patterns]]></category>
            <category><![CDATA[state-machine]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Fri, 29 Nov 2024 15:41:40 GMT</pubDate>
            <atom:updated>2024-11-29T15:41:39.953Z</atom:updated>
            <content:encoded><![CDATA[<h4>Studying about state machines will only get you so far. Recognizing their application and implementing them could take you to the stars.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/843/0*0armGqn_17TT18oo" /></figure><p>Tackling the ever-evolving fast-paced web development landscape, progressively complex build tools are essential. Vercel developed their new bundler technology, Turbopack, in 2021, and only after rigorous testing and multiple iterations, they finally brought out a stable version during NextConf 2024.</p><p>In the words of RauchG, “Make it Work, Make it Right and then Make it Fast”, and the iterations they went through with Turbopack are exactly that. They first built a version with creators of Webpack to get the fundamentals “Work”, then they brought in Rust-based SWC that compiles typescript to make it “Right”. Only then, did Vercel ship out the stable version of Turbopack that is “Fast”.</p><p>Apologies for the gross simplification of the 3-year process, but to get to the point of State Machines and to understand their implementation, the history needed to be cut short.</p><p>When I saw the NextConf 2024, the only thing that quite mesmerized me more than the partial rendering was the incremental caching done by Turbopack during development. The world needs insanely fast build times and Vercel delivered it. Turbopack was once deemed much slower than Webpack, which it replaces in the NextJS versions making it their default bundler, and that was experimental… until now.</p><h3>Understanding State Machines</h3><p>Every computer science graduate has come across this term and ignored it for most of their lives. A REST application, when made with HATEOAS, is a good example of a state machine. It correctly describes the state of the application or a resource at the given time and flows from one state to the other.</p><h4>What is a state machine?</h4><blockquote>A state machine is a behavioral model. It consists of a finite number of states and is therefore also called a finite-state machine (FSM). Based on the current state and a given input the machine performs state transitions and produces outputs</blockquote><p>Read more about state machines <a href="https://medium.com/meliopayments/simplify-your-code-with-state-machines-c9a0f12e0e62">here in the article</a> written by <a href="/@yotam707?source=post_page---byline--c9a0f12e0e62--------------------------------">Yotam Bloom</a>.</p><p>Now that, you have an understanding of state machines, let’s dive into what could’ve happened with Turbopack and how it could have achieved phenomenal speeds during build timings.</p><h4>What is simplification?</h4><p>The article above is an example of how you could simplify your code by utilizing state machines and hence streamlining the development of your React application. But is that all that simplification means? Reducing code? No. If you think that, that’s a gross “over-simplification” of things.</p><p>Simplification is the process of distilling something complex into its most essential and clear components, making it easier to understand, use, or communicate. This often involves restructuring, rephrasing, and sometimes omitting non-critical elements while maintaining the core meaning or functionality.</p><h3>How does simplification relate to Turbopack and its performance?</h3><p>It is evident that Turbopack heavily relies on caching. What exactly is caching and rehydrating? It is storing the state of the application in a logical space, and retrieving it when necessary.</p><p>Turbopack initially builds the application and stores the build result along with the files it had built in its cache. Once the user makes any change to the project, it rebuilds what is only changed. This is caching, and finite-state-machine in play.</p><p>Building initially creates a state for that application. Changing the code triggers a rebuild that inherently creates another state for that application, while only building what has changed from the previous state. Reverting a change also causes the machine to create another state which could be similar to what was already created, but only moves in the forward direction of the graph.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PSxObQRl4boo1Ctdku5DuQ.png" /><figcaption>State machine for Turbopack</figcaption></figure><p>By storing the entire application build for each state, we increase the simplification of building while only diff-ing the changes before building. The reference point for each build is the latest state, rather than building from the diff of the entire graph.</p><h3>Conclusion: State Machines: The Backbone of Turbopack’s Speed</h3><p>By leveraging the principles of finite-state machines, Turbopack revolutionizes the way builds are handled. Each state serves as a precise snapshot, enabling efficient caching and incremental builds. This forward-moving architecture ensures that only the necessary changes are processed, drastically reducing build times and enhancing developer productivity.</p><p>The brilliance of Turbopack lies not just in its Rust-based engine or its caching mechanism, but in its seamless use of state machines to simplify and optimize the development process. This is how Vercel has achieved the seemingly impossible — blazing-fast performance that sets a new standard for modern bundlers.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=72baf52e8efe" width="1" height="1" alt=""><hr><p><a href="https://medium.com/blog-by-kridworks/turbopack-2024-understanding-state-machines-for-optimum-performance-72baf52e8efe">Turbopack 2024: Understanding State Machines for Optimum Performance</a> was originally published in <a href="https://medium.com/blog-by-kridworks">KridWorks</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Building a Boilerplate Generator: From Theory to TypeScript Implementation]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-typescript-implementation-97508e467736?source=rss----6e70320e5ccc---4"><img src="https://cdn-images-1.medium.com/max/2600/0*fTjb_ETuxd7-6i4P" width="6000"></a></p><p class="medium-feed-snippet">Last week I wrote an article about building a boilerplate generator and conceptualizing an adapter for each facet of engineering. If you&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-typescript-implementation-97508e467736?source=rss----6e70320e5ccc---4">Continue reading on KridWorks »</a></p></div>]]></description>
            <link>https://medium.com/blog-by-kridworks/building-a-boilerplate-generator-from-theory-to-typescript-implementation-97508e467736?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/97508e467736</guid>
            <category><![CDATA[boilerplate]]></category>
            <category><![CDATA[design-patterns]]></category>
            <category><![CDATA[typescript]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[organized-code]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Fri, 01 Nov 2024 13:31:55 GMT</pubDate>
            <atom:updated>2024-11-01T14:00:17.873Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Best Practices for Writing React Components in 2024]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/blog-by-kridworks/writing-components-the-correct-way-in-react-f405b3deed26?source=rss----6e70320e5ccc---4"><img src="https://cdn-images-1.medium.com/max/1834/1*2wEa-lJbI09QXcjY06NVFw.png" width="1834"></a></p><p class="medium-feed-snippet">Creating components the correct way.</p><p class="medium-feed-link"><a href="https://medium.com/blog-by-kridworks/writing-components-the-correct-way-in-react-f405b3deed26?source=rss----6e70320e5ccc---4">Continue reading on KridWorks »</a></p></div>]]></description>
            <link>https://medium.com/blog-by-kridworks/writing-components-the-correct-way-in-react-f405b3deed26?source=rss----6e70320e5ccc---4</link>
            <guid isPermaLink="false">https://medium.com/p/f405b3deed26</guid>
            <category><![CDATA[reactjs]]></category>
            <category><![CDATA[ui-development]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[composition-pattern]]></category>
            <dc:creator><![CDATA[Krishna Dubagunta]]></dc:creator>
            <pubDate>Sun, 27 Oct 2024 04:32:12 GMT</pubDate>
            <atom:updated>2024-10-28T20:51:18.510Z</atom:updated>
        </item>
    </channel>
</rss>