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
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: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
- Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
- Show: @pythonbytes@fosstodon.org / @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
Hosts & Guests
Information
- Show
- FrequencyUpdated weekly
- Published29 September 2025 at 08:00 UTC
- Length24 min
- Episode451
- RatingClean