Code
I create a lot of software - professionally as a recovering developer, for money as a micro-ISV, but mostly for fun.
I actively work on several open source projects, listed below. I also write regularly on my development process and specific challenges - from obscure XamlParseExceptions to my most popular post ever on liberating Google Fit data.
For many years I published shareware products as Catfood Software and wrote about the shareware industry.
GitHub
My open source projects (also see various interesting gists).
- aurora: Raspberry Pi based smart assistant (more).
- seervo: LLM powered robot with a camera and ultrasonic range finding (more).
- aws-ip-update: a tray application to update your EC2 firewall when your public IP changes (more).
- shadow: command line tool for creating Windows volume shadow copies (more).
- shapefile: ESRI shapefile reader (more).
- photo-sorter: sort and de-dupe photos (more).
- google-fit-to-sheets: export Google Fit data to Google Sheets (more).
- stackhash: Windows client for WinQual (not actively maintained).
- blogger2blogml: convert Blogger Atom to BlogML (more).
- orb: Ambient Orb controller library (more).
- pdfscan: Windows tool to scan to PDF (more).
- folder-insights: where did that disk space go? (more).
Apps Script
I love Google Apps Script which gives you a powerful slice of cloud computing for free. Here is a selection of posts that do useful things with Apps Script:
- Workspace Studio and Read-only Sheets
- Links for February 2026
- Get an email when a new OpenAI model is available via the API
- Adding AI to Todoist with Google Apps Script and OpenAI
- Control LIFX WiFi light bulbs from Google Apps Script
- Using the Todoist API to set a due date on the Alexa integration to-do list (with Apps Script)
- Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
- Using the Azure Monitor REST API from Google Apps Script
- How to backup Google Photos to Google Drive automatically after July 2019 with Apps Script
- Animation of a year of Global Cloud Cover
- Export Google Fit Daily Steps, Weight and Distance to a Google Sheet
- Email Alerts for new Referers in Google Analytics using Apps Script
- Get an email if your site stops being mobile friendly (no longer available)
- Automate Google PageSpeed Insights and Core Web Vitals (CrUX) Logging with Apps Script
- Get an email when your security camera sees something new (Apps Script + Cloud Vision)
Catfood
See Catfood Earth and Catfood WebCamSaver. The latest versions of other products are available here but are no longer supported.
Browse all code posts on I Thought He Came With You.