Karen Tracey

Karen has been working with Django since late 2006, when she set out to put a web front-end on her crossword puzzle database. She was impressed by the framework and its community and began answering questions on the django-users mailing list and helping out with ticket triage and bug fixes. She became a Django core committer in September 2008 and continues to enjoy helping users, participating in local sprints, and contributing to Django’s development. She is the author of Django 1.1 Testing and Debugging, published by Packt Publishing in April, 2010.

Before getting involved with Django, Karen worked for several years in the computer industry on various software products centered on communications protocols and middleware. She received a PhD in Electrical/Computer Engineering from the University of Notre Dame, where her graduate research focused on distributed operating systems.

Karen is also a crossword puzzle constructor; she has published around 100 puzzles in The New York Times and other national newspapers. Outside of puzzles and Django work Karen enjoys volunteering with Alley Cats and Angels, a local cat rescue organization dedicated to improving the lives and reducing the population of homeless cats in the Triangle area.

2025


Hitting Limits and Noticing Clues in Graphs

Sometimes the limit you hit when dealing with high traffic on a website isn’t the limit that needs to be raised. We encountered this recently on a site we’re helping to maintain and upgrade. The site has been around since the very early days of Django. It was built back in the days when Apache with mod_wsgi (or even mod_python!) was one of the more common Django deployment environments.

The Halting Problem

In a previous post, I wrote about adding read-aloud support to a website we maintain. I mentioned how it was pretty straightforward to do and even easy to get the browser to choose a correct voice that matches the language of the text being spoken. We did, however, hit one puzzling and difficult-to-resolve issue: for large pieces of text to be read aloud, sometimes a browser would simply stop speaking. No errors appeared in the JavaScript console, and querying the speechSynthesis API indicated it was “speaking,” but it wasn’t.

Don't Let Search Take You Down

Twice in the last few months we’ve had to deal with Django production site issues caused by inefficient search queries.

djangocon-cover.png

DjangoCon US 2025: A Celebration of Community, Code and 20 Years of Django

Group photo at DjangoCon US 2025

Celebrating 20 years of Django

DjangoCon US 2025 was a milestone year for the community, as we gathered in Chicago to celebrate 20 years of Django. Attendees from around the world came together to learn about the latest developments, share their work, and strengthen the bonds that make DjangoCon such a special event. Caktus was well-represented once again, with our team contributing as organizers, speakers, and active participants throughout the week.

cover-djangocon-europe-2025-highlights.jpg

DjangoCon Europe 2025 Highlights

Three Cakti recently attended DjangoCon Europe 2025 in Dublin and it was a wonderful experience! It was great to see and chat with various Django community members we usually only see once or twice a year. Beyond that, we were most impressed by the consistently high quality of the talks throughout all three days of the conference. It was a pleasure to listen to so many excellent presentations, including the lightning talks at the end of each day. Here are some of our favorite talks.

cover-cakti-share-their-favorite-tools-for-streamlined-worklows.jpg

Cakti Share Their Favorite Tools For Streamlined Workflows

Let’s jump into it!

At Caktus, we’re always looking for tools that help us streamline our workflows, increase productivity, and make our day-to-day tasks more efficient. Whether you’re managing projects, writing code, or debugging, the right tools can make all the difference. Here are some of our favorite tools that we love using to get the job done!

cover-choosing-a-voice-for-speech-synthesis.jpg

Choosing a Voice for Speech Synthesis

Recently we’ve been adding read-aloud support to a Django website. The tech stack for this site is Django with a bit of jQuery on the front end. The website is used exclusively in the United States, its content is offered in English and Spanish, and the read-aloud support is wanted for forms on the site. So where the site offered, for example:

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.

2015


Beyond PEP 8 by Raymond Hettinger (PyCon 2015 Must-See Talk: 2/6)

Part two of six in our PyCon 2015 Must-See Series, a weekly highlight of talks our staff enjoyed at PyCon.

I think everyone who codes in any language and uses any automated PEP-8 or linter sort of code checker should watch this talk. Unfortunately to go into any detail on what I learned (or really was reminded of) would ruin the effect of actually watching the talk. I’d encourage everyone to watch it. I came away from the talk wanting to figure out a way to incorporate its lesson into our Caktus development practices.