here's the logo

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