Tech News Aggregator

Cutting Python Web App Memory Over 31%
[Michael Kennedy Codes] Cutting Python Web App Memory Over 31%

tl;dr; I cut 3.2 GB of memory usage from our Python web apps using five techniques: async workers, import isolation, the Raw+DC database pattern, local imports for heavy libraries, and disk-based cach...

Fire and Forget at Textual
[Michael Kennedy Codes] Fire and Forget at Textual

If you read my Fire and Forget (or Never) about Python and asynchronous programming, you could think it’s a super odd edge case. But a reader/listener, Richard, pointed me at Will McGugan’s article Th...

Replacing Flask with Robyn wasn't worth it
[Michael Kennedy Codes] Replacing Flask with Robyn wasn't worth it

TL;DR; I converted Python Bytes from Quart/Flask to the Rust-backed Robyn framework and benchmarked it with Locust. There was no meaningful speed or memory improvement - and Robyn actually used more ...

Use Chameleon templates in the Robyn web framework
[Michael Kennedy Codes] Use Chameleon templates in the Robyn web framework

TL;DR; Chameleon-robyn is a new Python package I created that brings Chameleon template support to the Robyn web framework. If you prefer Chameleon’s structured, HTML-first approach over Jinja and wan...

Fire and forget (or never) with Python’s asyncio
[Michael Kennedy Codes] Fire and forget (or never) with Python’s asyncio

TL;DR; Python’s asyncio.create_task() can silently garbage collect your fire-and-forget tasks starting in Python 3.12 - they may never run. The fix: store task references in a set and register a done...

What hyper-personal software looks like
[Michael Kennedy Codes] What hyper-personal software looks like

Have you heard that the age of hyper-personal software is upon us? Typically what people mean is that agentic AI allows the creation of simple and small software built by individuals, often not super ...

Raw+DC: The ORM pattern of 2026?
[Michael Kennedy Codes] Raw+DC: The ORM pattern of 2026?

Recently I have started going Raw+DC on my databases. I think I love it. Let me explain. TL;DR; After 25+ years championing ORMs, I’ve switched to raw database queries paired with Python dataclasses. ...

It's not vibe coding: Agentic engineering
[Michael Kennedy Codes] It's not vibe coding: Agentic engineering

I’ve been bewildered by the wide range of experiences that software developers observe when working with AI. This has led many of us to outright reject AI for coding. There are reasons for this varian...

Blocking AI crawlers might be a bad idea
[Michael Kennedy Codes] Blocking AI crawlers might be a bad idea

TL;DR: You can’t stop people from using AI or put it back in the box. Blocking AI crawlers feels satisfying but just makes you invisible to users who rely on AI recommendations. This post covers the ...

DevOps Python Supply Chain Security
[Michael Kennedy Codes] DevOps Python Supply Chain Security

TL;DR: Run pip-audit in an isolated Docker container before installing updated dependencies on your dev machine. Build a reusable pipauditdocker image and alias pip-audit-proj to test requirements.tx...