This story is a followup to my previous story .

is the process of choosing canonical values from deduplicated data. The results are often called or .

1. Preparation

Survivorship requires a dataset with some kind of group_id field. My demonstrates how to…

This story covers the first step in the deduplication and survivorship process used in . If you’re interested, check out the followup story .

Deduplication is challenging with tabular data. You may have customers signing up for promotions with different email addresses, enrichment data that…

How to develop a better understanding of ASTs by building our own Python linter from scratch

The goal of this story will be to give you a solid understanding of ASTs, a working example of a custom linter in Python, and demystify how code is reasoned about programmatically.


One of the first steps in compiling code is converting it into an AST or

A self-contained, private blockchain implemented within a basic messaging app in SQL Server.


In this post I’m going to demonstrate how a blockchain works using nothing but SQL Server. I’m not suggesting this as an ideal implementation. …

Lookup data never really felt like data to me


Lookup Table: A table with 2 fields at a minimum, a and a text value used in normalization to avoid repeating textual values and referenced by foreign keys in other tables. I’ve also heard them called Reference Tables, and Domain Tables. These tables are not changed during…

Benjamin Campbell

I'm a software architect, data engineer, surfer, and musician who loves problem solving and interesting tech.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store