Bayesian models are great. They can naturally propagate uncertainty to single predictions, incorporating domain knowledge is easy and you can build awesome hierarchical models with partial pooling. The goal of these Bayesian models is to calculate the posterior. Usually this is done with sampling techniques, for example by calling ‘pm.sample()’ in PyMC3. But what magic is done under the hood here? During this talk we will implement metropolis sampling and open up this black box. This will help you debug your Bayesian models, and hopefully persuade you to use Bayesian methods more often in your day to day work.