Caktus Blog

Insights and strategies from a team recognized at Python and Django conferences worldwide since 2009. The Caktus Blog is your space for practical how-to’s, real-world solutions, and expert advice on building better user experiences, strengthening quality assurance, solving deep and complex Python/Django problems, and managing projects that deliver impact. Whether you’re refining a UI or prepping for launch, join us to learn, level up, and lead with confidence.

2025


How to fix factory_boy post-generation deprecation warnings

We use factory_boy for bootstrapping test data on many Python and Django projects at Caktus. Recently, we encountered a deprecation warning on an older project that had been using factory_boy for some time:

2024


cover-reflections-djangocon-us-2024-highlights-takeaways-and-community-connections.jpg

Reflections on DjangoCon US 2024: Highlights, Takeaways, and Community Connections

DjangoCon 2024 was a resounding success for the community, with attendees from all over the world gathering to learn about the latest developments in Django and to connect with the Django community. Caktus was well-represented at the conference, with six of our team members attending. In this blog post, we share our experiences at DjangoCon 2024, including our favorite talks, the people we met, and the things we learned. We also offer some tips for future attendees on how to get the most out of DjangoCon.

cover-getting-started-dagster.png

Getting Started with Dagster

Recently, Caktus has been using Tailscale to manage VPN connections between Android tablets and a central server. We wanted to report on the devices connected to the network using the Tailscale API. While we could use tools like Celery to fetch data from the API and load it into a database—given its widespread use in the Django ecosystem—we also wanted to explore other options.

2023


cover-upgrade-postgresql-client-15.jpg

Upgrading PostgreSQL From v11 to v15 in Your Django Application

In the ever-evolving world of data management, staying up-to-date with the latest technologies and best practices is imperative. One crucial aspect of this is ensuring your PostgreSQL version remains current. On November 9, 2023, PostgreSQL 11 reaches end of life (EOL).

cover-migrating-django-project-gpu-convenience-image-circleci.jpg

Migrating a Django Project from a GPU to a Convenience Image on CircleCI

Recently we learned that as of September 30th, 2023 several linux images will be deprecated, including the one we used, ubuntu-2004:202111-02. Therefore, after September 30th, our pipelines would have failed. To avoid this, we switched several machines in our Django project from Ubuntu GPU images to convenience images; This writing details that switch.

cover-addressing-recent-uptick-scam-job-offers-linkedin-related-caktus-group-llc.jpg

Addressing the recent uptick in scam job offers on LinkedIn related to Caktus Group LLC.

James Worthan

Beginning on July 20th, many individuals contacted us asking if a job offer they had received from us was a legitimate offer, wanting to ensure that they were talking with the correct person at the company. The unfortunate truth was that none of the potential applicants seeking information had submitted an application with Caktus Group.

cover-migrate-amazon-eks-add-ons.jpg

Migrate to Amazon EKS Add-ons

Amazon Elastic Kubernetes Service (Amazon EKS) released support for operational cluster add-on software, or Amazon EKS add-ons, around Kubernetes version 1.19 in May 2021. These include:

cover-set-aws-cloudtrail-monitor-kubernetes-application-events-using-ansible.jpg

Set up AWS CloudTrail to Monitor Application Events using Ansible

AWS CloudTrail is a service that enables monitoring and recording of account activities. In this post, we will use CloudTrail to monitor CPU usage and to monitor our nodes. We will use Ansible to automate the setup process and as a means to document our setup (IaC). This post assumes you already have Ansible set up for your project and will not provide setup instructions.

cover-github-submodule-branches-upgrade.jpg

GitHub Submodules: Leveraging Branches to Allow Independent Updates in Parent Applications

Recently I’ve been working with projects that use GitHub submodules. According to GitHub, submodules “allow you to include or embed one or more repositories as a sub-folder inside another repository.” Submodules help us keep code dry when functionality is shared across multiple repositories.

Update an Amazon EKS cluster Kubernetes version to 1.23+

Introduction

Caktus is committed to developing and maintaining high-quality web applications for clients, so we focus on software sustainability. Software sustainability refers to the ability of software to continue to function as expected over time, even as hardware and software environments change. It involves maintaining and updating software to remain reliable, secure, and compatible with new hardware and software technologies. Additionally, from a security perspective, attackers can exploit software vulnerabilities to gain unauthorized access to systems or data. Keeping software up-to-date with the latest security patches helps to reduce the risk of these vulnerabilities being exploited.