Blog
To receive updates in your inbox, subscribe to my newsletter.
My Top 10 Favorite Albums for Programming
For me, programming and music go together like peanut butter and, well, music. Or like spaghetti and…music. Basically everything goes well with music.
Postpone now supports bulk importing posts
Since launch, Postpone’s most requested feature has been the ability to bulk import posts from CSV. I’m happy to announce that Postpone version 2020.3.0, released today, now supports this feature.
Postpone's First Major Update
It’s been a busy two weeks since I first announced the launch of my new project Postpone, an app for scheduling Reddit posts for increased views, upvotes, and traffic. I’m happy to announce that today I’m releasing a feature-packed update to Postpone: version 2020.2.0!
Announcing Postpone
Today I’m happy to announce the release of Postpone, an app to schedule Reddit posts for increased views, upvotes, and traffic to your projects.
My Manager README
The following is my Manager README. It outlines how I approach managing, what my values and expectations are, and how I best work with others. The canonical source for my Manager README can be found here.
Automate Python code reviews for free with GitHub Actions, Flake8, and Lintly
Code is read much more often than it is written. As software developers, we have many options for ensuring our code is as readable as possible. In this post I’ll describe how you can use several free open source tools to automate code reviews in your GitHub repositories.
My 2020 OKRs
I learned about OKRs in 2019, and since then have come to appreciate them. They’re simple: come up with one high-level Objective you’d like to accomplish, then come up with separate, measurable Key Results that indicate whether you’ve hit your objective or not.
Favorite Films of 2019
For the last several years I’ve kept track of every film I’ve seen and ranked them. This year was no different.
Launching Lintly: One Month In
It has been about a month since I launched my app Lintly, an automated code linting website for Python, JavaScript, and CSS. I’ve learned a lot in the last 6 months while working on and deploying Lintly. In this article I’m going to recap Lintly’s first month and discuss all that goes into building a production app.
Handling webhooks using Django and ngrok
In this article we’ll go over how to handle webhooks using Django, create a webhook in GitHub, and test the webhook on your local machine using ngrok. But first a brief primer on webhooks.
A Quick 7-Step Guide for Naming Your Next App or Startup
A few weeks ago I released a little web app to the world. The app is called Lintly, and it is a code quality checker that helps keep codebases squeaky clean.
Mistakes I Made Writing a Django App (and How I Fixed Them)
I recently announced the release of a project I’ve been working on for a few months. The project is called Lintly. It is a continuous Python code quality checking tool that lints your code when you push to GitHub. I won’t go into detail about what Lintly is here — you can read about that in the other blog post or go to lintly.com. Instead, I’d like to discuss my experience creating my first proper side project, some of the mistakes that I made writing it, and how I fixed the mistakes.
Django Lazy Tags
I work on a web application called SideKick. SideKick has several dashboards depending on the type of person logged in. The “type of person” could be an employee of SideCars (the company where I work), the owner of a car dealership, or a dealer’s agent. Each dashboard has lots of handy widgets, as dashboards are wont to do. We contain the logic of each widget in a Django template tag so they can easily be resused. Here’s an example of a widget:
Fixtures in Django 1.7+
Django had support for loading initial data into a database before Django 1.7. It was simple: put a file called initial_data.json
in the fixtures
folder of one of your Django apps and it will be loaded into your database each time the application starts up. It looked a little something like this:
Django Birthday
It’s time that I finally start a blog. I’ve put it off for far too long. And after spending a weekend with some of the more important folks in the Django world, I suppose you could say I’ve found a bit of inspiration. Here goes nothing.