PyCon AU 2023
2023-08-18..2023-08-22
Adelaide, Australia
PyCon AU ·
[PyCon AU 2010, PyCon AU 2015 OpenStack Miniconf, PyCon AU 2016, PyCon AU 2016 Science and Data Miniconf, PyCon AU 2017, PyCon AU 2019, PyCon AU 2023, PyCon AU 2024, PyCon AU 2025, PyCon AU 2026]
| title | author | length |
|---|---|---|
| Specialist Tracks Combined Opening Address | Pedro Junqueira, Jack Skinner, Nicky Ringland, Katie McLaughlin, Lilly Ryan | 19m |
Opening plenary in Hall C starts with venue rules, mask policy and a visible safety team (red badges) then quickly sketches four concrete specialist tracks: a… | ||
| Learning FastAPI on hard-mode: getting out lots of the hardest (aw yeah, geo) data fast | Elena Williams | 29m |
Production stack: FastAPI, Pydantic v2, pyproj and shapely serving the G-NAF dataset (about 15 million records split across 203 files) with daily refreshes… | ||
| Diagnostics - Seeing Inside Your Application Without Logging | Jeremy Rotstein | 32m |
Claims a lightweight, on‑demand diagnostics layer embedded in a Python app that replies with human‑readable text over a simple UDP protocol; a 40‑line client… | ||
| Open-Source Communities and Ten Years of MicroPython | Damien George | 34m |
MicroPython begins as a 2013 experiment and now delivers a ten year track record: a complete Python reimplementation that runs on tiny microcontrollers and is… | ||
| Roll for Initiative: how to make the world of AI a more ethical place | J. Rosenbaum | 32m |
Claims concrete fixes and evidence not platitudes: a project demonstrates visibly de-biasing a GAN, chatGPT is used to generate an insult roll table, and… | ||
| Using Python to stream media using GStreamer for WebRTC and RTSP applications | Andy Gelme | 28m |
Python plus GStreamer actually constructs pipelines that pull RTSP camera RTP, demux and decode to raw buffers via appsink/appsrc, let Python run ML (example… | ||
| The Complexity of Simplicity | Christopher Neugebauer | 29m |
Examines concrete claims: shows the print implementation in CPython and how C API complexity hides behind a simple API, compares urllib2 vs requests with the… | ||
| Gender Tapestry - New ways of looking at gender classification | J. Rosenbaum | 27m |
Claim: gender maps to a 3D color space rather than a linear spectrum. Implementation: a Python Flask web app loads a TensorFlow multi‑label classifier trained… | ||
| Packaging for serverless: effortless? Doubtless! | Huon Wilson | 28m |
Claim: switching from pip install inside Docker to the Pants build system plus PEX cuts Python AWS Lambda packaging from painful to fast. Using the old script… | ||
| Using Python and 19,200 bits/second serial links to manage antennae for the Square Kilometre Array r | Andrew B. Williams | 32m |
Python code implements monitor and control for field power-and-optical boxes that service 256-antenna stations feeding a 7.2 Terabits/second backend, using… | ||
| Proactive Ops: Event Driven IT Operations | Dave Hall | 29m |
Claims that ops can catch small failures before they become incidents by turning existing hooks and audits into events and automated reactions, and… | ||
| The Hidden Unity of APIs and Event Streams | Saul Caganoff | 28m |
Claim: APIs and event streams are two expressions of the same state model and work best together. Uses a rideshare example and Uber webhooks (now deprecated)… | ||
| Lightning Talks (Saturday) | Christopher Neugebauer | 59m |
Eleven rapid segments give concrete takeaways: a dependency talk shows graphs, points to daps.dev free API and depth counts for Log4j-like fixes; a demo runs… | ||
| Building a biological database with Python | Alan Rubin | 29m |
A community-driven database for high-throughput protein variant experiments stores sequence-to-function scores, uses Postgres with extensive JSON fields, and… | ||
| Web Development with Flask | Thea Koutsoukis | 31m |
Provides a ready Flask template that starts with a minimal app layout and a runnable command (flask run) and an init step (flask init.db), uses raw SQL against… | ||
| Beat the rush! Designing effective load tests for your web application | Anthony Shaw | 30m |
Load tests focus on specifics: use Locust HTTP users or a playwright user to drive realistic browser or HTTP traffic, seed test data with Nemesis not two… | ||
| Analysing and sharing genetic data with Python | David Lawrence | 29m |
Python glues C and Rust tools into a production system: a Django app called VariantGrid ingests VCFs from sequencers that produce 16–20 billion reads in ~44… | ||
| Rust for the Python dev | Owen Lamont | 34m |
Many popular Python tools are now Ruff fast linter/formatter, pydantic v2 core in Rust, and data libraries like Polars that handle out‑of‑core frames… | ||
| Learning to Sketch with Differentiable Rendering | Felipe Tavares | 28m |
Differentiable rendering trains a rasterizer to map curve control points to images and optimises those control points directly, implemented in PyTorch with… | ||
| How to build a cross-platform graphical user interface with Python | Russell Keith-Magee | 34m |
Claim: Python can produce truly native cross‑platform GUIs using the BeeWare suite, notably toga is pure Python, with native widgets on macOS, Windows, Linux… | ||
| An introduction to Causal Inference with Python – making accurate estimates of cause and effect from | David Rawlinson | 24m |
Demonstrates how causal models and DoWhy estimate interventions: on the Lalonde dataset an estimated treatment effect is $1,629 increase in wages; a placebo… | ||
| Present like a pro! | Katie McLaughlin | 30m |
Clear, actionable rules: an 8-step plan to go from idea to timed script and slides, aim for one slide per minute and time with a stopwatch, keep text >20pt and… | ||
| Choosing Wisely - How to Pick the Right Third Party Packages for your Project | Evan Brumley | 31m |
Example-driven checklist: a mistyped dependency becomes a real compromise — on 2023-02-09 about 400+ malicious packages appear on PyPI and a misspelt… | ||
| Multi-tenancy strategies with Django+PostgreSQL | Levi Cameron | 30m |
Three concrete strategies compete: separate app+db per tenant (strong isolation, expensive, painful at scale); schema-per-tenant or multiple DBs routed by… | ||
| Zero or Hero? - Assessing Pygame Zero in the classroom | Amanda J Hogan | 23m |
Classroom test compares Pygame Zero to raw Pygame by rebuilding a simple Flappy‑Brick clone and reports what actually changes: Pygame Zero uses an implicit… | ||
| WASM in your wheel? | Jim Mussared | 30m |
Uses WebAssembly to avoid building many platform wheels by shipping a .wasm alongside Python code: mpy-cross compiled to .wasm and loaded with runtimes… | ||
| A simple way to validate and monitor the performance of your ML Applications. | Niño R. Eclarin | 35m |
A concrete recipe for keeping models healthy: run a small validation dataset anchored to model inside the app (example target 100 predictions in 10 seconds… | ||
| An Introduction to PySpark | Alex Ware | 24m |
Compares pandas and PySpark on Brisbane library checkout logs, shows code that groups checkouts and uses window functions to group checkouts within five… | ||
| The Python 3D Visualisation Landscape | Owen Lamont | 31m |
A practical survey of Python 3D tools that points to what actually works: OpenGL underpins many libraries but Vulkan/WebGL are the modern targets; try PyVista… | ||
| Collaborative Programming in the Classroom: Approaches and Insights | Stephen Tierney, Alison Wong | 31m |
Claims that collaborative code workspaces remove the one-keyboard barrier and enable real-time editing of single scripts, multi-file projects and Jupyter… | ||
| Assurance of Learning Through Testing | Stephen Tierney, Alison Wong | 29m |
Claim: automated marking can detect shortcuts and ensure learning by running students' programs, not just diffing outputs. Uses p expect to spawn and feed… | ||
| Look Backwards to Go Forwards: It's Retro Time | Peter Hall | 29m |
Practical recipe: prepare a room or digital board, 90-minute retro every six weeks, brainstorm on sticky notes, vote to pick four topics, discuss each, then… | ||
| Taming the Duck with Type Hints | Brian Danilko | 31m |
Type hints are a noninvasive way to get compiler-like checks: static tools like mypy read annotations, use the typeshed stubs, and flag wrong operations… | ||
| How Python is supporting Australia’s energy transition to 100% renewable | Peter Aych, Josh James | 31m |
Claims the grid can operate at 100% variable renewable by 2025 and shows how that is engineered: Python systems model flows (AEMO modeling platform), ingest… | ||
| Six QA Tools that will make your Python code better | Peter Aych | 29m |
Case study applies six specific tools — Black iSort PyLint MyPy PyTest Coverage — to real AEMO code, showing concrete fixes: string-sorted numbers… | ||
| Lightning Talks (Sunday) | Christopher Neugebauer | 01h 06m |
Fourteen five‑minute segments packed into one video: concrete takeaways include UUIDv7 recommended (overview of v1/v4/v5/v6/v7/v8 and why orderable timestamps… | ||
| Thar Be Dragons - Ethical, Legal, and Policy Challenges when Measuring Open Source | Amanda Casari | 23m |
Concrete claims and tools cut through high-level warnings: a pilot called Project Ocean attempts an ecosystems-scale map, researchers report an IRB gap for… | ||
| FORKS? POOLS? ASYNC? Solving Wordle with Python’s concurrency tools | Christopher Neugebauer | 30m |
Builds a Python Wordle solver/statistics bot and measures real performance: uses concurrent.futures with thread pools (no GIL win), process pool speedup ~4.8x… | ||
| h5pydantic, from a Synchrotron through Python to HDF5 | Clinton Roy | 31m |
h5pydantic maps Pydantic models to HDF5 so scientists declare group/dataset/attribute schemas in Python and then dump and load .hdf5 files without writing… | ||
| A Recent History of Python Through Stack Overflow Questions and Answers | Sam Hames | 31m |
A concrete claim: an open source package builds interactive text analytics over the full Stack Overflow dump (95 GB XML) by clustering words rather than… | ||
| Developing Culture To Write Reliable And Performant Services At Scale | Harshit Prasad | 28m |
Shows how observability is implemented for Python services at scale: JSON-structured logs with module/timestamp/level, per-request trace IDs that cut MTTR… | ||
| Beatmaking with Python and FoxDot | Sangarshanan | 28m |
Shows how to make live coded beats with Python using FoxDot and SuperCollider and actually builds working patterns on stage the demo installs SuperCollider and… | ||
| Using Django 4.2's StreamingHttpResponse and HTMX SSE to provide real time notifications | Dan Sloan | 26m |
Claims that Django 4.2’s async iterator streaming via StreamingHttpResponse plus HTMX SSE replaces Channels for simple real‑time UI, reducing the server side… | ||
| The Terrifying Longevity of Ideas | Benno Rice | 48m |
Argues that what matters are concrete locks: C encodes PDP assumptions (in-order execution, flat memory) so CPUs spend decades masking that illusion and… | ||
| Refactoring for fun and profit | Evan Kohilas | 35m |
Refactors a messy Python side project that computes and annotates minimum paths for a train game into small classes and clear entry points, using Black for… | ||
| Student Showcase | Amanda J Hogan, Nicky Ringland, Arjen Lentz | 01h 50m |
Ten-minute student projects show concrete claims tools and outcomes: a Flask web app that uses Flask and Postgres to pull Spotify data and build playlists; a… | ||
| Are we singing sillier? | Amanda J Hogan | 30m |
(Amanda J Hogan) Everyone has heard it from someone... "Music was better in my day". As a parent of teenagers, I'm pretty sure I've even said it. But who's… | ||
| Testing asynchronous applications with FastAPI and pytest | Jeny Sadadia | 29m |
Shows concrete test code: unit tests use FastAPI test client with async mocks to avoid startup pubsub calls, end‑to‑end tests use pytest + httpx async client… | ||
| Data Contracts: Consensus as Code | Ryan Collingwood | 32m |
Argues that data contracts as code turn fuzzy agreements into enforceable expectations by generating models, tests and infrastructure from a single source of… | ||
| Git yourself a leg up for student projects | Renee Noble | 32m |
Argues that students need Git and that GitHub offers more than backups: uses Codespaces for a browser dev box, Copilot to scaffold a Flask flash‑card app and… | ||
| Swiss Army Django: Small Footprint ETL | Noah Kantrowitz | 29m |
Case study of a single-app ETL that scrapes nested game data, enriches it, and exposes it via GraphQL and Discord; code uses async Django with background loops… | ||
| HttpRequest: An unsung hero of Django | Curtis Maloney | 29m |
Django’s HttpRequest actually parses and normalizes headers (case and hyphen/underscore quirks), parses Content-Type and Accept, exposes request.body with… | ||
| Building health software on decentralised health data using Personal Online Datastores | Jess Moore, Anushka Vidanage | 29m |
A working Solid Health System is already built with Gurriny Yealamucka and ANU: three cross‑platform apps (patient, health‑worker, analytics) written in… | ||
| Digital Rights / Digital Wrongs: Tech Policy and Human Rights in Australia | Samantha Floreani | 42m |
Stories show concrete harms: an unencrypted chat handed to police leads to imprisonment, communities vanish when platforms delete accounts, renters lose homes… | ||
| From Data to Decision: Monitoring and Improving Water Networks using AI/ML | Ram Balachandran | 26m |
Claims concrete results: Python + AWS prototypes using Streamlit and FastAPI move from prototype to deployed MLflow models; anomaly detection (including a… | ||
| In the Long Run We're All Dead: An Economist's Guide to Tech Debt | Dana Scheider | 29m |
Argues that tech debt arises from macroeconomic pressure rather than individual incompetence and models it using post‑Keynesian ideas — notably the Minsky… | ||
| International cooperation within the Python community | Débora Azevedo | 30m |
Lists of actions and real outcomes: PSF grants distributed about US$117,000 to ~129 grants across 41 countries, PyLadies Brazil runs 30+ active chapters… | ||
| Conference Opening (Saturday) | Daisy Leigh Brenecki | 28m |
Welcome, land acknowledgment with a didgeridoo demonstration and a reminder that more than 250 surviving Aboriginal languages exist; masks are requested except… | ||
| (Probably) a retrospective for Secateur | Tom Eastman | 32m |
A small Django web app grows to 70,000 users and makes four billion Twitter API calls before free API access dies, costing about $6,000 over its life. Backend… | ||
| OpenDataCube - Petabyte Scale Satellite Imagery Processing in Python | Tishampati Dhar | 31m |
A working claim: a single Python API call — datacube.load() single API — lets users query and lazily process continental petabytes of satellite imagery indexed… | ||
| Generating Python bindings to C++ libraries | David Vo | 29m |
Generates Python bindings by auto‑producing pybind11 code from C++ headers using a Python C++ parser, YAML + Jinja2 templates and a bespoke robotpy-build… | ||
| You can't do that in MicroPython! | Matt Trentini | 27m |
Claims concrete enough to act on: expect about 20–30% faster delivery versus C/C++ in real projects, with only small C hotspots needed; typical full… | ||
| Unpacking the geospatial engineering toolbox – an overview of data science techniques for spatial da | Christine Seeliger, Long Dang | 31m |
Shows concrete workflows and working outputs: uses GeoPandas, Shapely, QGIS and NetworkX to read, intersect and buffer geometries, extract building footprints… | ||
| Code Review of Senior Python Engineers | Keith Yang | 25m |
Six concrete takeaways: insist on 95–100% coverage for key projects so reviewers can rely on tests; enforce CI/CD with GitHub Actions or Jenkins to catch… | ||
| What can't WebAssembly do? | Katie Bell | 29m |
Claim: WebAssembly runs CPython both in-browser and standalone, using Emscripten to emit python.wasm + wrapper JS for in-browser demos and pyodide to package… | ||
| How to build a unit testing library from scratch? | Bhavani Ravi | 30m |
Builds a minimal testing library in Python that reproduces pytest features: a test runner that discovers and calls test functions with try/except and simple… | ||
| Robyn: A fast async Python web framework with a Rust runtime | Sanskar Jethi | 32m |
Robyn is a Python web framework that embeds a Rust runtime and a multi threaded Tokio backend so Python routes get converted to Rust objects and dispatch… | ||
| All the things I learnt as a junior developer (so you don't have to) | Terence Huynh | 26m |
Four concrete takeaways: watch for burnout and use a mental health day before it breaks you; demand a two-way interview that shows a growth plan and… | ||
| JavaScript classes for the Python Programmer | Curtis Maloney | 24m |
Compares JavaScript and Python class semantics with concrete examples: this vs self and prototype lookup instead of type lookup, constructor vs initializer… | ||
| Real-time Map Imagery Manipulation with Python, Slippy Maps, Flask, and Pillow: Building Interactive | Oliver Holmes | 30m |
A pipeline converts large imagery into slippy tiles with GDAL, stores them in S3 via boto3, and serves them through a Flask endpoint that modifies tiles… | ||
| The Power of Edge Computing: What it is and Why it Matters? | Swastika Yadav | 17m |
Claims that moving processing from distant cloud regions to nearby edge data centers cuts round‑trip time dramatically, shown with latency graphs comparing US… | ||
| Faster, Faster! Improving regex performance with atomic grouping, possessive quantifiers and more! | Peter Lovett | 30m |
Benchmarks run on Python 3.11 (CPython 3.11.4) on Windows 10 and timed with an IPython timer show concrete fixes: compile patterns (module cache actually… | ||
| Wrapping up the Cruft - Making Wrappers to Hide Complexity | Jack Reichelt | 36m |
Argues that hiding low level cruft with small libraries gets students to the core logic faster and more of them enjoy coding the results back the claim is… | ||
| How To Have An Operational Incident (a crash course) | Courtney Eckhardt | 30m |
Minimum viable incident response is concrete: automatic monitoring that pages a single point of contact (often a Slack slash command), a dispatcher-like role… | ||
| Building 3D Trusted Data Pipelines With Dagster, Dbt, and Duckdb | Danh Phan | 31m |
A concrete ELT demo uses Dagster, Dbt, Duckdb to build and validate pipelines: Python ingestion loads three raw tables (payment, order, customer) into DuckDB… | ||
| N+1 Problem in Django Rest Framework | Syed Muhammad Dawoud Sheraz Ali | 29m |
Shows that N+1 appears in Django Rest Framework both in view querysets and serializer fields and that using select_related and prefetch_related actually fixes… | ||
| Blender and 3D Art anyone can make using Python | Sam Bishop | 29m |
Blender ships a full Python install with numpy and a bundled Blender API, supports pip-installed packages, and can run headless via the command line for batch… | ||
| One person's Ansible is another's pyinfra. | Daryl Tester | 32m |
Shows a concrete conversion: converted Ansible playbook to pyinfra by rewriting inventory and deploy scripts as executable Python, keeping SSH sessions open… | ||
| Maths Whimsy with Python | David Colls | 33m |
Prototypes use numpy and matplotlib to turn whimsy into testable claims: a gridded gravity model for a square planet shows the gravity vector pointing into… | ||
| CountESS: Count-based Experiment Scoring and Statistics | Nick Moore | 34m |
A visual Python toolkit called CountESS implements configurable map/reduce pipelines with a Tkinter GUI and CLI, plugin entry points, and a minimap2 wrapper… | ||
| Closing Address (Sunday) | Daisy Leigh Brenecki, Lilly Ryan | 34m |
Lists exact outcomes and logistics: a reunion conference with 447 attendees (391 in person, 56 online), 114 presentations including nine student talks and 24… | ||
| PyCon Fair: PyCon Australia 2023 | Nick Moore | 06m |
A small preview of PyCon Fair supplies each stall with an A0 poster and a trestle table and showcases concrete projects: microcontrollers running MicroPython… | ||
| nothing matches | ||