Join 📚 Kevin's Highlights

A batch of the best highlights from what Kevin's read, .

[![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94bef8d-433a-4e58-8a29-1a14a50dbda0_800x709.webp)](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94bef8d-433a-4e58-8a29-1a14a50dbda0_800x709.webp)

From Day One to 100: The Seattle Data Guy Journey in One Special Issue

SeattleDataGuy

![](https://userimg-assets.customeriomail.com/images/client-env-99697/1673856105019_Screenshot%202023-01-16%20at%201.31.12%20PM_01GPWSJF2XFFR85V6GX7MMS6AR.png)

The Meditations Newsletter #015

Alex from Sunsama

If you’re mathematically inclined, then you could use the [pigeonhole principle](https://en.wikipedia.org/wiki/Pigeonhole_principle) to describe hash collisions more formally: > Given *m* items and *n* containers, > if *m* > *n*, > then there’s at least one container > with more than one item. In this context, items are a potentially infinite number of values that you feed into the hash function, while containers are their hash values assigned from a finite pool.

Build a Hash Table in Python With TDD

Bartosz Zaczyński

...catch up on these, and many more highlights