Topics covered in this episode:
* PostgreSQL 18 Released*
* Testing is better than DSA (Data Structures and Algorithms)*
* Pyrefly in Cursor/PyCharm/VSCode/etc*
* Playwright & pytest techniques that bring me joy*
Extras
Joke
Watch on YouTube
About the show
Sponsored by us! Support our work through:
Our courses at Talk Python Training
The Complete pytest Course
Patreon Supporters
Connect with the hosts
Michael: @
[email protected] / @mkennedy.codes (bsky)
Brian: @
[email protected] / @brianokken.bsky.social
Show: @
[email protected] / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: PostgreSQL 18 Released
PostgreSQL 18 is out (Sep 25, 2025) with a focus on faster text handling, async I/O, and easier upgrades.
New async I/O subsystem speeds sequential scans, bitmap heap scans, and vacuum by issuing concurrent reads instead of blocking on each request.
Major-version upgrades are smoother: pg_upgrade retains planner stats, adds parallel checks via -jobs, and supports faster cutovers with -swap.
Smarter query performance lands with skip scans on multicolumn B-tree indexes, better OR optimization, incremental-sort merge joins, and parallel GIN index builds.
Dev quality-of-life: virtual generated columns enabled by default, a uuidv7() generator for time-ordered IDs, and RETURNING can expose both OLD and NEW.
Security gets an upgrade with native OAuth 2.0 authentication; MD5 password auth is deprecated and TLS controls expand.
Text operations get a boost via the new PG_UNICODE_FAST collation, faster upper/lower, a casefold() helper, and clearer collation behavior for LIKE/FTS.
Brian #2: Testing is better than DSA (Data Structures and Algorithms)
Ned Batchelder
If you need to grind through DSA problems to get your first job, then of course, do that, but if you want to prepare yourself for a career, and also stand out in job interviews, learn how to write tests.
Testing is a skill you’ll use constantly, will make you stand out in job interviews, and isn’t taught well in school (usually).
Testing code well is not obvious. It’s a puzzle and a problem to solve.
It gives you confidence and helps you write better code.
Applies everywhere, at all levels.
Notes from Brian
Most devs suck at testing, so being good at it helps you stand out very quickly.
Thinking about a system and how to test it often very quickly shines a spotlight on problem areas, parts with not enough specification, and fuzzy requirements. This is a good thing, and bringing up these topics helps you to become a super valuable team member.
High level tests need to be understood by key engineers on a project. Even if tons of the code is AI generated. Even if many of the tests are, the people understanding the requirements and the high level tests are quite valuable.
Michael #3: Pyrefly in Cursor/PyCharm/VSCode/etc
Install the VSCode/Cursor extension or PyCharm plugin, see https://pyrefly.org/en/docs/IDE/
Brian spoke about Pyrefly in #433: Dev in the Arena
I’ve subsequently had the team on Talk Python: #523: Pyrefly: Fast, IDE-friendly typing for Python (podcast version coming in a few weeks, see video for now.)
My experience has been Pyrefly changes the feel of the editor, give it a try. But disable the regular language server extension.
Brian #4: Playwright & pytest techniques that bring me joy
Tim Shilling
“I’ve been working with playwright more often to do end to end tests. As a project grows to do more with HTMX and Alpine in the markup, there’s less unit and integration test coverage and a greater need for end to end tests.”
Tim covers some cool E2E techniques
Open new pages / tabs to be tested
Using a pytest marker to identify playwright tests
Using a pytest marker in place of fixtures
Using page.pause() and Playwright’s debugging tool
Using assert_axe_violations to prevent accessibility regressions
Using page.expect_response() to confirm a background request occurred
From Brian
Again, with more and more lower level code being generated, and many unit tests being generated (shakes head in sadness), there’s an increased need for high level tests.
Don’t forget API tests, obviously, but if there’s a web interface, it’s gotta be tested.
Especially if the primary user experience is the web interface, building your Playwright testing chops helps you stand out and let’s you test a whole lot of your system with not very many tests.
Extras
Brian:
Big O - By Sam Who
Python 3.14.0rc3 has been available since Sept 18.
Python 3.14.0 final scheduled for Oct 7
Django 6.0 alpha 1 released
Django 6.0 final scheduled for Dec 3
Python Test Static hosting update
Joke: Always be backing up