Blog
I write about the tech I'm building, the coffee I'm drinking, and the photos I take along the way. Sometimes it's code, sometimes it's travel, and sometimes it's just whatever's been on my mind.
My local news site redirects you to a third party website for ad blockers
A local news broadcaster redirects users with ad blockers to a third-party error page with oddly personal messaging.
January 20, 2026Coffee Journal: A Lookback at My Year of Brewing Chemex & Espressos 2024-2025
Introducing my 2024-2025 coffee journal of 26 bags of coffee brewed at home with a Chemex and Barista Pro espresso machine, documented in a Field Notes notebook.
January 09, 2026Merging NYC Coffee + MN Coffee Phase 1: Database
The first phase of combining NYC Coffee and MN Coffee into a unified platform, starting with database consolidation and schema design.
January 06, 2026How to Configure CI/CD to Deploy a .Net App to Windows IIS using GitHub Actions
Learn how to set up GitHub Actions with a self-hosted runner to automatically deploy your .NET website to a Windows IIS server when code is pushed to main.
January 03, 2026Gogojo from Verve
An Ethiopian washed heirloom that finally came out smooth after a week of dialing in—used ChatGPT for help and cracked the Ethiopian code.
December 22, 2025NYC Coffee - A New York City Coffee Map
After launching MN Coffee I decided to create the New York City version of the app to display all the coffee shops around New York City.
December 21, 2025Snow Emergency from Dogwood
Used to be better at the Askov Finlayson café—couldn't capture that magic brewing at home, still a little bitter.
December 15, 2025Why I created a bulk product uploader for Printify
Manually creating Printify products was taking too long to do manually. I created a Python application to programatically create products and upload them to Printify.
December 08, 2025Super Nova from Silver Bird
A hyped Minneapolis roaster that didn't live up to what I thought it was going to be. Dark roast, bitter notes, and an underwhelming shop experience.
November 08, 2025That email address contains five or more consonants in a row.
I'm starting a newsletter for this blog and heard good things about Buttondown. But then I got this error and couldn't sign up.
November 04, 2025Be A T-Shaped Developer
Modern development jobs increasingly require knowledge across multiple domains. Here's why becoming a T-shaped developer with deep expertise in one area, broad knowledge across others is crucial.
October 29, 2025My Facebook ads stopped working and crashed in September
My Facebook ad traffic dropped from 15K to nearly zero sessions in September. Here's what happened, what I learned, and how I'm building more resilient traffic sources.
October 28, 2025Finca La Guadalupe from Minimum Wage Tim
A Honduran with huge beans that made an okay cup—solid but unremarkable, not blow-you-away territory.
October 20, 2025Marketing Feels Like Hell for Developers
Marketing feels unnatural to developers because it’s built on ambiguity, not precision. Here’s how to approach it like an engineer and make it work for you.
October 13, 2025My /feeds Page: Building Community on the Indie Web
Why I created a /feeds page, what it is, and how it helps foster community in the indie web.
October 09, 2025Find Coffee Anywhere You Are In Minnesota
An overview of the web application that I built to display all the coffee shops in Minnesota. Complete with open hours, directions and Google AI summaries.
October 06, 2025Is September Getting Hotter in Minneapolis? A Data Visualization Look
A Highcharts data visualization analysis of September temperatures in Minneapolis, comparing historical highs and monthly averages to see if the city’s falls are warming.
October 03, 2025Nicaragua from Minimum Wage Tim
Solid, consistent South American beans—sometimes the best compliment is reliability without surprises.
October 01, 2025Infusu from Crema
A Southern Italy dark roast that was too dark for pour over but made excellent lattes and cortados with full rich chocolatey notes.
September 30, 2025