<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rishi Kulkarni | Statistics &amp; Machine Learning</title><link>https://rukulkarni.com/</link><description>Recent content on Rishi Kulkarni | Statistics &amp; Machine Learning</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 12 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://rukulkarni.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Notes on "From Predictions to Decisions" (Wen et al., 2022)</title><link>https://rukulkarni.com/blog/notes-on-from-predictions-to-decisions/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/notes-on-from-predictions-to-decisions/</guid><description>Wen et al. show two forecasters with identical marginal predictions can make arbitrarily different decisions. A disjoint contextual bandit (one model per arm) is exactly their independence forecaster. In conjugate linear models the joint is exact and free, and partial pooling through a shared component gets it back.</description></item><item><title>Slow Code Makes Product Decisions for You</title><link>https://rukulkarni.com/blog/slow-code-makes-product-decisions-for-you/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/slow-code-makes-product-decisions-for-you/</guid><description>Our most-hit endpoint took 200 milliseconds per shift, so someone capped it at one page of results. The cap ran for years and quietly made product decisions nobody agreed to: an eleven-item shelf, a two-second page, and features that never became ideas. Then a blocked MySQL upgrade forced us to finally read the function.</description></item><item><title>Three Types of Bayesian Forgetting for Online Learning</title><link>https://rukulkarni.com/blog/three-types-of-bayesian-forgetting/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/three-types-of-bayesian-forgetting/</guid><description>If you&amp;rsquo;re running a Bayesian model in a non-stationary environment, you need to forget old data. The obvious approach – scale the precision matrix by a constant – has a failure mode called covariance windup. This post works through three forgetting rules, ending with one borrowed from adaptive control that dominates the others.</description></item><item><title>Running Multiple Services in a Docker Container with OpenRC</title><link>https://rukulkarni.com/blog/serverful-containers/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/serverful-containers/</guid><description>&lt;p>My wife has a blog that I self-host. WordPress-based, so it&amp;rsquo;s MySQL, PHP-FPM, nginx. I&amp;rsquo;d like to think about its deployment/infrastructure approximately never.&lt;/p></description></item><item><title>Notes on "Deep Bayesian Bandits Showdown" (Riquelme et al., 2018)</title><link>https://rukulkarni.com/blog/notes-on-deep-bayesian-bandits-showdown/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/notes-on-deep-bayesian-bandits-showdown/</guid><description>&lt;p>I probably overuse the normal-inverse-gamma posterior. Every time I build a bandit system, every time I need uncertainty quantification for sequential decisions, I end up back at conjugate linear regression.&lt;/p></description></item><item><title>WebAuthn for Dummies Like Me</title><link>https://rukulkarni.com/blog/webauthn-for-dummies-like-me/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/webauthn-for-dummies-like-me/</guid><description>&lt;p>For a new project at work, we didn&amp;rsquo;t want to do passwords. The two candidates were magic links and WebAuthn, and we ended up going with magic links—but I got curious about WebAuthn anyway, so I built a demo app to understand it.&lt;/p></description></item><item><title>Approximate Hierarchical Bayes for Online Decision-Making</title><link>https://rukulkarni.com/blog/approximate-hierarchical-bayes-online-learning/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/approximate-hierarchical-bayes-online-learning/</guid><description>Suppose you&amp;rsquo;re choosing a continuous value x and observing a noisy reward y. The reward depends on x through some unknown function f(x), and you&amp;rsquo;re making decisions repeatedly—learning as you go. This post explores how to build scalable Bayesian models for this problem using principled approximations.</description></item><item><title>Building systemd Portable Service Images for Python Apps with Native Dependencies</title><link>https://rukulkarni.com/blog/building-python-portable-services/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/building-python-portable-services/</guid><description>&lt;p>In my &lt;a href="https://rukulkarni.com/blog/systemd-portable-services/">previous post&lt;/a>, I covered running portable services—version-controlled config, atomic updates, zero-downtime restarts, all without a container runtime. This is only half of the container story, though. You also need to build the service images.&lt;/p></description></item><item><title>systemd Portable Services Are Pretty Good</title><link>https://rukulkarni.com/blog/systemd-portable-services/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/systemd-portable-services/</guid><description>&lt;p>I run &lt;a href="https://bowl.science">bowl.science&lt;/a>, an online Science Bowl tournament platform. It&amp;rsquo;s a side project, but it&amp;rsquo;s real production: the DOE Office of Science uses it for their Science Bowl competitions. When a tournament is happening, the app needs to work. There&amp;rsquo;s no &amp;ldquo;we&amp;rsquo;ll fix it in the next sprint.&amp;rdquo;&lt;/p></description></item><item><title>Still More YAML</title><link>https://rukulkarni.com/blog/still-more-yaml/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/still-more-yaml/</guid><description>&lt;p>My friend Alexa is a graphic designer. Last week I asked her what percentage of her time she spends on meta-design. She asked me what that meant.&lt;/p></description></item><item><title>An Empirical Bayes Approach to Churn Estimation</title><link>https://rukulkarni.com/blog/empirical-bayes-approach-to-churn/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/empirical-bayes-approach-to-churn/</guid><description>&lt;h2 id="everyone-wants-a-churn-model">Everyone Wants a Churn Model&lt;/h2>
&lt;p>Rarely do I ever get asked to make churn estimates for someone who needs to bring the full power of a proportional hazards model to bear. Besides, the person asking for churn estimates doesn&amp;rsquo;t actually want to know &amp;ldquo;what is the probability someone churns eventually?&amp;rdquo; (Spoiler: it&amp;rsquo;s 1.)&lt;/p></description></item><item><title>Use Exact Tests for Nested Experimental Designs</title><link>https://rukulkarni.com/blog/use-exact-tests-for-nested-experimental-designs/</link><pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/use-exact-tests-for-nested-experimental-designs/</guid><description>&lt;h2 id="a-motivating-example">A Motivating Example&lt;/h2>
&lt;p>We were studying how microglia affect neuronal networks using a standard imaging experiment: 3 mice, 3 coverslips per condition, about 20 neurons measured per coverslip. Our question: Does LPS activation significantly increase PNA signal?&lt;/p></description></item><item><title>Microglia Mediate Contact-Independent Neuronal Network Remodeling via Secreted Neuraminidase-3 Associated with Extracellular Vesicles</title><link>https://rukulkarni.com/publications/microglia-neuraminidase-3-neuronal-network-remodeling/</link><pubDate>Tue, 31 Oct 2023 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/publications/microglia-neuraminidase-3-neuronal-network-remodeling/</guid><description>Microglia secrete the membrane-tethered glycolipid sialidase, neuraminidase-3,
associated with extracellular vesicles affecting the disconnection of neuronal
networks. This novel mechanism provides insight into how neuroinflammation
disrupts brain function at the network level through contact-independent
glycocalyx remodeling.</description></item><item><title>An Insider's Guide to Asking the Right Questions During Your PhD</title><link>https://rukulkarni.com/blog/asking-the-right-questions-during-your-phd/</link><pubDate>Fri, 16 Jun 2023 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/blog/asking-the-right-questions-during-your-phd/</guid><description>&lt;p>A while back, I wrote a short piece about planning scientific projects for New Science. The article explores systematic approaches to identifying impactful research questions and structuring PhD projects for maximum scientific contribution.&lt;/p></description></item><item><title>Analyzing nested experimental designs: A user-friendly resampling method to determine experimental significance</title><link>https://rukulkarni.com/publications/hierarchical-resampling-nested-experimental-designs/</link><pubDate>Mon, 02 May 2022 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/publications/hierarchical-resampling-nested-experimental-designs/</guid><description>Hierarchical resampling is a powerful statistical method for analyzing arbitrarily nested experimental designs. This approach combines bootstrap resampling and permutation to control Type I error rates while preserving utilizing
all available information.</description></item><item><title>Voltage-sensitive rhodol with enhanced two-photon brightness</title><link>https://rukulkarni.com/publications/rhodol-voltage-sensor-two-photon-brightness/</link><pubDate>Mon, 27 Feb 2017 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/publications/rhodol-voltage-sensor-two-photon-brightness/</guid><description>Fast changes in membrane potential drive neuronal physiology, yet observing neuronal
activity noninvasively remains challenging. We report RhodolVoltageFluor-5 (RVF5),
an optical voltage reporter with improved photostability and brightness under both
one- and two-photon illumination. RVF5 enables robust voltage imaging in thick tissue
and brain slices, revealing increased neuronal activity in a mouse model of genetic
epilepsy.</description></item><item><title>Curriculum Vitae</title><link>https://rukulkarni.com/cv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rukulkarni.com/cv/</guid><description>&lt;h1 id="rishikesh-kulkarni">Rishikesh Kulkarni&lt;/h1>
&lt;p>&lt;strong>Vice President, Engineering and Machine Learning/Data Science&lt;/strong>&lt;/p>
&lt;p>📍 Lexington, MA | 📧 &lt;a href="mailto:rishi@kulkarni.science">rishi@kulkarni.science&lt;/a> | 🌐 &lt;a href="https://rukulkarni.com">rukulkarni.com&lt;/a> | 💻 &lt;a href="https://github.com/rishi-kulkarni">github.com/rishi-kulkarni&lt;/a> | 💼 &lt;a href="https://linkedin.com/in/rishi-kulkarni">linkedin.com/in/rishi-kulkarni&lt;/a>&lt;/p></description></item></channel></rss>