<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Bulatnikov — Writing</title><description>Notes on data, modeling, and the small operational choices that keep analytics teams sane.</description><link>https://bulatnikovdata.com/</link><language>en</language><item><title>I watched the F1 movie and built a data dashboard. Here&apos;s what I learned.</title><link>https://bulatnikovdata.com/blog/fastf1-streamlit-dashboard/</link><guid isPermaLink="true">https://bulatnikovdata.com/blog/fastf1-streamlit-dashboard/</guid><description>How a Lando Norris Wikipedia spiral turned into a three-page Streamlit dashboard — the bugs, the wrong assumptions, and what FastF1 actually gives you.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate><category>python</category><category>streamlit</category><category>f1</category><category>data</category></item><item><title>I audited a week of our Slack bot and found 70% of alerts were noise</title><link>https://bulatnikovdata.com/blog/reducing-slack-alert-noise-bigquery/</link><guid isPermaLink="true">https://bulatnikovdata.com/blog/reducing-slack-alert-noise-bigquery/</guid><description>How I reduced alert volume by 70% in DIM 9000 Adviser — deduplication, actionable-only daily reports, and what the data showed that team feedback didn&apos;t.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><category>alerts</category><category>bigquery</category><category>ops</category><category>python</category></item></channel></rss>