<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Nihal Sulaiman · Blog</title><description>Data engineering, BI, Kaggle and machine-learning notes from building real projects.</description><link>https://nihalsulaiman.com/</link><language>en-ca</language><item><title>I used a month of GitHub Actions minutes in one evening</title><link>https://nihalsulaiman.com/blog/github-actions-minutes/</link><guid isPermaLink="true">https://nihalsulaiman.com/blog/github-actions-minutes/</guid><description>2,391 of 2,000 free minutes, gone in about five hours. The billing detail I missed, and the guardrails I now put on every workflow.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>GitHub Actions</category><category>CI/CD</category><category>MLOps</category><category>Cost</category></item><item><title>When the validation set lies: a leak-free hold-out for CASMI 2026</title><link>https://nihalsulaiman.com/blog/leak-free-validation-casmi/</link><guid isPermaLink="true">https://nihalsulaiman.com/blog/leak-free-validation-casmi/</guid><description>My offline score said 0.930. The leaderboard dropped from 0.415 to 0.371. How I built a 300-molecule hold-out that finally agreed with the leaderboard.</description><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate><category>Kaggle</category><category>Validation</category><category>Machine learning</category><category>Data leakage</category></item><item><title>Why I&apos;m writing in public</title><link>https://nihalsulaiman.com/blog/hello/</link><guid isPermaLink="true">https://nihalsulaiman.com/blog/hello/</guid><description>Who I am, what this blog will cover and why every post comes with the numbers and the parts that didn&apos;t work.</description><pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate><category>Career</category><category>Data analytics</category></item></channel></rss>