<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Suyog Adhikari · Writing</title><description>Notes on building software, Web3 and applied cryptography.</description><link>https://portfolio-guysowe.netlify.app/</link><language>en</language><item><title>Building an MCP server: what to expose and what to keep out</title><link>https://portfolio-guysowe.netlify.app/writing/building-an-mcp-server/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/building-an-mcp-server/</guid><description>A practical look at writing an MCP server in TypeScript, from the first tool to the decisions about scope, descriptions and trust.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>MCP</category><category>AI</category><category>TypeScript</category></item><item><title>Writing Move after Solidity</title><link>https://portfolio-guysowe.netlify.app/writing/writing-move-after-solidity/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/writing-move-after-solidity/</guid><description>What changes when assets are objects you own instead of rows in a contract&apos;s mapping, and the Solidity habits I had to drop.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate><category>Move</category><category>Sui</category><category>Solidity</category></item><item><title>Encrypting in the browser, not on the server</title><link>https://portfolio-guysowe.netlify.app/writing/encrypting-in-the-browser/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/encrypting-in-the-browser/</guid><description>What changes when a post is encrypted before it leaves the client, and why &apos;encrypted at rest&apos; is a weaker claim than it sounds.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>Cryptography</category><category>Web3</category></item><item><title>Making an indexer safe to retry</title><link>https://portfolio-guysowe.netlify.app/writing/making-an-indexer-safe-to-retry/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/making-an-indexer-safe-to-retry/</guid><description>Queues retry. Chains reorg. Workers crash halfway through. Here is how I stop an on-chain indexer from counting the same event twice.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate><category>Backend</category><category>Web3</category></item><item><title>Three ways a DAO treasury goes wrong</title><link>https://portfolio-guysowe.netlify.app/writing/things-a-dao-treasury-gets-wrong/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/things-a-dao-treasury-gets-wrong/</guid><description>Notes from writing a small proposal-and-vote contract: snapshot your voting power, update state before you send ETH, and decide what &apos;passed&apos; means.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>Solidity</category><category>Web3</category></item><item><title>Hello, world</title><link>https://portfolio-guysowe.netlify.app/writing/hello-world/</link><guid isPermaLink="true">https://portfolio-guysowe.netlify.app/writing/hello-world/</guid><description>A new home for my notes on building things, and a small robot that keeps an eye on you while you read.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate><category>Meta</category><category>Frontend</category></item></channel></rss>