About
Writing
Prototyping a PDF Chatbot from Scratch
October 2023
Django Command for FIT files
May 2023
Notes on using PyInstaller, poetry, and pyenv
May 2023
Assorted bits: 2022-12-09
December 2022
This One's For Me
November 2022
Reviving this space
November 2022
Mocking an imported module-level function in Python
June 2021
Using Go and Twilio to monitor my email
December 2020
Deploying static sites with Github Actions
December 2020
newbird: a theme for pelican
November 2020
Scraping pages behind login forms
November 2020
Feature Engineering with Time Gaps
February 2020
Lenny Dykstra, His Strike Zone, & Bayesian Stats
July 2018
Hiring Data Scientists
February 2018
My Experience as a Freelance Data Scientist
January 2017
[Talk] Data-Informed vs Data-Driven
November 2016
Asynchronous Scraping with Python
October 2016
Visualizing the 2015 NL Cy Young Race
November 2015
Cohort Analysis with Python
August 2015
Nonsensical beer reviews via Markov chains
March 2015
Using Travis & GitHub to deploy static sites
March 2015
Web Scraping 201: finding the API
February 2015
[Talk] Translating SQL to pandas
December 2014
Scraping Craigslist for sold out concert tickets
July 2014
Principles of good data analysis
March 2014
Finding the midpoint of film releases
January 2014
3-pointers after offensive rebounds
December 2013
Using pandas on the MovieLens dataset
October 2013
Working with DataFrames
October 2013
Intro to pandas data structures
October 2013
New theme for Pelican
October 2013
Useful Unix commands for data science
July 2013
How random is JavaScript's Math.random()?
June 2013
Join vs Exists vs In (SQL)
June 2013
More web scraping with Python (and a map)
April 2013
Write online about what you love
March 2013
Web Scraping 101 with Python
March 2013
Translating SQL to Pandas, Part 1
January 2013
Hello World
January 2013