<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Sudeep Dhakal — IT Consultant</title><description>Sudeep Dhakal is an IT consultant in Kathmandu working across infrastructure, automation and applied AI. He builds practical systems for small teams and publishes what he learns.</description><link>https://sudeepd.com.np</link><language>en-gb</language><copyright>© 2026 Sudeep Dhakal</copyright><lastBuildDate>Wed, 24 Jun 2026 00:00:00 GMT</lastBuildDate><item><title>Runbooks nobody follows are just documents</title><link>https://sudeepd.com.np/writing/runbooks-nobody-follows</link><guid isPermaLink="true">https://sudeepd.com.np/writing/runbooks-nobody-follows</guid><description>Why my first six runbooks failed, and the rewrite that cut incident resolution time roughly in half.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>Lesson learned</category><category>incident</category><category>runbooks</category><category>documentation</category><category>process</category><author>hello@sudeepd.com.np</author></item><item><title>Upgrading a decade-old PHP app without stopping the business</title><link>https://sudeepd.com.np/writing/legacy-php-migration</link><guid isPermaLink="true">https://sudeepd.com.np/writing/legacy-php-migration</guid><description>A phased migration that kept the site up every weekend, what the strangler-fig pattern actually looks like in practice, and the two things that nearly went wrong.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><category>How-to</category><category>migration</category><category>php</category><category>strangler-fig</category><category>legacy</category><category>architecture</category><author>hello@sudeepd.com.np</author></item><item><title>A six-month look at which AI tooling actually survived daily use</title><link>https://sudeepd.com.np/writing/ai-tooling-six-months-retrospective</link><guid isPermaLink="true">https://sudeepd.com.np/writing/ai-tooling-six-months-retrospective</guid><description>Six months of client work, tracking which tools stuck and which quietly stopped being opened. Includes the boring ones that won.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><category>AI guide</category><category>ai</category><category>tooling</category><category>claude</category><category>review</category><category>workflow</category><author>hello@sudeepd.com.np</author></item><item><title>I got paged for a DNS outage that was a laptop on hotel wifi</title><link>https://sudeepd.com.np/writing/dns-outage-local-resolver</link><guid isPermaLink="true">https://sudeepd.com.np/writing/dns-outage-local-resolver</guid><description>A short post about the incident that taught me to check the physical layer first, and the monitoring rule I added afterwards.</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><category>Lesson learned</category><category>incident</category><category>dns</category><category>monitoring</category><category>networking</category><author>hello@sudeepd.com.np</author></item><item><title>Backups: the checks that matter are the ones nobody runs</title><link>https://sudeepd.com.np/writing/backup-restore-drill</link><guid isPermaLink="true">https://sudeepd.com.np/writing/backup-restore-drill</guid><description>A restoration drill is the only backup that has ever saved anyone. How to run one in an afternoon, and the three failures it will find.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate><category>How-to</category><category>backups</category><category>infrastructure</category><category>disaster-recovery</category><category>linux</category><author>hello@sudeepd.com.np</author></item><item><title>What &quot;give the AI our invoices&quot; actually means, technically</title><link>https://sudeepd.com.np/writing/ai-invoice-extraction-architecture</link><guid isPermaLink="true">https://sudeepd.com.np/writing/ai-invoice-extraction-architecture</guid><description>A concrete architecture for document extraction that a small Nepali services business can run on a budget, including the parts that go wrong.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate><category>AI guide</category><category>ai</category><category>llm</category><category>extraction</category><category>claude</category><category>cost</category><author>hello@sudeepd.com.np</author></item><item><title>Deploying a Cloudflare Worker for a Nepali SaaS, and what surprised me</title><link>https://sudeepd.com.np/writing/cloudflare-workers-nepal-latency</link><guid isPermaLink="true">https://sudeepd.com.np/writing/cloudflare-workers-nepal-latency</guid><description>Latency numbers, D1 versus Postgres from Kathmandu, and the three assumptions that turned out to be wrong when I moved a client onto Cloudflare Workers.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate><category>How-to</category><category>cloudflare</category><category>workers</category><category>d1</category><category>performance</category><category>nepal</category><author>hello@sudeepd.com.np</author></item><item><title>The 40-minute Friday report nobody wanted to own</title><link>https://sudeepd.com.np/writing/friday-report-automation</link><guid isPermaLink="true">https://sudeepd.com.np/writing/friday-report-automation</guid><description>A finance team was losing four hours every Friday to a manual export. Here is exactly how we cut it to four minutes, and the part that mattered more than the automation.</description><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate><category>Case study</category><category>automation</category><category>python</category><category>sqlite</category><category>reporting</category><author>hello@sudeepd.com.np</author></item></channel></rss>