Blog
Articles, tutorials, and reflections on software engineering, Django, and career development.
Three lessons from my dad
I was laughing to myself about how my Dad would tell us boys to 'Let them know you're there!' and it turned into a full post. Thanks for the content Dad!
September 24, 2026
Book Report: How To Say A Few Words - Effectively
A review of the book "How To Say A Few Words - Effectively" by David Guy Powers.
September 21, 2026
Share how you use Django with Django Probe
Django Probe is a low effort, high impact way to support the community. By sharing how you use Django, the community can make better decisions.
September 17, 2026
In praise of stepping down
A meandering post into my thoughts about recognition, stepping down from empowered positions and how it factors it into sustainability.
September 07, 2026
Custom Django Migration Operations with Index
You can hack Django's Index class to define custom migration operations on your model.
September 02, 2026
DjangoCon US 2026 recap
A recap of my fantastic DjangoCon US 2026 experience in Chicago. It's still my favorite conference and I will look forward to it every year.
August 31, 2026
Where to Find Third-Party Django Packages
The documentation now includes mentions of third-party packages and community maintained solutions, go check them out!
August 26, 2026
Counting on Multiple Columns with the Django ORM
The Count expression only works on a single column, but you can use Subquery to count on multiple columns!
August 19, 2026
Django Admin Form Injection
A hidden Django admin feature for passing values between windows.
August 12, 2026
What I'm looking forward to at DjangoCon US 2026
DjangoCon US is coming up, and I'm pretty dang excited for several reasons. I hope to see you there!
August 07, 2026
Exists() for Nested QuerySets in Django
There will come a time when your nested QuerySet performs poorly, when that happens, reach for Exists!
August 05, 2026
Speed Up Django Tests with setUpTestData
Speed up your tests by using the setUpTestData method.
July 29, 2026
PyOhio 2026 recap
A recap of my wonderful PyOhio 2026 experience. I absolutely loved the midwest vibes, the people and conference as a whole!
July 28, 2026
Django Form Templates
Form templates allow you to contain your form's customization to just the form, keeping your views nice and clean!
July 22, 2026
When is it worth paying for a mentor?
Not sure if it's the right time to hire a mentor? A few honest questions to help you figure out where you stand.
July 16, 2026
Model._meta.get_fields() in Django
Model._meta.get_fields() lets you walk your related models and build custom cascading deletes.
July 15, 2026
Lunch Talk Series: What if you became an open source software contributor?
A review of Amanda Savluchinske's PyLadiesCon talk on how to start contributing to open source software.
July 13, 2026
Django's resolve() Function
See how Django's resolve function can turn your existing logs into an analytics tool.
July 08, 2026
Book Report: The Manager's Path
A review of the book "The Manager's Path: A Guide for Tech Leaders Navigating Growth & Change" by Camille Fournier.
July 06, 2026
F() Expressions in Django
Learn how F expressions reference model fields in queries, useful for filters, ordering, and race conditions.
July 02, 2026
Lunch Talk Series: Swiss Army Django: Small Footprint ETL
A review of Noah Kantrowitz's DjangoCon US talk on doing more things within Django, avoiding external services.
June 26, 2026
DEFNA's quiet impact on me and the community
An 'Emeritus' honor made me feel very fancy, and got me thinking about DEFNA's lasting impact on DjangoCon US and the Django community.
June 17, 2026
Are you curious about how to contribute to Django?
Want to contribute to Django but don't know where to start? I'm hosting weekly events on the Django Discord to help.
June 09, 2026
Lunch Talk Series: Cutting latency in half: What actually worked—and what didn’t
A review of Timothy McCurrach's DjangoCon US talk on tools and systems to improve performance of your application.
May 29, 2026
Lunch Talk Series: Async Django: The practical guide you've been awaiting for
A review of Carlton Gibson's DjangoCon Europe talk on Django's async landscape back in 2022/2023
May 28, 2026
Using Read the Docs to benefit Django
Projects hosting documentation on Read the Docs can earn money through EthicalAds. And now, you can route that directly to the DSF!
May 24, 2026
Open Source contributions in the age of AI agents | PyCon US open space recap
A recap of a PyCon US 2026 open space, what brought people to the session and what they had to say about contributing in a world where AI is changing how we write software.
May 20, 2026
A self check-in on the mentorship business
Three months in, seven clients, and a few things I'd do differently. What's working, what's challenging, and what's just plain frustrating in my Django mentorship business.
May 12, 2026
Using Django Tasks in production
Have you been wondering if you should use Django Tasks for your next project? See how Djangonaut Space is using it today.
May 06, 2026
Lunch Talk Series: An Opinionated Guide to Modern Django Forms
A review of Josh Thomas' DjangoCon US talk on how to use Django forms to build modern web apps.
May 05, 2026
Deploying the example FastAPI app on Railway
I recently took on a project that involves FastAPI and hosting it on Railway. The official guide wasn't to my liking, so I decided to tweak it and share what I ended up doing here.
April 27, 2026
Book Report: Brand Thinking and Other Noble Pursuits
A review of the book "Brand Thinking and Other Noble Pursuits" by Debbie Millman
April 22, 2026
Who's helping you level up as a Django developer?
I officially started accepting clients for a Django mentoring business. If you, your colleagues, or company are wanting help in being a better Django developer or software engineer, please reach out.
April 21, 2026
Lunch Talk Series: What Would the Django of Data Pipelines Look Like
A review of Lisa Dusseault's DjangoCon US talk on creating the data pipeline framework, Phaser.
April 10, 2026
Contributing to the Django community
Not sure how to get involved in the Django community? This guide covers everything from triaging tickets to organizing conferences, and even how to choose where to start.
April 06, 2026
Lunch Talk Series: How to Enjoy Debugging in Production
A review of Karen Tracey's DjangoCon US talk on better preparing for your next product launch.
April 02, 2026
Lunch Talk Series: Building maintainable Django projects: the difficult teenage years
A review of Alex Henman's DjangoCon US talk on real-world techniques to make maintaining Django applications easier.
March 25, 2026
django-security-label: A third-party package to anonymize data in your models
Django Security Label is a Django third-party package to help you define rules to dynamically anonymize/mask your data for PostgreSQL databases. It makes use of the PostgreSQL Anonymizer extension and supports creating any type of SECURITY LABEL.
March 18, 2026
Give Django your time and money, not your tokens
The Django community wants to collaborate with you, not a facade of you.
March 16, 2026
Book Report: The Road Less Stupid: Advice from the Chairman of the Board
A review of the book "The Road Less Stupid: Advice from the Chairman of the Board" by Keith J. Cunningham.
March 11, 2026
Lunch Talk Series: High Performance Django at Ten: Old Tricks & New Picks
A review of Peter Baumgartner's DjangoCon US talk on revisiting topics from the book "High Performance Django".
March 10, 2026
Finding mentorship without a mentor
One thing I struggled with during my career is a lack of mentorship. I learned how to take kernels of wisdom from a variety of sources, mash them all together to replace a formal mentor.
March 03, 2026
Book Report: Purple Cow: Transform your business by being remarkable
A review of the book "Purple Cow: Transform your business by being remarkable" by Seth Godin
March 02, 2026
Lunch Talk Series: Easy, Breezy, Beautiful... Django Unit Tests
A review of Colleen Dunlap's DjangoCon US talk on introducing unit testing and how to write tests with Django.
March 02, 2026
Lunch Talk Series: Of Clouds and Crows
A review of Lynn Root's PyCon US keynote on the topic of playing more.
February 22, 2026
Learning the violin, a lesson in obstinate rigor
A few thoughts on my experience learning the violin. Be warned, there's some cursing!
February 16, 2026
Lunch Talk Series: Privilege Arbitrage
A review of Kojo Idrissa's PyDX talk on the topic of diversity and inclusion within technical communities.
February 11, 2026
Book Report: Accelerate: the science behind DevOps
A review of the book "Accelerate: the science behind DevOps: building and scaling high performing technology organizations" by Nicole Forsgren, PhD, Jez Humble and Gene Kim
February 09, 2026
A Riskier JsonResponse
Ever wonder why you need to use safe=False to return arrays of JSON object in JsonResponse? Welp, it's because of ECMAScript 4 and you don't have to worry these days.
February 06, 2026
Lunch Talk Series: Django needs you! (to do code review)
A review of Sarah Boyce's DjangoCon Europe 2025 keynote on the topic of code reviews for the Django framework.
February 01, 2026
Preparing for conference sprints
Sprints are a valuable event at conferences, for you, the project, and the broader community. This post helps you prepare to get the most out of them.
January 14, 2026
2025 - My year in review
A look back at my efforts in 2025, the year of try something new.
December 30, 2025
Connecting with Django contributors on Mastodon
It's easier to contribute to open-source if you connect with people. This post dives into where to do that to connect with the Django community.
November 26, 2025
My Overall Success and Well-Being
A friend asked me, what are some habits or other devices, experiences, knowledge, etc. that you feel have contributed to your overall success and well-being?
November 12, 2025
Updated tutorial: A Djangonaut's Debugging Toolkit
I've updated my debugging tutorial. It's a self-guided tutorial to learn about a Djangonaut's debugging toolkit.
November 03, 2025
Malcolm Tredinnick Memorial Prize
I express my gratitude and appreciation for the prize, as well as including some links and quotes from Malcolm's talks and others' memorials to him.
October 13, 2025
Playwright & pytest techniques that bring me joy
Give it a read! Maybe these six techniques will bring you joy too. You can't go wrong with being able to write better tests, faster.
September 17, 2025
Determining what's next
2025 is the year of trying new things. To end the year, I'll be looking for my next adventure.
September 03, 2025
DjangoCon Africa 2025 recap
A recap of my fantastic DjangoCon Africa, UbuCon Africa 2025 experience. It was the first time I travelled to Africa, keynoted a conference and went on a safari.
August 25, 2025
Third-party packages in Django's documentation
A quick post on why we should include references to third-party packages in Django's documentation. Mainly, we've already solved curation and developers are doing to develop!
July 09, 2025
The currency of open-source
In this post, I explore how open-source communities can motivate their membership by utilizing recognition as a currency.
June 11, 2025
Django Commons a year later
Revisiting the state of Django Commons a year after I published a call for help.
May 21, 2025
Towards Better Mentorship: The Small Group Approach
A discussion about how small meetups could help us bridge the mentorship gap and how we can put them into practice today.
May 17, 2025
Reflecting on Djangonaut Space Session 4
How Djangonaut Space has expanded my worldview and created meaningful global connections.
April 30, 2025
Talks I want to see at DjangoCon US 2025
A list of talks that I'm personally interested in seeing at DjangoCon US 2025.
April 02, 2025
Removing Model bases from migration state
When removing multi-table inheritance in Django, you need to remove your Model's bases from the migration's model state. This post goes into detail on when this comes up and how to resolve it.
March 19, 2025
On mentorship programs and internships
I talk about the similarities between internships and contributor mentorship programs. Specifically through my own internship and my perspective of Djangonaut Space.
February 24, 2025
Django 5.2 simple_block_tag with HTMX
Exploring some new hotness from Django 5.2 that makes HTMX integrations more robust.
January 29, 2025
Testing your Python package releases
I discovered that the release process for the Django Debug Toolbar wasn't as robust as I thought.
January 15, 2025
Complex Django filters with Subquery
An overview on how to do complex filtering in Django with Subquery.
January 01, 2025
Getting Started Contributing to Django
A collection of resources to help you get started contributing to Django.
December 25, 2024
Steering Council 6.x Thoughts
Inside are ideas on things the Steering Council I would like to attempt if elected next term.
November 20, 2024
On Open-Source Packagement
Maintaining a package beyond the software. A post that covers a talk I was meant to give at the Black Python Devs Leadership Summit.
November 06, 2024
DSF initiatives I'd like to see
Following Sarah Boyce's lead, here's my list of DSF initiatives I'd like to see for 2024.
October 13, 2024
On the importance of DjangoCons
A deeper dive into why DjangoCons are important to the Django community and how it could be more accurately reflected.
October 04, 2024
Putting Linux Mint on a 2012 MacBook Pro
A quick and fun review of my effort to install a new OS.
October 03, 2024
Revisiting Django Built to Last
A revisit on Community and Reliability within Django
September 26, 2024
Creating rows for django-tables2 with HTMX
An explanation of how to use django-tables2, HTMX, Alpine and Bootstrap to render a table with a form to create new rows.
August 17, 2024
Reducing downtime in Django with django-safemigrate
A thorough description of why downtime occurs during Django deployments and how to reduce it with django-safemigrate.
July 22, 2024
How to assess a software project
An walk-through of how to breakdown a project to understand the size and scope.
June 19, 2024
Django Commons - A home for community-maintained Django packages
A community run GitHub organization to support community-maintained third-party Django packages.
May 22, 2024
An unsettling dream
An emotional dive into the blurred lines of reality and perception.
April 24, 2024
Why generosity turns to rage, and what to do about it | Lunch Talk
A talk by A. Jesse Jiryu Davis and my review
March 29, 2024
Djangonaut Space 2024 Session 1 Midway Review
My recap of my experiences during the first half of Djangonaut Space Session 1.
February 15, 2024
Informal Django Roadmap Ideas for 2024
My ideas for what Django could attempt in 2024 and beyond.
January 25, 2024
Redirecting With POST Requests
An explanation of how to replace 300 redirects with a POST requests.
January 22, 2024
The Fanout Pattern Explained
A brief overview of the fanout pattern that's commonly used in Celery.
December 06, 2023
Debugging CSRF Failed / 403 Forbidden errors in Django
A guided deep dive into Django's source code to understand why your application is failing CSRF validation.
November 04, 2023
Luckiest Dev in the World
A collection of occurrences in which I've benefited from good luck.
October 26, 2023
RegisterFields in Django
An explanation of a Django model field that returns an instance of a class depending on a key.
October 03, 2023
Descriptive Django Admin Search
If you have people using the Django admin without knowing the code you can make their life easier by showing the fields that are actually being searched.
August 18, 2023
Professional Djangonaut skills
A brief description of various skills, experiences and technologies I feel that a professional Djangonaut has.
August 18, 2023
Testing thoughts are up!
I've added some thoughts on testing to my Unsung Developer Thoughts. Check it out!
July 12, 2023
Unsung Development Thoughts
I've added a new section to my site called Unsung Developer Thoughts. Check it out!
June 25, 2023
Django migrations and your database
This is my attempt to help clear up confusion about Django migrations and your database.
June 03, 2023
Send your people to DjangoCon
One Djangonaut's opinion on why companies should send their employees to DjangoCon.
April 21, 2023
Filtering rows every 5 days with the Django ORM
An explanation on how to filter data with a periodic date in Django.
April 05, 2023
Django Built to Last
A reflection on Django and our community in the context of the book 'Built to Last' by Jim Collins and Jerry I. Porras.
March 30, 2023
Plotting the trail for Django Cairn
An explanation of how I break down the work needed for a Django project.
February 28, 2023
Django Cairn - A collection of Django knowledge
An idea to create a place for Django developers find helpful knowledge.
January 26, 2023
Questions to ask a Django company
A discussion of questions to ask a Django company before accepting a job.
December 31, 2022
Django Debugging Tutorial
An overview of the tools and methodologies used to debug Django applications.
November 18, 2022
How to have a great DjangoCon
A brief overview on a first time DjangoCon attendee's experience and recommendations.
October 23, 2022
New Site - Jekyll and Hyde
October 05, 2022
Project - Craigslist Project Finder
April 30, 2014
Project - Google Calendar Integration
April 18, 2014
Project - Drop Ship FTP Integration
April 18, 2014
Better Simple's Project Development Process
April 15, 2014
Project - Daily and Weekly Goals
October 24, 2013
Project - Scraping an image for numbers
September 21, 2013
What's This About?
September 19, 2013