{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://pretalx.com/pyconuk-2025/schedule/", "version": "0.24", "base_url": "https://pretalx.com", "conference": {"acronym": "pyconuk-2025", "title": "PyCon UK 2025", "start": "2025-09-19", "end": "2025-09-22", "daysCount": 4, "timeslot_duration": "00:05", "time_zone_name": "Europe/London", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "Main stage", "slug": "4402-main-stage", "guid": "b87513ee-2923-5905-abff-942da8dd882f", "description": null, "capacity": 285}, {"name": "Space 2", "slug": "4404-space-2", "guid": "e400b669-5265-58bb-ad28-dfe5605a70e5", "description": "Lecture room", "capacity": 60}, {"name": "Space 3", "slug": "4403-space-3", "guid": "3d929adb-7dbc-533f-b496-05457fd1a2ef", "description": "Classroom-style, tables facing the front. Reserved Saturday for Django Girls", "capacity": 50}, {"name": "Space 4", "slug": "4405-space-4", "guid": "85b19a87-2f2d-5003-a2ef-07c1bfecff3e", "description": "Classroom-style, tables facing the front. Reserved Saturday for Young Coders", "capacity": 20}], "tracks": [{"name": "Keynote", "slug": "5504-keynote", "color": "#FF00FF"}, {"name": "Young Coders", "slug": "5502-young-coders", "color": "#FF0000"}, {"name": "Social", "slug": "5503-social", "color": "#0000FF"}, {"name": "Classroom", "slug": "5505-classroom", "color": "#743F7D"}, {"name": "Lecture", "slug": "5506-lecture", "color": "#5FA90A"}, {"name": "Django Girls", "slug": "5507-django-girls", "color": "#EA8603"}, {"name": "Round table", "slug": "5508-round-table", "color": "#08B1C7"}], "days": [{"index": 1, "date": "2025-09-19", "day_start": "2025-09-19T04:00:00+01:00", "day_end": "2025-09-20T03:59:00+01:00", "rooms": {"Main stage": [{"guid": "bc0dbbb9-d53c-5c59-88d9-a24ba7580ad9", "code": "YBC7Y7", "id": 74362, "logo": null, "date": "2025-09-19T11:00:00+01:00", "start": "11:00", "duration": "00:30", "room": "Main stage", "slug": "pyconuk-2025-74362-welcome-friday", "url": "https://pretalx.com/pyconuk-2025/talk/YBC7Y7/", "title": "Welcome Friday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Welcome Friday", "description": "Welcome Friday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/YBC7Y7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/YBC7Y7/", "attachments": []}, {"guid": "d73ccea3-22dd-5948-9a20-55e1997ed498", "code": "QHSGAY", "id": 75424, "logo": null, "date": "2025-09-19T11:30:00+01:00", "start": "11:30", "duration": "01:00", "room": "Main stage", "slug": "pyconuk-2025-75424-python-s-true-superpower", "url": "https://pretalx.com/pyconuk-2025/talk/QHSGAY/", "title": "Python\u2019s True Superpower", "subtitle": "", "track": "Keynote", "type": "Keynote", "language": "en", "abstract": "Python appears to be everywhere nowadays! How did it happen, that a language that almost died in the Python 2 to 3 process is now the default choice when people talk about programming? There must be some secret superpower and I think I found it!", "description": "Python appears to be everywhere nowadays! How did it happen, that a language that almost died in the Python 2 to 3 process is now the _lingua franca_ a default choice when people talk about programming? There must be some secret superpower and I think I found it!", "recording_license": "", "do_not_record": false, "persons": [{"code": "8NBKQT", "name": "Hynek Schlawack", "avatar": "https://pretalx.com/media/avatars/8NBKQT_ECoOPkO.webp", "biography": "Hynek Schlawack is a lead infrastructure and software engineer from Berlin/Germany, PSF fellow, blogger, YouTuber, and maintainer of *way* too many open source projects.\r\n\r\nHe\u2019s been using Python since 2009 and has seen it **all**.", "public_name": "Hynek Schlawack", "guid": "c0de7d0e-0366-5450-85f0-cd1e824414e9", "url": "https://pretalx.com/pyconuk-2025/speaker/8NBKQT/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/QHSGAY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/QHSGAY/", "attachments": []}, {"guid": "092b74cd-4532-58e6-bf76-71e0cbd8a02b", "code": "J9VBTY", "id": 66608, "logo": null, "date": "2025-09-19T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-66608-beyond-lists-why-other-collection-types-are-often-better", "url": "https://pretalx.com/pyconuk-2025/talk/J9VBTY/", "title": "Beyond lists: why other collection types are often better", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Lists are everywhere in Python. But are they always the best tool for the job? Find out why tuples, sets and frozensets are often a better choice when working with collections.", "description": "When writing Python, we often to need to work with a collection of objects. And so often we reach for the humble list. But lists, while they can get the job done, are often not the best choice.\r\n\r\nDo you really need that collection to change? If you don't, picking a tuple instead will bring unexpected benefits. Or is the order of the elements important? If not, then using a set will open up a world of new possibilities. And if your set doesn't need to change, then consider a frozenset - Python's most underrated built-in data structure.\r\n\r\nEquipped with these data structures, we'll close by looking at the subtleties of how to type-annotate functions, and why on earth it is better to use `Set` (with a capital 'S') for an argument type, but `set` for the return type.\r\n\r\nIt's time to go beyond lists!", "recording_license": "", "do_not_record": false, "persons": [{"code": "QCTWRT", "name": "David Seddon", "avatar": "https://pretalx.com/media/avatars/QCTWRT_YpQ2pI4.webp", "biography": "David Seddon works in London at Kraken Tech, the technology tentacle of Octopus Energy. There, he works on a very large Django monolith consisting of tens of thousands of Python modules. He\u2019s also a member of the Django Software Foundation.\r\n\r\nHe loves thinking about and teaching software design, in particular domain modelling and application architecture.\r\n\r\nHe is the creator of Import Linter, an open-source tool to check your Python project is following a set of architectural rules you define.\r\n\r\nHe blogs at https://seddonym.me.", "public_name": "David Seddon", "guid": "8c6838c8-a00f-50b4-88e2-1b1e636cedca", "url": "https://pretalx.com/pyconuk-2025/speaker/QCTWRT/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/J9VBTY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/J9VBTY/", "attachments": []}, {"guid": "57b35105-0019-537b-9e67-96a83cccdf80", "code": "7ANAYC", "id": 70398, "logo": null, "date": "2025-09-19T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70398-more-spoons-please-coping-with-long-covid-as-a-programmer", "url": "https://pretalx.com/pyconuk-2025/talk/7ANAYC/", "title": "More Spoons Please: Coping With Long Covid As A Programmer", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Last year, Covid ate my brain. This talk is a distillation of some of the things that have helped me so far as I gradually reassembled myself and got back to work again.", "description": "As I discovered to my cost last summer, Covid never really went away. I'd caught it before but this time was different. Instead of a swift recovery I faced months of grinding exhaustion and brain fog so severe that my life became very limited. I began to wonder if I would ever be able to use my mind in the same way again. Ultimately I was one of the lucky ones and made a nearly full recovery but what happened along the way forever shaped how I approach my health and work.\r\n\r\nDuring this talk I'll dig into some of the latest studies about Covid and its lasting effects on our bodies and brains. I'll explain what helped me as I gradually expanded the envelope of what I could do as I recovered. I'll also look at common pitfalls and some surprising statistics about where new Long Covid cases are coming from.\r\n\r\nI hope this talk could help people who've been through a similar experience to feel less alone. It may also be relevant if you work alongside or manage someone with Long Covid - some of the strategies that I used were only possible because of my wonderful manager. Unfortunately there are still too many people entering this world of chronic illness every year. I want to reach out to them with some solidarity and science.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QSXDHM", "name": "Hannah Hazi", "avatar": null, "biography": "I'm a software engineer, video editor, developer advocate and General Tech Person based in Leeds. In my spare time I love playing board-games, eating cheesecake and automating things around the house with my Raspberry Pi.", "public_name": "Hannah Hazi", "guid": "e2e3cc74-f329-5026-8edd-7fb66bee0a89", "url": "https://pretalx.com/pyconuk-2025/speaker/QSXDHM/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/7ANAYC/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/7ANAYC/", "attachments": []}, {"guid": "faaa9d0b-714c-5558-b1ed-37a16de61796", "code": "79U7TB", "id": 69951, "logo": null, "date": "2025-09-19T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-69951-pyrefly-a-scalable-type-checker-for-a-unified-ide-experience", "url": "https://pretalx.com/pyconuk-2025/talk/79U7TB/", "title": "Pyrefly: A Scalable Type Checker for a Unified IDE Experience", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "[Pyrefly](https://pyrefly.org/) is a Python type checker built to provide a fast type checking experience, enabling developers to write better code with confidence. It brings an IDE experience powering type hints and code navigation on a new type checking engine that scales to large codebases.", "description": "We started working on Pyrefly a little under a year ago, to make a type checker that stays fast on Meta's vast Python codebase, and can be the foundation for more than just checking of Python types.\r\n\r\nIn this session, you\u2019ll see Pyrefly in action - we\u2019ll dive into real-world examples showing how Pyrefly can supercharge your workflow, even if your code is 100% untyped!\r\n\r\nWhether you\u2019re a Python enthusiast or a seasoned engineer, you\u2019ll walk away with practical tips to start using Pyrefly in your own projects and elevate your IDE experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9SJD7L", "name": "Kyle Into", "avatar": "https://pretalx.com/media/avatars/9SJD7L_k1gnGJG.webp", "biography": "Kyle is a Software Developer at Meta focused on developer tooling and static analysis. For the past three years he has worked to improve Python language services, now leading efforts on Python in the IDE. Kyle is passionate about building tools that make developers' lives easier, especially in dynamic languages like Python.", "public_name": "Kyle Into", "guid": "975f9999-b40a-522f-a85a-86a42965bdb3", "url": "https://pretalx.com/pyconuk-2025/speaker/9SJD7L/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/79U7TB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/79U7TB/", "attachments": []}, {"guid": "8fa0eb89-0ad6-5978-8133-68880a281436", "code": "Y3CKRH", "id": 70350, "logo": null, "date": "2025-09-19T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70350-exec-putting-python-in-your-python-so-you-can-code-while-you-code", "url": "https://pretalx.com/pyconuk-2025/talk/Y3CKRH/", "title": "exec: putting Python in your Python so you can code while you code", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Did you know you can run Python code within Python itself? In this talk, we explore how you can dynamically generate, and run, Python code using `exec` and why you might want to do it in the first place.", "description": "An often overlooked feature of programming languages like Python is the ability to dynamically generate and run code within an application. How can you do this? Why would you do this? We'll explore some use cases and some of the methods for doing this with built-in functions like `exec`. It's a useful feature to know and sometimes the right solution to a problem! We'll also discuss some best practices to avoid problems with running arbitrary code.", "recording_license": "", "do_not_record": false, "persons": [{"code": "M3TUGD", "name": "David Asboth", "avatar": "https://pretalx.com/media/avatars/M3TUGD_5Z14TTq.webp", "biography": "David is a \"data generalist\"; currently a freelance data consultant and educator with a background in software and web development. He co-hosts the Half Stack Data Science podcast about data science in the real world and is the author of The Well-Grounded Data Analyst (Manning, 2025); a book about the data skills that aspiring analysts actually need in their jobs.", "public_name": "David Asboth", "guid": "1dc19bb7-9b1c-599a-86f6-42fb26d848c2", "url": "https://pretalx.com/pyconuk-2025/speaker/M3TUGD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/Y3CKRH/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/Y3CKRH/", "attachments": []}, {"guid": "35c5fc3a-05bf-52ea-b7b1-db91842090bd", "code": "CZGMN9", "id": 66420, "logo": null, "date": "2025-09-19T16:30:00+01:00", "start": "16:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-66420-i-m-a-luddite-why-aren-t-you", "url": "https://pretalx.com/pyconuk-2025/talk/CZGMN9/", "title": "I'm a Luddite, Why Aren't You", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Luddites fought automation that entrenched power into the hands of the wealthy risked their agency and damaged their way of life. AI threatens to do the same. We as software developers have the ability to empower our audiences to take back their agency, but we must learn from history.", "description": "In the 1810s wealthy industrialists rolled out new automation technologies that reduced the agency of the workers who operated them, and replaced the work of skilled artisans with shoddy alternatives at rock bottom prices, enabling the economic engine that drove chattel slavery in the US south and the imperialist economic policies of the British empire in India.\r\n\r\nIn the 2020s wealthy tech titans are rolling out new automation technologies that reduce the agency of the workers that use them, and proport to replace the work of skilled workers with shoddy alternatives at rock bottom prices.\r\n\r\nThis is not inevitable. We have the power to build alternatives that preserve agency and dignity. But we must learn from the past.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8CRQUM", "name": "CJ Shearwood", "avatar": "https://pretalx.com/media/avatars/8CRQUM_ykJgrcJ.webp", "biography": "CJ is a software developer and game designer from Nottingham, England. They have worked across the industry in publishing, advertising, security and retail, and have specific interests in cybersecurity and history. They are also a published game designer and miniature sculptor, using python to test miniatures wargames.", "public_name": "CJ Shearwood", "guid": "1374894c-eb14-53ad-beb4-240cfe62596e", "url": "https://pretalx.com/pyconuk-2025/speaker/8CRQUM/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/CZGMN9/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/CZGMN9/", "attachments": []}, {"guid": "7ff0849b-dd9c-5e43-b03e-df5782b2063b", "code": "LHN3FW", "id": 74366, "logo": null, "date": "2025-09-19T17:00:00+01:00", "start": "17:00", "duration": "01:00", "room": "Main stage", "slug": "pyconuk-2025-74366-lightning-talks-friday", "url": "https://pretalx.com/pyconuk-2025/talk/LHN3FW/", "title": "Lightning talks Friday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Lightning talks Friday", "description": "Lightning talks Friday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/LHN3FW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/LHN3FW/", "attachments": []}], "Space 2": [{"guid": "65e6e181-5025-5a00-b88b-91c75ca79954", "code": "W7UQUE", "id": 70123, "logo": null, "date": "2025-09-19T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70123-eight-python-performance-mistakes-i-won-t-make-again", "url": "https://pretalx.com/pyconuk-2025/talk/W7UQUE/", "title": "Eight Python Performance Mistakes I Won\u2019t Make Again", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A client was happy with a prototype I delivered, except for one detail: they needed my code to be about 100 times faster. I got there eventually, but through much confusion and mistakes, which I will share with you, so you don't have to go through them yourself.", "description": "A few years ago, I took on a project to rewrite an old C project in Python. Once I delivered the prototype, the client was happy, except for one little detail: they ran some tasks against my code, which we had never discussed in detail, that used to take 10 minutes, and now took over 10 hours. So, I needed to make it about 100 times faster.\r\n\r\nI did think early on about the most likely bottlenecks, and anticipated what might need improvement later. I considered the size of the data I had to work with, and how it would be queried. It didn't seem like a hard problem, the dataset wasn't that large. But as it turned out, all my assumptions and plans were wrong.\r\n\r\nBeing a generalist, I had never done Python performance optimisation at this level - most things I built were fast enough with minor effort. So I tried to collect more measurements, in ways I did not understand, drew the wrong conclusions and optimised the wrong components. And it didn't help that my project is based on obscure protocols from the late 90s with weird legacy compatibility requirements. \r\n\r\nI found my way around poor assumptions (_\"surely PostgreSQL will be the main bottleneck\"_), unknown expectations (_\"what do you mean, you want to run 1 million queries?\"_), and misunderstood measurements (_\"I can't believe SQLAlchemy is so slow - or is it?\"_). But after numerous red herrings, aha-moments, and questioning my career choices, I got the project to where it needed to be.\r\n\r\nThis talk will take you through the path I took, the lessons I learned from it, and things I would do different today. You'll learn something from it if you have or ever might write code where performance might matter.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NCXBNH", "name": "Sasha Romijn", "avatar": "https://pretalx.com/media/avatars/NCXBNH_KwCVxIc.webp", "biography": "Sasha is an independent developer and community organiser with over a decade of Python experience. A former Django core developer and co-organiser of several Django conferences, they now work mostly on open source software related to internet infrastructure, network engineering, and internet standards. They've also been part of the Write the Docs conference team since 2018 and enjoy side projects like the Less Obvious Conference Checklist and Happiness Packets, which focus on improving the tech community in small but meaningful ways.", "public_name": "Sasha Romijn", "guid": "98c7fc2c-a69a-5d5b-940d-01e11878a0d4", "url": "https://pretalx.com/pyconuk-2025/speaker/NCXBNH/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/W7UQUE/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/W7UQUE/", "attachments": []}, {"guid": "46f66795-c7ae-5c3e-81f3-5dd4e5e27fea", "code": "YQU7MV", "id": 67168, "logo": null, "date": "2025-09-19T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-67168-from-no-help-to-self-help-streamlining-processes-with-slack-and-python", "url": "https://pretalx.com/pyconuk-2025/talk/YQU7MV/", "title": "From no-help to self-help: Streamlining processes with Slack and Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A story of how I used Slack\u2019s Python framework to build a self-service tool that enables internal users to complete processes more efficiently and reliably.", "description": "One of the things I love to do with Python is automate and streamline things. This talk is all about how I joined a company and got the chance to do just that.\r\n\r\nWhen I joined the company the user would send a free text Slack message to a developer to kick off a process. Some issues with this were: requests not containing all required information, requests containing information in the wrong format, and interrupting developers - perish the thought\u2026.\r\n\r\nI solved this in a few ways starting with a no-code solution (Slack Workflows) and culminating in a fully fledged Slack App. Creating a Slack App effectively turns Slack into your own mini application with easy implementation of simple UIs.\r\n\r\nIn this talk we will explore how bitesize snippets of Python can solve an assortment of problems. Along the way I will share with you my successes (and failures) so that you can learn how to streamline your processes too.\r\n\r\nSome basic understanding of Python and web APIs may be helpful but is certainly not required.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QDRAVN", "name": "Isaac Oldwood", "avatar": "https://pretalx.com/media/avatars/QDRAVN_nmZdiOC.webp", "biography": "Insurtech Software Engineer\r\nSoftware Crafters Cambridge Event Organiser\r\nLover of Cardiff Tiny Rebel", "public_name": "Isaac Oldwood", "guid": "8400e63f-221d-55ec-b42e-f19a78e5331d", "url": "https://pretalx.com/pyconuk-2025/speaker/QDRAVN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/YQU7MV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/YQU7MV/", "attachments": []}, {"guid": "f925d0b5-310b-5563-be60-b752b4fea265", "code": "VJVXZP", "id": 70442, "logo": null, "date": "2025-09-19T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70442-why-and-how-all-your-python-code-should-be-declarative-in-the-age-of-generative-ai", "url": "https://pretalx.com/pyconuk-2025/talk/VJVXZP/", "title": "Why, and how, all your Python code should be Declarative in the Age of Generative AI", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We'll explore the tools that the Python language and ecosystem give us to inject rich metadata into code, and how we can exploit this to maximum advantage in an age where code is cheap, but delivering value with it is still as hard as ever.", "description": "Python is an excellent scripting language, and its syntax and wider ecosystem have evolved over the past three and a half decades allowing it to be used to build (almost) anything.\r\n\r\nHowever, the strength that this flexibility offers can also be a source of weakness: because it's so easy to write a script that simply does something, what that 'something' is, and why it's being done, often goes undocumented and forgotten. This is especially true in large organisations where individuals come and go, but scripts and applications stay put.\r\n\r\nIn recent years, particularly after the advent of the typing system in version 3.5, and then runtime annotations in 3.9, Python has begun to offer powerful ways to go beyond simply documenting code, and instead to record structured metadata about what code is doing and why, inside code itself. This has proven of particular use for framework builders and platform engineers, but is there for everyone involved with Python code and the technologies and processes we build with it to use.\r\n\r\nThis talk will cover some of these tools and patterns, before exploring their significance in the context of new generative-AI powered systems for writing code and building technology. In particular, we'll look at the uses and abuses of the typing module's Annotated object (a Special Form), and its integrations with essential libraries like Pydantic. The talk will then move on to explore other sources of metadata within our code, such as that recorded in frameworks like ORMs, API implementations, and explicit stores of metadata like pyproject.toml.\r\n\r\nMost importantly of all, however, the talk will argue that as engineers working in a high level language, Pythonistas need to rethink what it means to write code in a world where there are tools that will so readily write it for us. Instead of writing code to do technical work, we instead need to develop deep understandings of our businesses, processes, projects, users, and colleagues, to structure and record what we want to do, and why. \r\n\r\nWe'll steer clear of \"prompt engineering\" and \"vibe coding\", and instead make a brief detour into the often misunderstood academic discipline of Geography to argue for a new approach to writing Python in 2025 and beyond.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UWCNHR", "name": "Dom Weldon", "avatar": "https://pretalx.com/media/avatars/UWCNHR_z4WzcJy.webp", "biography": "Dom Weldon is an independent contractor based in Central London, currently working in Platform Engineering at a large investment company in the City of London, having previously worked in a role specialising in AI/ML products across a variety of sectors.\r\n\r\nHe studied Natural Sciences at the University of Cambridge and Computational Geography at King's College London, and is particularly interested in the application of Graph Databases and Graph Theory in real world applications.\r\n\r\nOutside work, Dom is interested in languages and travelling, and has a voluntary statutory role monitoring conditions for prisoners inside a challenging North London jail.", "public_name": "Dom Weldon", "guid": "4d705e3d-d93a-5353-8338-98a18ec18cf9", "url": "https://pretalx.com/pyconuk-2025/speaker/UWCNHR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/VJVXZP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/VJVXZP/", "attachments": []}, {"guid": "1b4a63bf-3d5d-50ba-92b9-a8c81703ccbf", "code": "X3ZDPG", "id": 70453, "logo": null, "date": "2025-09-19T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70453-no-data-no-problem-synthetic-data-using-llms-and-faker", "url": "https://pretalx.com/pyconuk-2025/talk/X3ZDPG/", "title": "No data, no problem: Synthetic Data using LLMs and Faker", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What do you do when you need to build data products, but don\u2019t have any data?  Learn how to generate complex synthetic data using Faker. We will generate typical user journeys through a website, creating a synthetic data stream that could be used for development, testing or modelling.", "description": "Ever had a project grind to a halt because the data you need contains personal information, is confidential or protected by sector regulations? Synthetic data generation offers a practical solution to overcome these blockers, enabling development, testing, and work to continue without compromising data protection requirements.\r\n\r\nThis talks focuses on two distinct approaches to synthetic data creation. First, we assess the capabilities and limitations of Large Language Models as data generators, evaluating their effectiveness in producing structured event data. This is compared against Faker, an established Python library specifically designed for synthetic data generation.\r\n\r\nWe will apply these technologies to generate synthetic data that replicates website visitor behaviour patterns. Website analytics typically provide well-defined event structures and documented user journey patterns, making this an ideal candidate for synthetic data generation. The challenge lies in creating complex datasets that accurately represent the varied pathways users take through websites whilst maintaining realistic interaction patterns.\r\n\r\nThe project implements workflow that accepts specifications for user journey patterns, event schemas, and controlled randomness parameters. The output is a configurable event stream generator that mimics user journeys through a website. Come learn how you can generate similar fake data yourself...**because sometimes the best real data is the data you make yourself.**\r\n\r\n**Outline**\r\n1. Understanding the use case\r\n2. Can't AI do this?\r\n3. Faker to the rescue \r\n4. Faker Providers\r\n5. How we used Faker", "recording_license": "", "do_not_record": false, "persons": [{"code": "A7QPAE", "name": "Eric Thanenthiran", "avatar": "https://pretalx.com/media/avatars/A7QPAE_BJBrrfQ.webp", "biography": "I lead the Engineering function at Tasman Analytics, a boutique data consultancy. We act as an interim/fractional data team and are passionate about helping clients leverage the power of their data.\r\n\r\nPersonally, I have a background of mechanical engineering and have worked across a range of sectors including sustainability, energy, property, construction and architecture. I am an engineer at heart and perennially look to hone the craft of engineering.", "public_name": "Eric Thanenthiran", "guid": "da8af761-4ced-5a3a-81d6-d8058766ba54", "url": "https://pretalx.com/pyconuk-2025/speaker/A7QPAE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/X3ZDPG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/X3ZDPG/", "attachments": []}, {"guid": "47d9bc57-ad2d-55ce-9d16-70313e71c378", "code": "GD9PX7", "id": 66621, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/GD9PX7/StrypeGraphicsScreensho_xWsKFcf.png", "date": "2025-09-19T16:30:00+01:00", "start": "16:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-66621-creative-beginners-python-programming-in-the-browser", "url": "https://pretalx.com/pyconuk-2025/talk/GD9PX7/", "title": "Creative beginners Python programming in the browser", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk presents Strype, a free, online Python environment aimed at novice programmers. Strype combines frame-based editing \u2013 a technique that supports novices by reducing syntax errors \u2013 with an intuitive graphics framework. Users can learn programming by creating games and animations from day one, while learning fundamental programming principles.", "description": "Python is a very popular language for teaching teenagers to code.  However, beginners can struggle with managing challenges such as syntax errors, indentation, and installing Python on their device.  Strype is a new online programming editor that aims to solve all of these problems and provide an optimal introduction to Python.\r\nIt uses a new way to edit Python called frame-based editing that allows users to avoid dealing with whitespace for indentation, or mismatching brackets -- eliminating many syntax errors that novices make.  Furthermore, it runs entirely in the browser and allows easy creation of engaging graphical examples.\r\nIn this session we will demonstrate Strype and explain how it is specifically designed to help beginners learn Python. Strype is free and open source.", "recording_license": "", "do_not_record": false, "persons": [{"code": "STZSUN", "name": "Pierre Weill-Tessier", "avatar": "https://pretalx.com/media/avatars/STZSUN_DxLskPn.webp", "biography": "Pierre works at King's College London (UK) as a Research Associate. Within the KCL Programming Educational Tools (K-PET) group, he's actively working on developing and maintaining Strype, an online free Python editor. His other interests besides computing education are human-computing interaction (HCI) and eye tracking.", "public_name": "Pierre Weill-Tessier", "guid": "769cbac8-fd6e-536b-a7ea-af060bab9d43", "url": "https://pretalx.com/pyconuk-2025/speaker/STZSUN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/GD9PX7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/GD9PX7/", "attachments": []}, {"guid": "f9a60d3c-6d5b-554e-9f59-4c304136e53f", "code": "PXCUQW", "id": 81218, "logo": null, "date": "2025-09-19T18:30:00+01:00", "start": "18:30", "duration": "01:30", "room": "Space 2", "slug": "pyconuk-2025-81218-ada-a-play-inspired-by-ada-lovelace", "url": "https://pretalx.com/pyconuk-2025/talk/PXCUQW/", "title": "Ada: A play inspired by Ada Lovelace", "subtitle": "", "track": null, "type": "Social event", "language": "en", "abstract": "This year at PyCon UK, you\u2019re warmly invited to a world premiere: Ada, a brand-new play inspired by Ada Lovelace, written by Emily Holyoake, and staged as a rehearsed reading by Nottingham-based theatre company Chronic Insanity", "description": "\"You may turn the handle, and I will whirr and calculate without error!\"\r\n\r\nDecades before the first computers are built, Ada imagines machines that can do anything, even compose beautiful pieces of music. Far beyond Ada\u2019s future, a learning machine called Ginny breaks free of her routine and tests the boundaries of what ought to be possible.\r\n\r\n*Ada* is an intricate re-telling of the life and legacy of Ada Lovelace, pioneer of computing, paralleling her history with a contemporary story about the potential of artificial intelligence.\r\n\r\n---\r\nRead playwright Emily Holyoake's [guest blog post](https://2025.pyconuk.org/2025/09/staging-ada-at-pycon2025/) sharing the inspiration behind Ada, the writing process, and what it means to bring this story to life.\r\n\r\n[Chronic Insanity](https://www.chronicinsanity.co.uk/) is a Nottingham-based theatre company that creates and facilitates live events in a variety of traditional, found, and digital spaces. They make work accessibly, affordably, sustainably, and inclusively. They seek to change the definition of what theatre can be by playing with form, genre, medium, and technology.", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/PXCUQW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/PXCUQW/", "attachments": []}], "Space 3": [{"guid": "f52669e9-530d-5039-a168-f618d0fe0a8b", "code": "9ANABW", "id": 67450, "logo": null, "date": "2025-09-19T13:30:00+01:00", "start": "13:30", "duration": "01:25", "room": "Space 3", "slug": "pyconuk-2025-67450-setting-up-reliable-ci-cd-pipelines-with-python-k8s-testcontainers", "url": "https://pretalx.com/pyconuk-2025/talk/9ANABW/", "title": "Setting Up Reliable CI/CD Pipelines with Python, K8s & Testcontainers", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Build a production-grade CI/CD pipeline using Python, Docker, Testcontainers, GitHub Actions, and Kubernetes. This workshop takes you from zero to deployment with real-world automation, testing, and monitoring. Perfect for all levels, it blends simplicity, storytelling, and powerful DevOps tools to boost your confidence in delivering reliable software.", "description": "Shipping software should feel empowering \u2014 not like fighting fires. Yet for many developers, CI/CD feels like a maze of YAMLs, fragile tests, cloud complexity, and guesswork. This workshop changes that story, using Python as your guiding light.\r\n\r\nIn this 85-minute hands-on session, you\u2019ll build a complete, production-grade CI/CD pipeline \u2014 one that starts with a commit and ends with a deployed, monitored app in the cloud. But unlike most DevOps sessions, this one is crafted through the lens of simplicity, storytelling, and the power of Python.\r\n\r\nWe'll start with Python scripts that automate GitHub repo creation and Jenkins setup. From there, you\u2019ll use Testcontainers to run realistic integration tests in Docker \u2014 giving you confidence that your tests reflect the real world. We'll automate builds and trigger workflows using GitHub Actions, then containerize your app and push it to Docker Hub.\r\n\r\nThen comes the moment of truth: deploying your Python app to a live Kubernetes cluster (AWS EKS), using Python to manage manifests, rollouts, and environment configs. To top it off, you'll integrate a custom Prometheus exporter written in Python, visualized in Grafana, so you can watch your app breathe in real time.\r\n\r\nThis isn\u2019t just another workshop filled with configs. It\u2019s a journey \u2014 from chaos to clarity, from \u201cI\u2019m not sure what I\u2019m doing\u201d to \u201cI actually built that!\u201d Every step is hands-on, beginner-friendly, and deeply practical. We blend technical depth with real-world insight, humour, and moments of celebration.\r\n\r\nWhether you\u2019re just starting out with DevOps, or you\u2019re a seasoned engineer who wants a clean, Pythonic approach to CI/CD, this session is for you. You\u2019ll leave with a complete working pipeline, a solid understanding of every tool involved, and the confidence to recreate it at work, in your side projects, or with your teams.\r\n\r\nBy the end, you\u2019ll walk away not only with skills, but with a story \u2014 a story of how you connected the dots and built something amazing, powered by Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XQMQY7", "name": "Koti Vellanki", "avatar": "https://pretalx.com/media/avatars/XQMQY7_nKYZtRe.webp", "biography": "I am a senior DevOps engineer with over six years of experience managing high-stakes workloads across hundreds of clusters. In my daily work, I focus on ensuring system uptime, solving tough performance issues, and fine-tuning deployments. Through these real-world challenges, I have discovered just how critical observability is for catching and fixing problems quickly, as well as for planning better infrastructure strategies.", "public_name": "Koti Vellanki", "guid": "3ea31c58-f270-526f-83e8-843e3aff95a6", "url": "https://pretalx.com/pyconuk-2025/speaker/XQMQY7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/9ANABW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/9ANABW/", "attachments": []}, {"guid": "51dc1970-86a3-57bf-a62d-892088557c79", "code": "FDPLPX", "id": 69562, "logo": null, "date": "2025-09-19T15:30:00+01:00", "start": "15:30", "duration": "01:25", "room": "Space 3", "slug": "pyconuk-2025-69562-simply-the-best-an-introduction-to-machine-learning-with-evolutionary-algorithms", "url": "https://pretalx.com/pyconuk-2025/talk/FDPLPX/", "title": "Simply the best: An introduction to machine learning with evolutionary algorithms", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Evolutionary algorithms are part of machine learning. They solve optimization problems, searching for the 'best' solution(s) to problems. They are inspired by the process of evolution in nature. This workshop will show how easy they are to code up, letting you practice Python and discover some machine learning.", "description": "Starting with a brief introduction to evolutionary algorithms, participants will code \u2018OneMax\u2019, a \u2018hello world\u2019-type example for evolutionary algorithms, then move to more complicated examples. \r\nThe workshops will give a practical understanding of the important patterns of evolutionary algorithms and show how randomness can be used to solve problems.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YFTUXW", "name": "Frances Buontempo", "avatar": "https://pretalx.com/media/avatars/YFTUXW_P11kAzZ.webp", "biography": "Frances Buontempo is currently editor of the ACCU\u2019s Overload magazine, has written a book on Genetic Algorithms and Machine Learning, and a C++ book to help you catch up since C++11. She has worked as a programmer at various companies, mostly in London with a focus on finance. She enjoys testing and deleting code and tries to keep on learning.", "public_name": "Frances Buontempo", "guid": "12acfdfc-a8af-503b-88f0-69ed0c3ddbd6", "url": "https://pretalx.com/pyconuk-2025/speaker/YFTUXW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/FDPLPX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/FDPLPX/", "attachments": []}], "Space 4": [{"guid": "46caff77-1e85-5ecb-8b40-6ea9d826321c", "code": "GW3Z8Y", "id": 70542, "logo": null, "date": "2025-09-19T13:30:00+01:00", "start": "13:30", "duration": "01:25", "room": "Space 4", "slug": "pyconuk-2025-70542-tdd-what-it-is-why-it-s-good-and-why-it-might-just-solve-all-your-ai-problems", "url": "https://pretalx.com/pyconuk-2025/talk/GW3Z8Y/", "title": "TDD: what it is, why it's good, and why it might just solve all your AI problems", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Find out what TDD is, and what it gives you over and above writing the tests after the fact.  Including, perhaps, a solution to some of the common failure modes of AI codegen.", "description": "Automated testing is now common in the Python community, but many of the now-grizzled veterans of the agile movement argued for something more: test-driven development.  There are many misconceptions about what TDD is and why people advocate for it, so come and find out all about it in this session, which will include\r\n\r\n- An interactive demonstration of TDD, the red-green-refactor loop, incremental development, outside-in, \"simplest possible changes\", and more...\r\n\r\n- A chance to try it out yourself!\r\n\r\n- Some tips for how to get your AI companion to work in a TDD way, thus avoiding some of its most egregious failure modes.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LGDGFA", "name": "Harry Percival", "avatar": "https://pretalx.com/media/avatars/LGDGFA_ZIq8wJa.webp", "biography": "After an idyllic childhood spent playing with BASIC on French 8-bit computers whose keys go \"boop\" when you press them, Harry spent a few years in the wilderness of Economics and Powerpoint, before rediscovering his true geek nature in the late aughts.  He was lucky enough to fall in with a bunch of XP fanatics, working on the pioneering but sadly defunct Resolver One python-spreadsheet.   Since then he has since written two books, one on TDD and one on software architecture patterns.  He currently works at Kraken Technologies, an offshot of green energy retailer Octopus Energy.", "public_name": "Harry Percival", "guid": "74d3619c-7316-53ca-877c-bd73ace7f240", "url": "https://pretalx.com/pyconuk-2025/speaker/LGDGFA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/GW3Z8Y/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/GW3Z8Y/", "attachments": []}, {"guid": "dea99ad9-4276-5ae8-a8e4-31ad78d24552", "code": "TBDW9P", "id": 69320, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/TBDW9P/logo_8WTRZFF.png", "date": "2025-09-19T15:00:00+01:00", "start": "15:00", "duration": "01:55", "room": "Space 4", "slug": "pyconuk-2025-69320-memray-101-demystifying-memory-profiling-in-python", "url": "https://pretalx.com/pyconuk-2025/talk/TBDW9P/", "title": "Memray 101: Demystifying memory profiling in Python", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Explore Memray, a powerful open source memory profiler for Python. This workshop introduces its tools for tracking allocations in Python code, native modules, and the interpreter. Learn to identify memory bottlenecks, debug efficiently, and optimize performance, so you can start profiling your applications with confidence and clarity today!", "description": "Memray is an open source memory profiler developed at Bloomberg and used widely across the software industry, including by organizations including Google, Meta, and NVIDIA. It tracks memory allocations in Python code, native extension modules, and the Python interpreter itself. Join this hands-on workshop to learn how to use Memray effectively and gain deeper insight into your code\u2019s memory behavior.\r\n\r\nEfficient memory usage is critical for high-performance applications. As software scales, manually identifying memory inefficiencies becomes increasingly difficult. Tools like Memray help uncover memory leaks and inefficient allocation patterns, enabling measurable improvements in performance and stability.\r\n\r\nIn this session, you\u2019ll learn how to use Memray to generate detailed memory profiling reports that accurately capture the call stack\u2014unlike sampling profilers. You\u2019ll explore memory usage across Python and native threads (e.g., C++ extensions), analyze memory-heavy functions, and identify bottlenecks. You'll also learn how to use Memray\u2019s pytest integration to automatically detect and prevent memory issues as part of your CI workflows.\r\n\r\nThe workshop is divided into three parts:\r\n\r\nPart 1: Get started with Memray by generating flamegraph reports and testing for memory leaks using the pytest API.\r\n\r\nPart 2: Investigate real-world memory problems, explore Python\u2019s garbage collector, and understand how it can affect memory behavior in subtle ways.\r\n\r\nPart 3: Dive into native code profiling, examine memory issues caused by misuse of Python\u2019s functools library, and learn how to debug allocations in C++ extensions.\r\n\r\nBy the end of the workshop, participants will be equipped to confidently interpret Memray reports, identify and resolve memory inefficiencies in Python and native code, and integrate memory checks into their software development lifecycle\r\n\r\nWhether you're optimizing a data pipeline, debugging memory leaks, or are simply curious about what\u2019s going on under the hood, this workshop will give you practical, actionable skills to make your Python programs more efficient and robust.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VFKZ8H", "name": "Jesse Carnaxide", "avatar": "https://pretalx.com/media/avatars/VFKZ8H_xnWT9Nw.webp", "biography": "Jesse Carnaxide is a full-stack developer with more than ten years of experience. He holds a BEng and MEng in computer engineering from SUNY Binghamton and works as a Senior Software Engineer at Bloomberg in New York City. He has contributed across Bloomberg\u2019s technology stack and is currently part of the Enterprise Portfolio Management Engineering team. Jesse leads Bloomberg\u2019s Python Guild, an internal community focused on training and skill development. He is passionate about teaching and mentoring, and values Python\u2019s readability for its impact on maintainability, accessibility, and fostering a strong developer community.", "public_name": "Jesse Carnaxide", "guid": "43122e27-77a5-5b08-8985-671a9d2f1706", "url": "https://pretalx.com/pyconuk-2025/speaker/VFKZ8H/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/TBDW9P/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/TBDW9P/", "attachments": []}]}}, {"index": 2, "date": "2025-09-20", "day_start": "2025-09-20T04:00:00+01:00", "day_end": "2025-09-21T03:59:00+01:00", "rooms": {"Main stage": [{"guid": "1ad0cbde-963e-5940-9ff8-da88d25f6aad", "code": "SZZPFG", "id": 74363, "logo": null, "date": "2025-09-20T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Main stage", "slug": "pyconuk-2025-74363-welcome-saturday", "url": "https://pretalx.com/pyconuk-2025/talk/SZZPFG/", "title": "Welcome Saturday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Welcome Saturday", "description": "Welcome Saturday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SZZPFG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SZZPFG/", "attachments": []}, {"guid": "968e9970-9eb2-5cc4-bc21-9d2868ed6f93", "code": "JVKBDV", "id": 75423, "logo": null, "date": "2025-09-20T09:30:00+01:00", "start": "09:30", "duration": "01:00", "room": "Main stage", "slug": "pyconuk-2025-75423-localization-and-translation-of-programming-languages", "url": "https://pretalx.com/pyconuk-2025/talk/JVKBDV/", "title": "Localization and translation of programming languages", "subtitle": "", "track": "Keynote", "type": "Keynote", "language": "en", "abstract": "Most programming languages are in English, but why? And what does it entail to change that?", "description": "In this talk Felienne Hermans, professor at VU Amsterdam and creator of the Hedy programming language, now available in 69 languages including Arabic, Dutch, Spanish and Hindi, will dive into the world of non-English programming. Try Hedy at www.hedy.org!", "recording_license": "", "do_not_record": false, "persons": [{"code": "XURFZZ", "name": "Felienne Hermans", "avatar": null, "biography": "Felienne is a professor of Computer Science Education at the Vrije Universiteit Amsterdam. She also works as a high-school CS teacher one day a week at Open Schoolgemeenschap Bijlmer.\r\n\r\nFelienne is the creator of the Hedy programming language, a gradual and multi-lingual programming language designed for teaching. \r\n\r\nShe is the author of \u201cThe Programmer\u2019s Brain\u201c, a book that helps programmers understand how their brain works and how to use it more effectively. In 2021, Felienne was awarded the Dutch Prize for ICT research. She also has a weekly column on BNR, a Dutch radio station.", "public_name": "Felienne Hermans", "guid": "20c5cce8-f224-5db8-9a07-0936c4f22cc9", "url": "https://pretalx.com/pyconuk-2025/speaker/XURFZZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/JVKBDV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/JVKBDV/", "attachments": []}, {"guid": "b19b6fef-c750-5f43-b8bc-a120a1786312", "code": "CZT9TC", "id": 70355, "logo": null, "date": "2025-09-20T11:00:00+01:00", "start": "11:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70355-mapping-jane-austen-s-influence-across-space-time-with-python-and-clickhouse", "url": "https://pretalx.com/pyconuk-2025/talk/CZT9TC/", "title": "Mapping Jane Austen\u2019s Influence Across Space & Time with Python and ClickHouse", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What do zombies, Bollywood, and romantasy have in common? Jane Austen. This talk demonstrates how to embed, clean, and analyze unstructured data using Python and ClickHouse. By tracing relationships between derivative works, it maps how one author continues to shape global culture\u2014at scale.", "description": "I didn\u2019t start in tech\u2014I started with a violin. For years, I performed at weddings and chamber concerts, and eventually at Bridgerton-themed parties. That\u2019s when I first saw how deeply Jane Austen\u2019s stories still resonate today. Her work continues to inspire films, communities, and entire genres. That persistence\u2014250 years on\u2014is something worth honoring. This talk intends to trace Austen's cultural influence with data.\r\n\r\nIn this presentation, we will use Python to ingest, clean, and visualize semi-structured data. ClickHouse is the database of choice\u2014used to store JSON, run full-text  and vector search. Together, these tools make it easy to explore semantic relationships across large, messy datasets.\r\n\r\nThis is aimed at a broad audience. If you\u2019re new to coding or data analysis, you\u2019ll see how approachable these tools have become. If you\u2019re more experienced, you\u2019ll get a look at how ClickHouse\u2019s new JSON, vector, and full-text search features can support lightweight but powerful workflows\u2014especially when paired with Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KMAWWU", "name": "Nataly Merezhuk", "avatar": "https://pretalx.com/media/avatars/KMAWWU_uPGdeZn.webp", "biography": "Nataly Merezhuk is a frontend software engineer at ClickHouse with a past life as a jazz violinist. Initially a self-taught developer, she\u2019s passionate about making coding accessible to everyone.\r\n\r\nNataly lives in Washington D.C. with her cat Nina and loves coffee, board games, and rock climbing!", "public_name": "Nataly Merezhuk", "guid": "c6082be0-513b-58f9-8444-98c1bf3df3fb", "url": "https://pretalx.com/pyconuk-2025/speaker/KMAWWU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/CZT9TC/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/CZT9TC/", "attachments": []}, {"guid": "be01615b-11c6-5fd1-b979-ff4854d68a2b", "code": "SGSXPT", "id": 70146, "logo": null, "date": "2025-09-20T11:30:00+01:00", "start": "11:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70146-halt-and-catch-fire-forcefully-stopping-python", "url": "https://pretalx.com/pyconuk-2025/talk/SGSXPT/", "title": "Halt and Catch Fire: Forcefully Stopping Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Writing code which runs is easy. Writing code which stops (cleanly) is hard. Writing code which cleanly stop someone else's code? Harder still.", "description": "As developers, we're tasked with writing code, with the intention of running it. In most cases, we want to run said code for as long as possible - either until completion or until something external restarts us. But in some cases, we want to run until another part of our program tells us not to.\r\n\r\nWhen defining background reusable tasks, you don't want them to run forever. If the task takes too long, for whatever reason, you want the task to stop. For sockets and other native APIs, there are native timeouts. But what about entire blocks of code? Or CPU-intensive operations? How can you (or a background worker library) stop them, cleanly and reliably, from within Python, all without any prior knowledge of how the background task is written or executed?\r\n\r\nWell, there are quite a few ways to do it. Some elegant, some not so much...", "recording_license": "", "do_not_record": false, "persons": [{"code": "RPKU3F", "name": "Jake Howard", "avatar": "https://pretalx.com/media/avatars/RPKU3F_1wtHHkv.webp", "biography": "- Senior Systems Engineer @ [Torchbox](https://torchbox.com)\r\n- Security Team @ Django & DSF Member\r\n- Core & Security Team @ [Wagtail](https://wagtail.org)\r\n- Avid self-hoster\r\n- [Frequent blogger](https://theorangeone.net/posts/)\r\n\r\nSocial:\r\n- Mastodon: [@jake@theorangeone.net](https://mastodon.theorangeone.net/@jake)\r\n- Bluesky: [@theorangeone.net](https://bsky.app/profile/theorangeone.net)", "public_name": "Jake Howard", "guid": "8c36fff8-4bdf-559c-85eb-95bf0587b31d", "url": "https://pretalx.com/pyconuk-2025/speaker/RPKU3F/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SGSXPT/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SGSXPT/", "attachments": []}, {"guid": "dd2d492a-5d1c-516b-b150-249b279ba26c", "code": "BURQM7", "id": 69317, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/BURQM7/python-icon_suPyjUZ.png", "date": "2025-09-20T12:00:00+01:00", "start": "12:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-69317-how-to-be-a-python-icon-writing-pythonic-code", "url": "https://pretalx.com/pyconuk-2025/talk/BURQM7/", "title": "How to be a Python Icon, writing Pythonic Code", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What makes code Pythonic? In this talk, we\u2019ll explore how clear, concise, and maintainable code embodies Pythonic principles. With simple, real-world examples, you\u2019ll learn to spot common patterns and refactor them the Pythonic way \u2014 leaving with practical tips you can start applying to your code right away.", "description": "Over the past 10 years as a software engineer, I\u2019ve spent a lot of time trying to decipher other people\u2019s code. Sometimes it feels like reading a foreign language; other times, it\u2019s surprisingly clear and easy to follow. Those moments taught me something important \u2014 the kind of developer I want to be, and the kind of code I want to leave behind (because not all legacy code is bad!)\r\n\r\nThroughout that journey, one word kept popping up: Pythonic. At first, it felt vague and a bit mysterious. But over time, as I wrote more code and reviewed even more, its meaning started to click. I began to see how Python\u2019s unique strengths \u2014 simplicity, elegance, and expressiveness \u2014 can be harnessed to write code that\u2019s not just functional, but also joyful to read and maintain.\r\n\r\nEventually, I realized how much I enjoy sharing this knowledge. What started in code reviews turned into a bigger idea: what if we taught these patterns before someone writes the code? And that\u2019s how this talk came to be.\r\n\r\nIn this session, I\u2019ll walk through some common Python coding patterns and demonstrate how they can be improved using more Pythonic alternatives. We\u2019ll cover topics like looping, key lookups, truthiness, list construction, and resource management \u2014 all through clear examples that are easy to follow regardless of your experience level.\r\n\r\nIf you're still figuring out what Pythonic means, or want to make your code clearer, more concise, and more maintainable, this talk is for you. And if you already know these patterns, you might leave with a fresh way to teach them to others.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VFKZ8H", "name": "Jesse Carnaxide", "avatar": "https://pretalx.com/media/avatars/VFKZ8H_xnWT9Nw.webp", "biography": "Jesse Carnaxide is a full-stack developer with more than ten years of experience. He holds a BEng and MEng in computer engineering from SUNY Binghamton and works as a Senior Software Engineer at Bloomberg in New York City. He has contributed across Bloomberg\u2019s technology stack and is currently part of the Enterprise Portfolio Management Engineering team. Jesse leads Bloomberg\u2019s Python Guild, an internal community focused on training and skill development. He is passionate about teaching and mentoring, and values Python\u2019s readability for its impact on maintainability, accessibility, and fostering a strong developer community.", "public_name": "Jesse Carnaxide", "guid": "43122e27-77a5-5b08-8985-671a9d2f1706", "url": "https://pretalx.com/pyconuk-2025/speaker/VFKZ8H/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/BURQM7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/BURQM7/", "attachments": []}, {"guid": "4326cc6d-8fc8-5b30-950a-20bfa696f68b", "code": "GDFCDW", "id": 81685, "logo": null, "date": "2025-09-20T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-81685-the-uk-python-association-about-us", "url": "https://pretalx.com/pyconuk-2025/talk/GDFCDW/", "title": "The UK Python Association - About Us", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Come and find out more about the UK Python Association, the charity behind PyCon UK - who we are, what we do, and our plans", "description": "Come and find out more about the UK Python Association, the charity behind PyCon UK - who we are, what we do, and our plans", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZNFAKN", "name": "Kristian Glass", "avatar": null, "biography": null, "public_name": "Kristian Glass", "guid": "cb37276b-fe72-550d-ade5-f9d75ad0a897", "url": "https://pretalx.com/pyconuk-2025/speaker/ZNFAKN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/GDFCDW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/GDFCDW/", "attachments": []}, {"guid": "82f128c3-71cb-50d9-8e6a-d6249d345275", "code": "SZAR78", "id": 69603, "logo": null, "date": "2025-09-20T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-69603-the-tale-of-pep-765-syntaxwarning-on-return-in-finally", "url": "https://pretalx.com/pyconuk-2025/talk/SZAR78/", "title": "The tale of PEP 765: SyntaxWarning on `return` in `finally`", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The next version of Python emits a SyntaxWarning when `return` is used in a `finally` block. This is a small change to the language, with an interesting history. This talk tells that story.", "description": "One of the new features of Python 3.14, which will be released in October, is that it emits a SyntaxWarning if `return`, `break` or `continue` appear in a `finally` block. This is a minor change to the language, with an interesting story. In fact, it was already proposed and rejected in the past. \r\n\r\nThis talk explains the change that PEP 765 introduces to Python 3.14, and the motivation for it. It then reflects on the history of this change, and the reasons that PEP 601, which proposed it for version 3.8, was rejected. Covering the discussions and the research that led to the decision to accept this change by way of PEP 765, the talk also sheds light on the PEP process and the way that such decisions are made by the Core Developers and the CPython Steering Council.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LPMUJ3", "name": "Irit Katriel", "avatar": "https://pretalx.com/media/avatars/LPMUJ3_tVtfd2m.webp", "biography": "I am a CPython Core Developer with a particular interest in programming language design and compilers. My contributions include the implementation of exception groups (PEP 654), a number of simplifications in the exceptions mechanism, and a major refactor of the cpython bytecode compiler to improve its structure, maintainability and accessibility from unit tests.", "public_name": "Irit Katriel", "guid": "6f9ab096-9fbd-5757-9023-e84154a5997a", "url": "https://pretalx.com/pyconuk-2025/speaker/LPMUJ3/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SZAR78/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SZAR78/", "attachments": []}, {"guid": "8cbe825b-8450-59e3-b7a2-36c39ae1ad77", "code": "RJMCYH", "id": 66379, "logo": null, "date": "2025-09-20T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-66379-how-to-solve-a-python-mystery", "url": "https://pretalx.com/pyconuk-2025/talk/RJMCYH/", "title": "How to solve a Python mystery", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Using Linux observability tools to learn what your Python application is doing", "description": "Has any of your Python applications become unresponsive? Has it deadlocked or is it busy doing something? How can you know? When troubleshooting some Python applications you often don\u2019t have time to analyze the source code and to understand how exactly it is working. Instead, you have to act fast and treat the application as a black box. In this talk, I will introduce useful Linux performance and observability tools that can be used to understand which files, connections, and OS system calls your application is performing. I will also share real-world mysteries that this approach has helped to solve.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XZ7NAH", "name": "Aivars Kalv\u0101ns", "avatar": "https://pretalx.com/media/avatars/XZ7NAH_TqcVCMa.webp", "biography": "Aivars Kalv\u0101ns is a FinTech developer, software architect, and consultant. He spent more than 18 years developing and architecting payment card software for acquiring and issuing, accounting and utility payments through mobile phones, ATMs, and POS terminals. At the moment he is a contractor for Ebury exploring the Foreign Exchange area of the FinTech landscape.", "public_name": "Aivars Kalv\u0101ns", "guid": "7e91ac18-412d-52b3-bf07-05589f549c30", "url": "https://pretalx.com/pyconuk-2025/speaker/XZ7NAH/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/RJMCYH/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/RJMCYH/", "attachments": []}, {"guid": "f0855860-a1b3-5369-bfa9-744c10a3ef4c", "code": "GMFRLG", "id": 67232, "logo": null, "date": "2025-09-20T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-67232-speed-matters-accelerating-python-with-c-and-pybind11", "url": "https://pretalx.com/pyconuk-2025/talk/GMFRLG/", "title": "Speed Matters: Accelerating Python with C++ and Pybind11", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will demonstrate how to re-write simple classes and functions in C/C++ and port them in python as a native package via Pybind11. Speed comparisons are made to showcase how refactoring certain code snippets in C can significantly benefit the algorithmic efficiency.", "description": "Python is well known for its simplicity and adaptability in accomplishing a variety of daily tasks ranging from data analysis, scientific computing to imaging processing. But every now and then, we may encounter some highly resource-intensive tasks where large-scale datasets are involved and there are millions or even billions of operations needed in order to achieve automation. Pure Python solutions, in this case, can introduce noticeable speed limitations due to interpreted execution that may lead to significant computational overhead and wait time.\r\n\r\nWhile CPython, PyPy, and native Python libraries built on C/C++ architectures like NumPy and OpenCV have offered some efficient solutions for tasks like matrix operations and image feature analysis, they often come with limitations and may lack the customizability required to implement custom logic specific to the project's need.\r\n\r\nIn this talk, I will illustrate how to use Pybind11 to import custom code written in C++ as native Python functions and therefore leverage both Python's flexibility and C++'s fast performance. We will start with some basic mathematical functions (like max, min, and round) and gradually move on to more complex sorting and filtering algorithms in Python. By analysing their performance using %timeit method and re-write them in C++, we can observe the time difference in execution and demonstrate how the simplest refactoring can deliver significant speedups. \r\n\r\nIf your Python tasks are crawling under heavy computational loads, this talk will give you some ideas on how to go beyond simple Pythonic logic to supercharge code performance while keeping your solutions relatively clean and maintainable.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WYP3MW", "name": "Peichao Qin", "avatar": "https://pretalx.com/media/avatars/WYP3MW_fCqIsqZ.webp", "biography": "I am currently a PhD student at the Faculty of Asian and Middle Eastern Studies at the University of Cambridge. My dissertation focuses on the digitalization of Shang oracle bones stored at Cambridge University Library. In my leisure, I am also a computer science enthusiast and avid coder proficient in python, C/C++, and full-stack web technologies.", "public_name": "Peichao Qin", "guid": "860bb03e-f2e8-5bc0-b1f8-704f0709da61", "url": "https://pretalx.com/pyconuk-2025/speaker/WYP3MW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/GMFRLG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/GMFRLG/", "attachments": []}, {"guid": "ca04c85e-35c2-5857-88b9-5d55c91e9143", "code": "7BHU9H", "id": 75864, "logo": null, "date": "2025-09-20T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Main stage", "slug": "pyconuk-2025-75864-young-coders-demos", "url": "https://pretalx.com/pyconuk-2025/talk/7BHU9H/", "title": "Young Coders demos", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "Young Coders demos", "description": "Young Coders demos", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/7BHU9H/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/7BHU9H/", "attachments": []}, {"guid": "df197b05-141a-51dd-ae71-7cc7c9df60d6", "code": "VNTHEQ", "id": 74367, "logo": null, "date": "2025-09-20T17:00:00+01:00", "start": "17:00", "duration": "01:00", "room": "Main stage", "slug": "pyconuk-2025-74367-lightning-talks-saturday", "url": "https://pretalx.com/pyconuk-2025/talk/VNTHEQ/", "title": "Lightning talks Saturday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Lightning talks Saturday", "description": "Lightning talks Saturday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/VNTHEQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/VNTHEQ/", "attachments": []}, {"guid": "37c409be-fca7-5bf3-9b1a-3ff50a02aa1c", "code": "FM97MH", "id": 80872, "logo": null, "date": "2025-09-20T18:15:00+01:00", "start": "18:15", "duration": "03:45", "room": "Main stage", "slug": "pyconuk-2025-80872-social-event-manual-technology-and-board-games", "url": "https://pretalx.com/pyconuk-2025/talk/FM97MH/", "title": "Social event: Manual technology and board games", "subtitle": "", "track": null, "type": "Social event", "language": "en", "abstract": "Manual technology and board games", "description": "Not done hanging out with your fellow attendees? Stick around after talks for a chilled-out evening of board games and crafts, with food and drink available from the bar. We'll provide the board games and (some) craft supplies; you bring the laughter and conversation.", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/FM97MH/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/FM97MH/", "attachments": []}], "Space 2": [{"guid": "e177d055-0e6a-5dee-b389-386e6bbe7a06", "code": "WHLYGZ", "id": 69664, "logo": null, "date": "2025-09-20T11:00:00+01:00", "start": "11:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-69664-fastapi-furious-tests-the-need-for-speed", "url": "https://pretalx.com/pyconuk-2025/talk/WHLYGZ/", "title": "FastAPI, Furious Tests: The Need for Speed", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Learn how we made our FastAPI tests 10x faster by ditching Docker, going in-memory, and embracing simplicity (and sanity).", "description": "Modern Python apps deserve modern testing - fast, simple, and reliable.\r\n\r\nWe used to spin up MySQL in Docker, wait over 10 seconds per test, and cross our fingers that CI wouldn\u2019t choke. Eventually, we\u2019d had enough.\r\n\r\nSo we ripped out the containers, swapped MySQL for in-memory SQLite with SQLModel, and streamlined our test suite from sluggish to snappy. The result? A 10x speedup, simpler setup, and happier developers.\r\n\r\nIn this talk, I\u2019ll show how we turbocharged our FastAPI testing setup by:\r\n* Overriding dependencies the right way\r\n* Using SQLite in-memory for speed and realism\r\n* Writing clean, useful tests without relying on heavy infra\r\n\r\nYou\u2019ll leave with practical techniques to make your test suite faster, your CI quicker, and your dev loop more joyful - without the complexity of Docker or the chaos of over-mocking.\r\n\r\nNo containers. No headaches. Just fast, clean Python tests.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DSPAWP", "name": "Shahar Polak", "avatar": "https://pretalx.com/media/avatars/DSPAWP_rXegl6T.webp", "biography": "Shahar Polak is Head of Engineering at ImagenAI, where his team edits hundreds of millions of photos a year - without losing their minds. He was a founding engineer at BreezoMeter, later acquired by Google, and has nearly 20 years of building things that (mostly) don\u2019t break. He also lectures at the Technion and Reichman about leadership, scaling teams, and surviving startup chaos.", "public_name": "Shahar Polak", "guid": "d7ab6f6b-e554-5f3a-bf7a-a0cebb399712", "url": "https://pretalx.com/pyconuk-2025/speaker/DSPAWP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/WHLYGZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/WHLYGZ/", "attachments": []}, {"guid": "ab28814e-d064-5e71-9869-485bd4d1af78", "code": "FXABJ8", "id": 68355, "logo": null, "date": "2025-09-20T11:30:00+01:00", "start": "11:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-68355-principle-misunderstandings", "url": "https://pretalx.com/pyconuk-2025/talk/FXABJ8/", "title": "Principle Misunderstandings", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "For developers who want to improve their art there's no shortage of published, promoted and proclaimed principles they can choose from to shape their style and craft their style. In this talk we'll take a look a few, highlighting the real lessons we can apply to our code.", "description": "For developers who want to improve their art there's no shortage of published, promoted and proclaimed principles they can choose from to shape their style and craft their style. Whether it's the alphabet soup of SOLID principles or old school classics like Information Hiding and the Separation of Concerns, there's a lot of advice out there. Some of it even makes sense. And some of it is well supported. But a lot of principles are misunderstood, misapplied or simply mistaken.\r\n\r\nIn this talk we'll take a look (and take down) a few principles, highlighting the real lessons we can apply to our code \u2014 lessons supported by sound rationale rather than just strong opinions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "M7PJR8", "name": "Kevlin Henney", "avatar": "https://pretalx.com/media/avatars/M7PJR8_GG1ZGq4.webp", "biography": "Kevlin Henney is an independent consultant, speaker, writer and trainer. He is a contributor to the _Modern Software Engineering_ YouTube channel. Kevlin is co-author of _A Pattern Language for Distributed Computing_ and _On Patterns and Pattern Languages_, two volumes in the _Pattern-Oriented Software Architecture_ series. He is also editor of _97 Things Every Programmer Should Know_ and co-editor of _97 Things Every Java Programmer Should Know_.", "public_name": "Kevlin Henney", "guid": "3c0aa014-ebb7-5fc3-bc85-2b0c22b02580", "url": "https://pretalx.com/pyconuk-2025/speaker/M7PJR8/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/FXABJ8/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/FXABJ8/", "attachments": []}, {"guid": "936b4c26-38d4-5e56-ad77-b9df799fd8b6", "code": "UJJFRE", "id": 70458, "logo": null, "date": "2025-09-20T12:00:00+01:00", "start": "12:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70458-using-python-to-help-with-my-spelling-tests", "url": "https://pretalx.com/pyconuk-2025/talk/UJJFRE/", "title": "Using Python to help with my spelling tests", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A third of London's population is foreign-born. The children of immigrants often learn English as an additional language. It can be challenging for non-native speakers to practice English spelling with their children. This talk will show how Python can support them in effectively practising British English spelling.", "description": "This talk will illustrate how my 8-year-old daughter and I used Python to:\r\n1. Identify the words listed in her weekly spelling assignment given by the teacher on a piece of paper;\r\n2. Use publically available data to convert those words to British pronunciation;\r\n3. Make the audio available for her to practice for her spelling test.\r\n4. How did this help in her tests", "recording_license": "", "do_not_record": false, "persons": [{"code": "GCTVN9", "name": "Tatiana Al-Chueyr", "avatar": "https://pretalx.com/media/avatars/GCTVN9_V8poUvJ.webp", "biography": "Tatiana is a Principal Software Engineer at Astronomer and builds open-source tools to improve Apache Airflow. Since graduating in Computer Engineering at Unicamp, Brazil, she has worked on multiple projects and contributed to various open-source projects. Before working at Astronomer, she worked for the Brazilian Ministry of Science and Technology, Globo, Education First, and the BBC.", "public_name": "Tatiana Al-Chueyr", "guid": "dedb30f5-9d0c-5f79-a66f-1eba0e96ee24", "url": "https://pretalx.com/pyconuk-2025/speaker/GCTVN9/"}, {"code": "8ZGVFH", "name": "Amanda Al-Chueyr", "avatar": "https://pretalx.com/media/avatars/8ZGVFH_rAduHxu.webp", "biography": "Amanda is an 8-year-old in Year 3 at the Anglo-Portuguese School of London. She has supported her mum since she was less than one year old in conferences in Brazil, Ukraine and the United Kingdom. She loves cycling, music and maths.", "public_name": "Amanda Al-Chueyr", "guid": "3cc5786d-d427-5ea1-b4e3-43cf6baa0488", "url": "https://pretalx.com/pyconuk-2025/speaker/8ZGVFH/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/UJJFRE/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/UJJFRE/", "attachments": []}, {"guid": "da22cc11-21d7-5103-bde2-2de6744ced2f", "code": "XBM3C7", "id": 70088, "logo": null, "date": "2025-09-20T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70088-why-your-async-code-might-be-slower-and-how-to-fix-it", "url": "https://pretalx.com/pyconuk-2025/talk/XBM3C7/", "title": "Why Your Async Code Might Be Slower \u2014 and How to Fix It", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Asyncio has become one of Python\u2019s most popular libraries for writing fast, scalable applications. But sometimes, using async can actually make programs slower.\r\nThis talk explores common asyncio mistakes, how misunderstanding I/O-bound vs. CPU-bound tasks hurts performance, and practical patterns for writing efficient async code.", "description": "Asyncio has become one of Python\u2019s most popular libraries for building fast, scalable applications. But when used incorrectly, it can actually make programs slower.\r\n\r\nIn this talk, we\u2019ll explore common mistakes developers make with asyncio, especially when they misunderstand the difference between I/O-bound and CPU-bound operations. You\u2019ll learn how misusing async can degrade performance, and how to avoid these issues through real-world examples.\r\n\r\nWe\u2019ll begin with a quick recap of how asyncio works under the hood, then dive into examples that demonstrate both good and bad use cases. You\u2019ll see the kinds of problems asyncio solves well and where it falls short.\r\n\r\nBy the end of this session, you\u2019ll be able to:\r\n- Understand how asyncio works and when to use it\r\n- Clearly distinguish between I/O-bound and CPU-bound tasks\r\n- Apply asyncio properly for high-concurrency workloads\r\n- Identify and avoid async \u201canti-patterns\u201d in real projects\r\n- Choose the right concurrency model for your workload - asyncio, threading, or multiprocessing", "recording_license": "", "do_not_record": false, "persons": [{"code": "UGCAQE", "name": "Aastha", "avatar": "https://pretalx.com/media/avatars/UGCAQE_fLZdZH5.webp", "biography": "Aastha is a Software Engineer at Bloomberg in London, where she works on scalable search systems for the company\u2019s AI-powered research platform, Document Search (or DS <GO>). She has been using Python for over six years and loves applying it to real-world problems. Outside of work, you\u2019ll find her playing badminton, running, or exploring hiking trails.", "public_name": "Aastha", "guid": "6499a9ab-6204-5549-b9ef-2ea94c0ca977", "url": "https://pretalx.com/pyconuk-2025/speaker/UGCAQE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/XBM3C7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/XBM3C7/", "attachments": []}, {"guid": "516857ed-44f8-59a1-afad-0fa2c52221cf", "code": "TCPF8H", "id": 67764, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/TCPF8H/brownian_motion_with_dr_SRpS2UV.png", "date": "2025-09-20T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-67764-bringing-randomness-to-life-building-a-python-tool-to-tell-stories-about-stochastic-processes", "url": "https://pretalx.com/pyconuk-2025/talk/TCPF8H/", "title": "Bringing Randomness to Life: Building a Python tool to tell stories about stochastic processes", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How do you explain stochastic processes without equations? You show (plot) them! \r\nIn this talk, I\u2019ll share my experience facing this question and how it led me to build a Python tool to visualise\u00a0stochastic processes in a way that builds understanding and communicates behaviour intuitively.", "description": "Stochastic processes might sound like an abstract mathematical concept, but they\u2019re all around us\u2014from finance and physics to seismology and epidemiology. To work with them effectively, we need tools that not only help us understand their behaviour but also communicate their dynamics clearly and intuitively.\r\n\r\nIn this talk, I\u2019ll introduce stochastic processes from a practical perspective, emphasising the role of visualisation as both a tool for gaining insight and for communicating complex ideas. I\u2019ll draw on my experience in two very different but equally relevant contexts:\r\n* As an analyst in the financial industry, I often need had to explain complex models to stakeholders who are far more interested in building intuitive narratives than in mathematical formulae.\r\n* As an educator, I\u2019ve seen the value of visual tools in helping students to build intuition and understanding without getting lost in equations.\r\n\r\nThe talk will follow the journey from a single exploratory plot\u2014created with Matplotlib, NumPy, SciPy, and a lot of trial-and-error\u2014to the development of\u00a0aleatory, a Python library for generating beautiful and insightful visualisations of stochastic processes. Along the way, I\u2019ll show how a single visualisation can evolve into a broader framework for telling compelling stories with randomness.\r\n\r\nWe\u2019ll explore how to simulate and visualise a variety of classic stochastic processes, including random walks, Brownian motion, Poisson processes, and Ornstein\u2013Uhlenbeck models. More importantly, we\u2019ll look at how to bring these processes to life using key visual elements \u2014such as mean paths to show central tendencies, probability envelopes to express uncertainty, and histograms or densities of final values to show convergence or variability. These features help highlight behaviours like mean reversion, long-term drift, or volatility, turning mathematical abstractions into visual stories that resonate.\r\n\r\nThis talk is for Python developers working with stochastic simulations, educators teaching subjects like probability, statistics or quantitative modelling; data communicators explaining uncertainty to non-technical audiences, and anyone curious about how code can make randomness understandable. Whether you\u2019re teaching, researching, or communicating with stakeholders, Aleatory gives you a way to turn simulations into stories\u2014no stochastic differential equations required. Basic familiarity with Python is assumed, but no prior experience with simulating stochastic processes is necessary.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LEEJXA", "name": "Dialid Santiago", "avatar": "https://pretalx.com/media/avatars/LEEJXA_ZocqRYm.webp", "biography": "Dialid is a mathematician and a developer with 9 years of experience as a Quant, currently working in the Front Office Quant team at Bank of America.  Her expertise lies in building mathematical models for pricing and risk management, primarily in Python and C++.\r\n\r\nShe holds a PhD in Statistics from the University of Warwick, where she focused on non-linear stochastic processes, as well as an MSc and BSc in Applied Mathematics from Mexico. \r\n\r\nOutside of work, Dialid enjoys creating open-source projects and writing about financial mathematics, programming, statistics, and data visualisation.", "public_name": "Dialid Santiago", "guid": "abd3fb8b-b8e4-5771-951f-f43ada04b596", "url": "https://pretalx.com/pyconuk-2025/speaker/LEEJXA/"}], "links": [{"title": "Gallery of Stochastic Processes", "url": "https://aleatory.readthedocs.io/en/latest/auto_examples/index.html", "type": "related"}, {"title": "Documentation", "url": "https://aleatory.readthedocs.io/en/latest/index.html", "type": "related"}, {"title": "Personal Site", "url": "https://dialidsantiago.com/", "type": "related"}, {"title": "GitHub Repo", "url": "https://github.com/quantgirluk/aleatory", "type": "related"}, {"title": "Advent Calendar of Stochastic Processes", "url": "https://quantgirluk.github.io/advent-calendar-2024/", "type": "related"}], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/TCPF8H/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/TCPF8H/", "attachments": []}, {"guid": "615697d3-1ad4-5a34-adfb-4db8a9e366ee", "code": "WPJZ9F", "id": 81759, "logo": null, "date": "2025-09-20T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-81759-exploring-the-cpython-jit", "url": "https://pretalx.com/pyconuk-2025/talk/WPJZ9F/", "title": "Exploring the CPython JIT", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "I\u2019ll explore CPython\u2019s new Just-In-Time (JIT) compiler in Python 3.14. We\u2019ll cover how JIT works, its performance improvements, and my contributions to the project. Attendees will learn how to enable the JIT, apply it in real applications, and engage with open-source Python development.", "description": "In this talk, we will explore the world of Just-In-Time (JIT) compilation within the CPython interpreter. As Python continues to grow in popularity, performance enhancements are crucial to meet the demands of modern applications. The new CPython JIT implementation represents a tool for pushing Python's performance forward in a scalable, maintainable way.\r\n\r\nI will start by exploring the mechanics of JIT compilation, explaining how it differs from traditional interpretation. Next, I will provide an overview of the current state of the CPython JIT in Python 3.14, highlighting its latest advancements and performance improvements. I will also briefly touch on my personal contributions to this project. By sharing these insights, I aim to inspire others to engage with open-source projects and contribute to the ongoing innovation within the Python ecosystem.\r\n\r\nFinally, we will discuss practical applications of the CPython JIT and how you can enable it in your applications. Attendees will gain a clear understanding of how the JIT dynamically translates Python code into machine code at runtime using the CPython 3.14 implementation as reference and will learn how to use the JIT on their own Python applications.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QGT73L", "name": "Diego Russo", "avatar": "https://pretalx.com/media/avatars/QGT73L_fGv1OO2.webp", "biography": "Diego Russo is a Python Core Developer and a Principal Software Engineer in the runtimes team at Arm Ltd. A Python user since 2006, he began contributing actively to the Python community in 2023. Diego is also a EuroPython organiser since 2022 and leads the Arm Python Guild, an internal developer community with over 1,400 members. He focuses on enabling cross-platform development, improving developer workflows, and helping open-source projects scale to Arm-native architectures.", "public_name": "Diego Russo", "guid": "90e32ab7-212d-50f6-91e7-fefada066132", "url": "https://pretalx.com/pyconuk-2025/speaker/QGT73L/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/WPJZ9F/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/WPJZ9F/", "attachments": []}, {"guid": "052ee2af-618f-5785-8c97-bc89527882ae", "code": "VFEDGV", "id": 70216, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/VFEDGV/Screenshot_from_2025-05_ysCwRV9.png", "date": "2025-09-20T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70216-raspberry-pis-crime-and-the-cia-triad", "url": "https://pretalx.com/pyconuk-2025/talk/VFEDGV/", "title": "Raspberry Pis, Crime and the CIA Triad", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We all know we should back up our data, but how do we know the back up is really going to work?\r\n\r\nThis talk explores how a Raspi powered, open source, peer to peer file backup system beat the competition through two drive disasters in one month.", "description": "Backing up data is conceptually very simple. When it comes to implementing a backup system however, the pressure is on and the options are endless.\r\n\r\nIn this talk, we say no to analysis paralysis and get into the details that matter. First, we will define the technical attributes of a backup system then, how these attributes matter on a human level before and throughout a data loss event.\r\n\r\nFor this case study, I draw from my own experience having two data loss events in October 2024, one from drive failure and another from burglary. That's right, it's time to get physical, as we dive into how I was the victim of a physical security breach and an information security failure within the same month and how my Sunday Raspi Syncthing project saved me not once, but twice.\r\n\r\nSyncthing is an open source peer to peer file syncing software that backs data up by replicating files across multiple computers. It is decentralized, open source and works on a set and forget basis. \r\n\r\nFor me, this was initially a nifty way to minimize friction when changing work station. In a data loss event however, it became so much more, challenging my expectations of what a data backup solution is and how it should work.\r\n\r\nCome along and see if a Syncthing Raspi node might be the missing link in your own data resilience strategy. Whether you're safeguarding code, memories, or mission-critical documents, this talk will give you practical tools, lessons learned the hard way, and maybe even a little inspiration to rethink what \u201cbacked up\u201d really means.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YNYJ83", "name": "Kane Swartz", "avatar": "https://pretalx.com/media/avatars/YNYJ83_JbyvYuj.webp", "biography": "Kane Swartz is a Software Develop who specializes in Machine Learning Development Operations.\r\n\r\nKane's driven by creating human value with technology and helping others empower and express themselves in the digital realm.", "public_name": "Kane Swartz", "guid": "3e6480a3-117c-5bd8-a06c-32855fb6ee71", "url": "https://pretalx.com/pyconuk-2025/speaker/YNYJ83/"}, {"code": "TMBBNA", "name": "Jack Travis", "avatar": "https://pretalx.com/media/avatars/TMBBNA_a6RnDcA.webp", "biography": "Hello,\r\n\r\nI'm a software engineer and long time community manager. There's a lot to experience in life and I'd like everyone possible to be able to do so.\r\n\r\nCurrently developing software to assist students with accessibility needs and created a still-thriving LGBT+ community at the University of Portsmouth.", "public_name": "Jack Travis", "guid": "ff1028a9-62d1-5984-955c-2dd4393366f6", "url": "https://pretalx.com/pyconuk-2025/speaker/TMBBNA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/VFEDGV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/VFEDGV/", "attachments": []}], "Space 3": [{"guid": "c8f9ced9-d5d2-593b-9054-48c1f9b153a2", "code": "NAMWQH", "id": 66311, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/NAMWQH/Screenshot_2025-03-11_a_RMAPPrX.png", "date": "2025-09-20T09:00:00+01:00", "start": "09:00", "duration": "00:45", "room": "Space 3", "slug": "pyconuk-2025-66311-art-with-character-s-make-your-own-ascii-art-with-python", "url": "https://pretalx.com/pyconuk-2025/talk/NAMWQH/", "title": "Art with character(s): Make your own ASCII art with Python", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "This workshop covers the history of ASCII art and walks through how to make your own ASCII art images using Python. The session is light in tone and differentiated for students of different abilities with challenges for advanced students and step by step instructions for first time programmers.", "description": "Come along to this workshop for a short talk about what ASCII art is and its history, an interactive tutorial of how you can use Python and Pillow to take images from the internet and your webcam and turn them into ASCII art, and an opportunity to show off your new skills by building something cool.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DYTMCM", "name": "Hugh Evans", "avatar": "https://pretalx.com/media/avatars/DYTMCM_Kd5bXgn.webp", "biography": "Hi, I'm Hugh.\r\n\r\nI'm an experienced developer advocate and community manager with a particular interest in data and AI. I have been working in IT for over 5 years, working on large scale software projects and cloud infrastructure.\r\n\r\nOut of office hours I organise AI and Deep Learning for Enterprise (aidle.uk) , a Meetup group which hosts talks on real world applications of AI.\r\n\r\nI'm a former apprentice and an advocate for vocational learning as a pathway into an IT career.", "public_name": "Hugh Evans", "guid": "99eaeb11-b5bd-56be-9d9e-f7f601cd26aa", "url": "https://pretalx.com/pyconuk-2025/speaker/DYTMCM/"}], "links": [{"title": "Workshop Materials", "url": "https://github.com/hevansDev/ascii-booth", "type": "related"}], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/NAMWQH/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/NAMWQH/", "attachments": []}, {"guid": "9e977447-b7b9-55d4-b9bb-944563224c40", "code": "EVMJDX", "id": 81743, "logo": null, "date": "2025-09-20T10:00:00+01:00", "start": "10:00", "duration": "00:45", "room": "Space 3", "slug": "pyconuk-2025-81743-make-a-splat-a-cat-game-with-pygamezero", "url": "https://pretalx.com/pyconuk-2025/talk/EVMJDX/", "title": "Make a Splat-a-cat Game With PyGameZero", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "Make a splat-a-cat game with PyGameZero", "description": "A gentle introduction to pygame zero", "recording_license": "", "do_not_record": false, "persons": [{"code": "EWRKHR", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/EWRKHR_Rhz4Y2X.webp", "biography": "Ben is a senior software engineer at the BBC, and was previously community manager at the Raspberry Pi Foundation. He's the creator of several Python projects such as gpiozero, piwheels and pyjokes. He's written countless articles and tutorials on Python and all things open source, and has given dozens of talks at Python conferences.", "public_name": "Ben Nuttall", "guid": "d303f50c-470c-520b-bb36-53d892efd20b", "url": "https://pretalx.com/pyconuk-2025/speaker/EWRKHR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/EVMJDX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/EVMJDX/", "attachments": []}, {"guid": "1eab33c2-d094-5b2f-814f-e340511608bb", "code": "Y9GNDW", "id": 69492, "logo": null, "date": "2025-09-20T11:00:00+01:00", "start": "11:00", "duration": "00:45", "room": "Space 3", "slug": "pyconuk-2025-69492-introduction-to-hedy", "url": "https://pretalx.com/pyconuk-2025/talk/Y9GNDW/", "title": "Introduction to Hedy", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "The transition from visual programming to textual programming can often be difficult as students struggle with both programming concepts and syntax. This session will introduce the Hedy platform which has been designed to make the introduction to textual programming to be a fun and rewarding activity.", "description": "Many schools and teachers around the world want to teach their students programming. Initially this is often done with playful tools, ranging from the Bee-Bot robot to Scratch. After using such tools, students need to move to more powerful, real-world textual programming languages, like Python so they can create games or other applications.\r\n\r\nPython however is hard, because it requires learners to learn complex programming concepts and syntax at once. Hedy overcomes this by providing a platform to allow students to explore concepts in a simple and fun way. Hedy is free to use, open source, and does not require any software to be installed on the device. Some key features include:\r\n\r\n- Hedy is gradual, so you can learn one concept and its syntax a time\r\n- Hedy is built for the classroom, allowing teachers to fully customize their student's experience\r\n- Hedy is multi-lingual, you can use Hedy in your own language", "recording_license": "", "do_not_record": false, "persons": [{"code": "ERZXBC", "name": "Anthony Harrison", "avatar": "https://pretalx.com/media/avatars/ERZXBC_AWW5dRJ.webp", "biography": "Anthony Harrison has been developing and delivering mission-critical applications for over 40 years  where he held various roles in software, systems and cyber engineering.\r\n\r\nHe is the Founder and Director of APH10, and co-founder of SBOM Europe, and is a leading source of expertise in Software Bill of Materials (SBOM) and has been developing open source software actively for many years, particularly related to securing the software supply chain.\r\n\r\nHe is a mentor for the Google Summer of Code for the Python Software Foundation and Manchester CoderDojo teaching students Python.", "public_name": "Anthony Harrison", "guid": "dd14a003-1d4d-5554-990e-97218b1c7a28", "url": "https://pretalx.com/pyconuk-2025/speaker/ERZXBC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/Y9GNDW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/Y9GNDW/", "attachments": []}, {"guid": "7d9054c4-e812-5ac2-8f94-8fbea0ad1ccd", "code": "UQGRSR", "id": 70006, "logo": null, "date": "2025-09-20T14:00:00+01:00", "start": "14:00", "duration": "00:45", "room": "Space 3", "slug": "pyconuk-2025-70006-code-a-satellite", "url": "https://pretalx.com/pyconuk-2025/talk/UQGRSR/", "title": "Code a Satellite", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "Program a model satellite using a BBC micro:bit - you will send data to 'ground control' to identify any problems with your satellite - is it receiving enough energy from the sun or do you need to conserve power? Does it need a course correction?", "description": "Use a variety of inputs and outputs on a BBC micro:bit, and write a Python program to model a satellite. We will send information between micro:bits using the radio functions, and consider how to conserve solar power or check that your satellite is not accelerating out of its orbit! What data would be most important to send back to scientists on Earth?", "recording_license": "", "do_not_record": false, "persons": [{"code": "HP79EZ", "name": "Sarah Townson", "avatar": "https://pretalx.com/media/avatars/HP79EZ_quBmwqH.webp", "biography": "I ran coding/computing/technology/making workshops at Science Oxford for over 8 years, working with young people, family groups, community groups and teachers.\r\n\r\nI'm not a Python expert, but I love teaching it as it's an extremely accessible programming language!\r\n\r\nOutside of work, my main obsessions are tea, fighting robots, and Star Trek: Deep Space Nine.", "public_name": "Sarah Townson", "guid": "4a99fc3f-a290-52be-bfa1-ed9906a41479", "url": "https://pretalx.com/pyconuk-2025/speaker/HP79EZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/UQGRSR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/UQGRSR/", "attachments": []}, {"guid": "360a3ffe-156d-5c12-82bb-b8bec1770b70", "code": "ZQYD9L", "id": 70328, "logo": null, "date": "2025-09-20T15:00:00+01:00", "start": "15:00", "duration": "00:45", "room": "Space 3", "slug": "pyconuk-2025-70328-code-a-program-that-notifies-you-when-the-international-space-station-is-up-above", "url": "https://pretalx.com/pyconuk-2025/talk/ZQYD9L/", "title": "Code a program that notifies you when the International Space Station is up above!", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "Using the power of Application Programming Interfaces (APIs) in Python, we'll explain how you can create a program to send you an email when the International Space Station is above you.", "description": "You don't need to have any prior knowledge about what APIs are or how they work; we'll explain all of this to you in the session and answer any questions you may have.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PN3USX", "name": "Harry Wake", "avatar": "https://pretalx.com/media/avatars/PN3USX_vwC9Rcr.webp", "biography": "Harry Wake is a student and the co-founder of Mission Encodeable: a not-for-profit website that aims to inspire future computer scientists, through providing free Python coding tutorials.", "public_name": "Harry Wake", "guid": "ab90e402-ea4a-5997-97dd-29bf009fc911", "url": "https://pretalx.com/pyconuk-2025/speaker/PN3USX/"}, {"code": "UGEP9G", "name": "Anna Wake", "avatar": "https://pretalx.com/media/avatars/UGEP9G_FvUDXNY.webp", "biography": "Anna Wake is a student and the co-founder of Mission Encodeable: a not-for-profit website that aims to inspire future computer scientists, through providing free Python coding tutorials.", "public_name": "Anna Wake", "guid": "7a387d66-1740-5859-9607-9ca70972e5f2", "url": "https://pretalx.com/pyconuk-2025/speaker/UGEP9G/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/ZQYD9L/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/ZQYD9L/", "attachments": []}, {"guid": "53715fa2-fe46-5840-b8dd-6adb07678cf7", "code": "9JTLW3", "id": 79184, "logo": null, "date": "2025-09-20T15:45:00+01:00", "start": "15:45", "duration": "00:40", "room": "Space 3", "slug": "pyconuk-2025-79184-young-coders-demo-preparation", "url": "https://pretalx.com/pyconuk-2025/talk/9JTLW3/", "title": "Young Coders - demo preparation", "subtitle": "", "track": "Young Coders", "type": "Young Coders Event", "language": "en", "abstract": "Young Coders - demo preparation", "description": "Young Coders - demo preparation", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/9JTLW3/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/9JTLW3/", "attachments": []}], "Space 4": [{"guid": "67c4a6e7-30c0-5b65-8b7f-6058d5256bee", "code": "SQVYLB", "id": 75859, "logo": null, "date": "2025-09-20T09:00:00+01:00", "start": "09:00", "duration": "08:00", "room": "Space 4", "slug": "pyconuk-2025-75859-django-girls", "url": "https://pretalx.com/pyconuk-2025/talk/SQVYLB/", "title": "Django Girls", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Django Girls", "description": "Django Girls", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SQVYLB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SQVYLB/", "attachments": []}]}}, {"index": 3, "date": "2025-09-21", "day_start": "2025-09-21T04:00:00+01:00", "day_end": "2025-09-22T03:59:00+01:00", "rooms": {"Main stage": [{"guid": "504c23f8-5d09-5757-8551-f6c770886312", "code": "ZFH7PN", "id": 74364, "logo": null, "date": "2025-09-21T09:00:00+01:00", "start": "09:00", "duration": "00:15", "room": "Main stage", "slug": "pyconuk-2025-74364-welcome-sunday", "url": "https://pretalx.com/pyconuk-2025/talk/ZFH7PN/", "title": "Welcome Sunday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Welcome Sunday", "description": "Welcome Sunday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/ZFH7PN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/ZFH7PN/", "attachments": []}, {"guid": "8b0259c1-280b-50a2-a575-513adefb83b1", "code": "VWW37U", "id": 78488, "logo": null, "date": "2025-09-21T09:15:00+01:00", "start": "09:15", "duration": "01:00", "room": "Main stage", "slug": "pyconuk-2025-78488-playing-the-long-game", "url": "https://pretalx.com/pyconuk-2025/talk/VWW37U/", "title": "Playing the long game", "subtitle": "", "track": "Keynote", "type": "Keynote", "language": "en", "abstract": "We are in uncharted territory.  LLM based tools are everywhere, but they are hard to reason about - there is a lot of hype, a lot of noise, and very little signal. We, as individuals and as a community, need to adapt to a future that is very hard to envision.", "description": "We are in uncharted territory -   LLMs and \"AI\" based tools are everywhere, embedded in so much of what we do, but they are not well-understood by most. If you try to get your head around what is possible with these things then you are faced with a barrage of marketing-speak and ill-informed hype. There is some signal in the noise but it's very hard to stay on top of.\r\n\r\nTechnical folks struggle to find the signal in the noise, and many business brains get swept away by the hype (and by Zuckerberg's aspirational announcements... thanks Zuk). There are a few common archetypes that have emerged: \r\n\r\nThere's the AI-ate-my-job developer, the one-with-the-vibe junior, the embrace-ai-or-get-out CEO, the cathedral-building anti-slop senior, the vc-funding-focused entrepreneur, the not-on-my-watch IT gatekeeper. There are also people who seem to be doing things very sensibly, but it worth looking closely at the extremes - there are a lot of pitfalls to avoid, and wisdom to be adapted and adopted (#steal-like-an-engineer). \r\n\r\nThere are clear benefits to fast iteration and quick prototypes, and adopting LLM tools on complex brown-field projects often has mixed results. It's worth knowing about the (shifting) limitations of these tools, and the emerging best practices (which often look a lot like the best practices that emerged in the before-times). It is worthwhile to deeply consider safety-nets and guard-rails as we lean on these tools, we need to iterate on our approach to engineering rather than focusing on writing more code faster (LOC is a bad measure of productivity, we know this!)\r\n\r\nThe other thing we really need to think about and solve for as a community is: how do we play the long game. I'm pretty convinced that we will still need human software engineers for a long time to come, and good ones at that. Skill comes from experience and the junior developer job market is a bit of a dog show. \r\n\r\nHow should junior devs prepare for the future? And how should organisations adapt so that they have people that they can rely on 5 years from now? I have some opinions...", "recording_license": "", "do_not_record": false, "persons": [{"code": "9SHKKN", "name": "Sheena", "avatar": "https://pretalx.com/media/avatars/9SHKKN_Jsm9vQm.webp", "biography": "I started off working as a software engineer and technical leader across multiple startups. I then spent 5+ years in tech education.\r\n\r\nOver the last half decade I have had the opportunity to work in the non-profit space and build alternative education systems from the ground up. The measure of success was employment - 95%+ of the students got good jobs, kept them, and got promoted. Getting this right meant understanding the hiring landscape. \r\n\r\nI since founded Prelude.tech. Here I distill everything I have learned about teaching well. Prelude primarily focuses on advanced Python applications and critical soft-skills.", "public_name": "Sheena", "guid": "6be2d568-58c9-5910-8912-928b718d6ba8", "url": "https://pretalx.com/pyconuk-2025/speaker/9SHKKN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/VWW37U/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/VWW37U/", "attachments": []}, {"guid": "a6b6a778-d6f0-560c-9d86-18af0d18e974", "code": "RLB8HA", "id": 74361, "logo": null, "date": "2025-09-21T10:15:00+01:00", "start": "10:15", "duration": "00:15", "room": "Main stage", "slug": "pyconuk-2025-74361-uk-python-association-agm", "url": "https://pretalx.com/pyconuk-2025/talk/RLB8HA/", "title": "UK Python Association AGM", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "UK Python Association AGM", "description": "UK Python Association AGM", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/RLB8HA/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/RLB8HA/", "attachments": []}, {"guid": "31d65a1f-0d55-54bf-8771-ca2829ed9c93", "code": "NQXQTV", "id": 70256, "logo": null, "date": "2025-09-21T11:00:00+01:00", "start": "11:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70256-oh-no-your-project-became-really-popular", "url": "https://pretalx.com/pyconuk-2025/talk/NQXQTV/", "title": "Oh no! Your project became really popular!", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "With great growth comes great responsibility. But you aren\u2019t expected to navigate that growth without making significant changes. Let\u2019s talk about all the options so you can come out the other side with the best possible outcome for your project and yourself.", "description": "If you\u2019re lucky, then your project\u2019s growth is slow and steady and you have plenty of time to gracefully accommodate more users. If you\u2019re really lucky then your project could experience a lot of growth in a short amount of time, but this can create its own, er, challenges. In this talk, we\u2019ll discuss strategies for handling rapid growth \u2013 including big changes, letting more people help you and letting some things go altogether. \r\n\r\nWith great growth comes great responsibility. But you aren\u2019t expected to navigate that growth without making significant changes. Let\u2019s talk about all the options so you can come out the other side with the best possible outcome for your project and yourself.", "recording_license": "", "do_not_record": false, "persons": [{"code": "V87XYK", "name": "Deb Nicholson", "avatar": "https://pretalx.com/media/avatars/V87XYK_nNCuWdi.webp", "biography": "Deb Nicholson is the Executive Director at the Python Software Foundation, the non-profit steward of the Python programming language. She has previously served the open source ecosystem through her work at the Open Source Initiative, Software Freedom Conservancy, and the Open Invention Network. She lives with her husband and her lucky black cat in Cambridge, Massachusetts.", "public_name": "Deb Nicholson", "guid": "2321a9af-22d4-54cb-aa9e-6ba83d94f4f5", "url": "https://pretalx.com/pyconuk-2025/speaker/V87XYK/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/NQXQTV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/NQXQTV/", "attachments": []}, {"guid": "1317b779-0da8-55b1-af5c-4aa00396ad39", "code": "NRAJ3N", "id": 68784, "logo": null, "date": "2025-09-21T11:30:00+01:00", "start": "11:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-68784-python-for-humans-designing-python-code-like-a-user-interface", "url": "https://pretalx.com/pyconuk-2025/talk/NRAJ3N/", "title": "Python for Humans - Designing Python Code Like a User Interface", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What if we wrote Python the way designers build user interfaces? This talk explores how UI/UX design principles\u2014like layout, labeling, affordances, and visual hierarchy\u2014can help you write Python that\u2019s intuitive to read, easy to navigate, and built with real users in mind.", "description": "In a team setting, your Python code is more than instructions for machines\u2014it\u2019s an interface your teammates will interact with, maintain, and extend. This talk draws on UI/UX design principles to help you write Python that\u2019s more discoverable, readable, and user-friendly.\r\n\r\nOver time, I\u2019ve found that some of the biggest time sinks in collaborative development come from code that\u2019s hard to revisit\u2014whether it was written by a teammate or by me. It\u2019s frustrating (and sometimes embarrassing) to open an old file I wrote and struggle to remember what it was doing or why. This talk shares design-inspired practices that have helped me write Python that\u2019s easier to return to, share, and scale across teams.\r\n\r\nWe\u2019ll explore how concepts from interface design\u2014like visual hierarchy, layout, progressive disclosure, and affordances\u2014can guide how you name functions, structure files, and write signatures that act like intuitive forms. You\u2019ll learn how readers scan code top-down like users scan a web page, and how to optimize your code\u2019s structure so teammates can navigate through it just like a clean interface.\r\n\r\nWe\u2019ll cover:\r\n* Why top-level structure is like layout design\u2014and how __init__.py, __main__, and grouping logic improve scannability\r\n* Why naming is like labeling in UI\u2014clear, specific names help with navigation, tool-assisted discovery, and LLM code generation\r\n* How vertical spacing and indentation in Python can mimic visual grouping and signal intent\r\n* How decorators and type hints act like collapsible sections and labeled form fields, abstracting noise and clarifying usage\r\n* Why tools like black, ruff, and Pylance are like automated accessibility checkers, enforcing consistency and clarity at scale\r\n* When to apply design restraint\u2014because cleverness, like parallax scrolling in 2015, often ages poorly\r\n\r\nThis talk isn\u2019t about following a style guide\u2014it\u2019s about adopting a mindset: treating your codebase like a user experience. You\u2019ll leave with real, beginner-friendly strategies and a new lens for writing impactful Python that others can read, trust, and extend\u2014just like good UI.\r\n\r\nNo design background needed\u2014just curiosity, empathy, and the desire to write Python you won\u2019t dread revisiting.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3A8FQL", "name": "Justin Lee", "avatar": "https://pretalx.com/media/avatars/3A8FQL_BNUKsWK.webp", "biography": "Justin Lee is a software engineer at Notion, where he builds AI and data infrastructure. He\u2019s worked across startups and larger companies designing scalable systems, and teaches infrastructure and system architecture through several Udacity nanodegree programs. He enjoys mentoring engineers, consulting for companies on system architecture, and exploring better ways to deploy and maintain Python in production.", "public_name": "Justin Lee", "guid": "6c02163a-7960-580e-acf5-139d653c1b87", "url": "https://pretalx.com/pyconuk-2025/speaker/3A8FQL/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/NRAJ3N/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/NRAJ3N/", "attachments": []}, {"guid": "dac34971-819d-5086-9a6e-9dc33e97fb41", "code": "JGK78G", "id": 70443, "logo": null, "date": "2025-09-21T12:00:00+01:00", "start": "12:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70443-from-student-to-maintainer-how-mentorship-programs-sustain-django-and-wagtail", "url": "https://pretalx.com/pyconuk-2025/talk/JGK78G/", "title": "From student to maintainer: how mentorship programs sustain Django and Wagtail", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In 2018, I was a student in Indonesia, learning Django at my university. Today, I maintain Wagtail CMS as a full-time job at Torchbox in the UK. Here's my journey and how mentorship programs like Google Summer of Code (GSoC) and Outreachy help sustain open source communities.", "description": "My journey began with a curious hack: creating a custom JSONField in [Django](https://djangoproject.com) to meet the deadline of a university assignment. That led to me applying for GSoC 2019 with Django. With mentorship from veteran contributors, I spent a summer building the cross-database JSONField that would later ship in Django 3.1.\r\n\r\nThat was the beginning. GSoC gave me confidence, visibility, and skills. As a developer, and as a contributor to a global community. It unlocked the opportunity to work on [Wagtail CMS](https://wagtail.org) (an open source project) as a full-time job after graduating from university, allowing me to move to the UK in the process. I\u2019ve since gone on to mentor others through GSoC and Outreachy, helping the next waves of Django and Wagtail contributors succeed.\r\n\r\nThese mentorship programs can also be a lifeline for open source projects. They help turn curious users into committed contributors, and sometimes, into future maintainers. Django and Wagtail are thriving today in part because of the energy and diversity brought in through GSoC, Outreachy, and newer initiatives like Djangonaut Space.\r\n\r\nIn this talk, I\u2019ll share:\r\n\r\n- How mentorship programs helped me go from a student to a maintainer\r\n- What makes mentorship programs successful, from both mentor and mentee perspectives\r\n- How open source projects can make the most of these programs\r\n- Why sustained, inclusive mentorship is one of the most impactful ways to keep projects like Django and Wagtail alive\r\n\r\nThis talk is both a story and a call to action. I want open source projects in the Python ecosystem to be sustainable with new contributors who step up and become maintainers. If open source sustainability is in your interests, I hope you\u2019ll join this conversation.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VMFD7N", "name": "Sage Abdullah", "avatar": "https://pretalx.com/media/avatars/VMFD7N_bPnGAd3.webp", "biography": "In 2019, I participated in Google Summer of Code with Django, during which I implemented the [cross-database `JSONField`](https://docs.djangoproject.com/en/stable/ref/models/fields/#jsonfield) that became available in Django 3.1. Now, I work as a Developer at Torchbox, building new features and improvements to the Django-based [Wagtail CMS](https://wagtail.org) and its ecosystem.\r\n\r\nOutside of the Django world, I maintain my project [giscus](https://giscus.app), a comment system powered by GitHub Discussions. You can find me @laymonage on [GitHub](https://github.com/laymonage), [Fosstodon](https://fosstodon.org/@laymonage), and other sites.", "public_name": "Sage Abdullah", "guid": "17b6e403-e8e3-5af3-872e-fef37a9c712b", "url": "https://pretalx.com/pyconuk-2025/speaker/VMFD7N/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/JGK78G/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/JGK78G/", "attachments": []}, {"guid": "3eb68ae2-b17c-51d5-baf3-40c4c48da868", "code": "CL9EGK", "id": 68741, "logo": null, "date": "2025-09-21T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-68741-why-len-4-and-other-weird-things-you-should-know-about-strings-in-python", "url": "https://pretalx.com/pyconuk-2025/talk/CL9EGK/", "title": "Why `len('\ud83d\ude36\u200d\ud83c\udf2b\ufe0f') == 4` and other weird things you should know about strings in Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Strings in Python behave in all sorts of unexpected ways: len('\ud83d\ude36\u200d\ud83c\udf2b\ufe0f') == 4, 'n\u0303' != '\u00f1', '\u202edlrow olleh\u202c'\u202c.split()[1] == 'olleh\u202c'! How is this possible? And importantly, why should you care?", "description": "In this presentation, we\u2019ll give a brief introduction to text encoding, the different Unicode standards and how Python encodes strings before we dive deep into Unicode oddities. We\u2019ll cover how one code point can represent multiple characters, why converting between upper-case and lower-case characters should be locale-dependent and how emoji\u2019s work. Finally, we will discuss some best practices for handling unicode input in Python.\r\n\r\nAfter this talk, you'll have a better understanding of strings in Python, the Unicode character encoding and you\u2019ll be aware of some common pitfalls and how to avoid them.\r\n\r\n**Audience:**\r\nThe content is aimed at someone who has some experience with Python programming but wants to get a deeper understanding of strings and unicode. However, we don\u2019t assume any prerequisite knowledge and will use simple examples, so a curious beginner will be able to follow the talk as well.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NQUGWR", "name": "Marie Roald", "avatar": "https://pretalx.com/media/avatars/NQUGWR_A8EQmMg.webp", "biography": "Marie is a researcher, data scientist and educator with over eight years experience teaching Python to middle- and high-school students, teachers and professionals in Norway. As part of her work as a researcher at the Norwegian Language Bank at the National Library of Norway, Marie has first-hand experience dealing with the intricacies of Unicode. Marie is also a co-founder and organiser of [PyLadies Oslo](https://www.meetup.com/pyladies-oslo/).", "public_name": "Marie Roald", "guid": "036695ee-a014-54b9-b964-3a633dae3b2e", "url": "https://pretalx.com/pyconuk-2025/speaker/NQUGWR/"}, {"code": "9J8LQV", "name": "Yngve Mardal Moe", "avatar": "https://pretalx.com/media/avatars/9J8LQV_O2VQ3ld.webp", "biography": "Yngve is also an experienced Python educator, Python developer and data science consultant. He has taught Python to professionals, university students and academics. While working at the Norwegian University of Life Sciences, he headed a project transforming introduction to Python into a tutorial-based course focusing on active learning. He is currently tech lead, working on automating the Norwegian power grid.", "public_name": "Yngve Mardal Moe", "guid": "98653021-f049-520d-81f8-96286f05876c", "url": "https://pretalx.com/pyconuk-2025/speaker/9J8LQV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/CL9EGK/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/CL9EGK/", "attachments": []}, {"guid": "19efb698-3c02-5cf5-ab55-5715cad06ac5", "code": "PUBM3T", "id": 69277, "logo": null, "date": "2025-09-21T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-69277-how-to-build-a-cross-platform-gui-app-with-python", "url": "https://pretalx.com/pyconuk-2025/talk/PUBM3T/", "title": "How to build a cross-platform GUI app with Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Building an app with a graphical interface that can run on multiple platforms - including mobile - doesn't have to be difficult. In this talk, you'll learn how to build and run an app with a native GUI that can run on multiple platforms, without modifications.", "description": "If you need to build a user interface for your Python code, many guides will tell you that your only options are to use the command line, or wrap your code in a web interface. However, there is another option - building a native GUI interface. In fact for some use cases, a GUI app may be your *only* option. \r\n\r\nIn this talk, you'll learn how to build and run a graphical user interface (GUI) that can run on your desktop, or on your phone. You'll learn how you can use the BeeWare suite of tools to bootstrap a new GUI project, develop a GUI interface, and deploy that app to multiple desktop and mobile platforms, without making any code changes. You'll learn how to access device hardware like GPS and cameras; and you'll learn how to distribute your application - including all runtimes and third-party libraries - to others.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LDFVBH", "name": "Russell Keith-Magee", "avatar": "https://pretalx.com/media/avatars/LDFVBH_vINhTd8.webp", "biography": "Dr Russell Keith-Magee is the founder of the BeeWare project, a project developing GUI tools and libraries to support the development of Python software on desktop and mobile platforms. He joined the Django core team in 2006, and was the President of the Django Software Foundation for 5 years. He joined the CPython core team in 2024. He is a frequent speaker at Python and Django conferences around the globe, sharing his experience as a FLOSS developer and (unsuccessful) startup founder. In his day job, he is a Principal Engineer at Anaconda, working on BeeWare in the OSS team.", "public_name": "Russell Keith-Magee", "guid": "500cd020-8904-508a-956e-9a8286965d96", "url": "https://pretalx.com/pyconuk-2025/speaker/LDFVBH/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/PUBM3T/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/PUBM3T/", "attachments": []}, {"guid": "5f02476a-f4e2-514f-b411-3c23ef70ffa6", "code": "7QZLCF", "id": 70117, "logo": null, "date": "2025-09-21T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70117-prototypes-sharing-and-services-full-django-in-a-single-file", "url": "https://pretalx.com/pyconuk-2025/talk/7QZLCF/", "title": "Prototypes, Sharing and Services: Full Django in a Single File", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Find out how to run Django from a single file, with working views, models, admin and an API. We'll see how nanodjango makes it easy, how it's perfect for building everything from prototypes to production services, and why it's a powerful alternative to Flask and FastAPI.", "description": "A Django project has lots of files and directories, which can be daunting for newcomers to the framework, and a burden for experienced developers. We're going to look at how Django normally uses this structure and why it makes sense, and how we can use Python to ignore that and load everything from a single file.\r\n\r\nWe're going to look at how it can be useful for writing and sharing experiments and prototypes, and even building production sites and services. We'll see how nanodjango makes it easy to write and run single file Django scripts, and how its `convert` command can automatically refactor your single file into a full project as your code grows.\r\n\r\nWe'll then work through some interesting real-world examples, and talk about some exciting new features.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EV3THW", "name": "Richard Terry", "avatar": "https://pretalx.com/media/avatars/EV3THW_GqXsSMa.webp", "biography": "Richard is a full-stack developer at Lincoln Loop, specializing in Python and Django for the past 18 years. He started as a freelancer in 2004 and has previously been a team lead and CTO at a UK-based Django agency. He enjoys working on open-source projects and maintains several interesting libraries.\r\n\r\nRichard is an enthusiastic carpenter and maker, but sadly his skills rarely meet his ambitions. His other passion is traveling, although a young family means most adventures these days are near his home in the Cotwolds.", "public_name": "Richard Terry", "guid": "b1273b49-4b92-55c5-a85a-718031dbc899", "url": "https://pretalx.com/pyconuk-2025/speaker/EV3THW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/7QZLCF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/7QZLCF/", "attachments": []}, {"guid": "52b381e2-8f4e-532b-80e5-9616c7a1513b", "code": "9EN9TM", "id": 70450, "logo": null, "date": "2025-09-21T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70450-much-ado-about-none", "url": "https://pretalx.com/pyconuk-2025/talk/9EN9TM/", "title": "Much Ado About None", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Much has been said about every other part of the Python language, but none has had less attention than None. We'll explore the history of nothing in the world through zero, then the origin of null in computing, and then what it means to be None in Python.", "description": "Nothing has been more controversial in the history of the world than nothing itself. From its representation as a placeholder in Babylonian accounting, to its use in Mayan numbering to its introduction into the world by Indian Mathematicians, the mathematical representation of nothing, the zero and its representation of the void and nothingness had been avoided and fought against by the West up until its inevitable introduction by Fibonnacci in 1202. Centuries later, this zero and nothingness inspired Nihilism, as well as the introduction of the NULL pointer in 1966 by Tony Hoare, called his \"billion dollar mistake\". Finally, we'll take a deep-dive into Python's own version of nothing, the None object and keyword, and what it means to represent nothingness.\r\n\r\nThis talk is dedicated to all Python programmers that have ever had a NoneType Error.", "recording_license": "", "do_not_record": false, "persons": [{"code": "D7UUMQ", "name": "Daniel Rios", "avatar": "https://pretalx.com/media/avatars/D7UUMQ_pIVWZBl.webp", "biography": "Who me? I'm a Python/Django developer with ten years of experience and a degree in Literature. I've coached people in Python, and have written more lines of software than poetry. I currently live and work in Berlin.", "public_name": "Daniel Rios", "guid": "a91010a0-a43f-5d01-9b86-79b1e37453fd", "url": "https://pretalx.com/pyconuk-2025/speaker/D7UUMQ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/9EN9TM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/9EN9TM/", "attachments": []}, {"guid": "e8e8fb6a-a104-514d-a70b-9c8c2534fed1", "code": "NC9RWR", "id": 70444, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/NC9RWR/TZ_Final_Shot_bf54dpo.jpeg", "date": "2025-09-21T16:30:00+01:00", "start": "16:30", "duration": "00:25", "room": "Main stage", "slug": "pyconuk-2025-70444-enriching-animation-with-python", "url": "https://pretalx.com/pyconuk-2025/talk/NC9RWR/", "title": "Enriching animation with python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Based in the heart of Manchester, Doodledo are a film and animation studio that use python for rigging and animating with Maya. They are now partnering with Niter to streamline the process of animating lip-sync from audio files using ethical AI tooling.", "description": "The first part of the talk presented by Head of Animation at Doodledo, Joe Spademan will demonstrate how simple lines of code can make big a impact in simplifying the tools and rigs for animators, from facial and hand rigs to rotation cycles connected to distance calculations as bees and ladybirds are brought to life in a 3D animation created for homeless charity Caritas.   \r\n\r\nThe second part of the talk led by Niter founder Travis Ralph-Donaldson shows how this is taken to the next level by employing ethical AI practices to solve a huge challenge that Doodledo have - automated lip-sync for a non-standard character rig.\r\n\r\nNiter have developed an app that takes audio speech recordings and converts them to natural looking lip synced face animations. These animations can be generated dynamically for a variety of rigs from high fidelity ARKit models to custom cartoon characters. All AI models have been developed and prototyped in Pytorch and the renderer plugins written in Python.\r\n\r\nhttps://vimeo.com/808271179/bdb1e751f4", "recording_license": "", "do_not_record": false, "persons": [{"code": "NLQDSU", "name": "Joe Spademan", "avatar": "https://pretalx.com/media/avatars/NLQDSU_OQZlQib.webp", "biography": "Joe is Head of Animation at Doodledo and has been animating since his first short in 1989. Since joining doodledo 30 years later, he has led the animation team through 2D, 3D, stop-motion, live-action and virtual production projects at Doodledo\u2019s home in Deansgate, Manchester - a short walk from Pycon!\r\n\r\nJoe has the responsibility of making sure everyone in the Doodledo animation team is set up and able to succeed, from pairing animators with projects that suit their skillet to leading team feedback sessions to collaborate and learn from each other as a team.", "public_name": "Joe Spademan", "guid": "b8a462b1-932a-5443-baf9-c453e1b642bd", "url": "https://pretalx.com/pyconuk-2025/speaker/NLQDSU/"}, {"code": "CWPCSD", "name": "Travis Ralph-Donaldson", "avatar": "https://pretalx.com/media/avatars/CWPCSD_8dYQlp0.webp", "biography": "Travis Ralph-Donaldson is an Innovation Discovery Manager in Software and AI at the University of Manchester Innovation Factory. He is a serial tech entrepreneur and has founded several bootstrapped and venture backed startups across AI, gaming, and EdTech. His most recent project \u201cSpeacher\u201d is a gamified AI pronunciation training app for French and Spanish which is currently being piloted in UK primary and secondary schools. Travis worked previously as a software", "public_name": "Travis Ralph-Donaldson", "guid": "ca3dad64-fada-52b0-9590-9e277b46a7c7", "url": "https://pretalx.com/pyconuk-2025/speaker/CWPCSD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/NC9RWR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/NC9RWR/", "attachments": []}, {"guid": "9c20d01e-52b3-57bd-9098-7dc8a4a61fb3", "code": "ADZDDG", "id": 74368, "logo": null, "date": "2025-09-21T17:00:00+01:00", "start": "17:00", "duration": "00:45", "room": "Main stage", "slug": "pyconuk-2025-74368-lightning-talks-sunday", "url": "https://pretalx.com/pyconuk-2025/talk/ADZDDG/", "title": "Lightning talks Sunday", "subtitle": "", "track": null, "type": "Welcome etc", "language": "en", "abstract": "Lightning talks Sunday", "description": "Lightning talks Sunday", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/ADZDDG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/ADZDDG/", "attachments": []}, {"guid": "30a362be-bb5e-571e-8f8b-65180677db60", "code": "FCM78T", "id": 79443, "logo": null, "date": "2025-09-21T17:45:00+01:00", "start": "17:45", "duration": "00:15", "room": "Main stage", "slug": "pyconuk-2025-79443-close", "url": "https://pretalx.com/pyconuk-2025/talk/FCM78T/", "title": "Close", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Code sprints and other collaboration", "description": "Code sprints and other collaboration", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/FCM78T/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/FCM78T/", "attachments": []}], "Space 2": [{"guid": "4c7a2164-068a-5821-b52c-d8078b82160e", "code": "9NYRJS", "id": 70059, "logo": null, "date": "2025-09-21T11:00:00+01:00", "start": "11:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70059-a-junior-s-perspective-why-doing-difficult-things-is-good-for-you-and-good-for-your-team", "url": "https://pretalx.com/pyconuk-2025/talk/9NYRJS/", "title": "A junior\u2019s perspective: why doing difficult things is good for you and good for your team", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What happens when a junior picks up a task involving unfamiliar tools and concepts? This talk follows a beginner's journey across three weeks of debugging, learning, and asking for help. There\u2019ll be advice for juniors on navigating challenging work, and advice for seniors on how to help.", "description": "This talk shares my experience in my first ever role as a junior engineer after switching careers. I picked up a ticket involving tools I\u2019d never used before (OpenTelemetry and Honeycomb), hoping to spend a day learning a bit about how we implement observability and monitoring of our Django app. Spoiler alert: it took three weeks of learning, debugging and asking for help to complete the work.\r\n\r\nI learned some valuable lessons along the way, not only technical, but about how to problem-solve, collaborate effectively, and keep going in the face of seemingly unending challenges.\r\n\r\nThrough this talk, I want juniors in the audience to know:\r\n\r\n- You can do difficult things, even if you think you lack the experience or knowledge required. If you\u2019re willing to learn, and have a supportive team around you, you have everything you need.\r\n- Doing difficult things is daunting, but also incredibly rewarding. You often learn 10x more than you expected, and when you finally finish the work, it feels like winning the lottery.\r\n- Taking on hard things benefits the whole team\u2014others might learn something new, or strengthen their own understanding by helping you out.\r\n- There\u2019s a lot you can do to support yourself: reach out early, reach out often, and learn how to communicate problems clearly.\r\n- The value of your work cannot be measured by lines of code\u2014it\u2019s far, far greater than that.\r\n\r\nThis talk also offers a reminder to seniors, and leaders or managers, about how tough it can be to be new. Juniors don\u2019t just lack experience\u2014our stack of 'unknown unknowns' is large and easily underestimated. When things break or go wrong, we might not understand where or why, and even if we find the bug or error, knowing how to fix it is another challenge altogether. I\u2019ll share how my team\u2019s support made all the difference\u2014and offer practical ideas for how others can support their junior colleagues, too.\r\n\r\nThis won\u2019t be a super technical talk. It\u2019s more about the human experience of being a beginner, the value of persistence, why asking for help is a great thing to do, and the power of supportive teams. Whether someone is a junior, a senior, in a leadership position, or somewhere in between, regardless of discipline there will hopefully be something valuable in this talk for everyone.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XBTR9Z", "name": "Katie Bickford", "avatar": "https://pretalx.com/media/avatars/XBTR9Z_7AAxj39.webp", "biography": "Katie is a Junior Software Engineer at the Bennett Institute for Applied Data Science at the University of Oxford and a member of the PyCon UK organising committee. \r\n\r\nhttps://www.linkedin.com/in/katie-bickford-7a9958aa/", "public_name": "Katie Bickford", "guid": "0821792b-df59-5aa6-8f9d-dd46ec354864", "url": "https://pretalx.com/pyconuk-2025/speaker/XBTR9Z/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/9NYRJS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/9NYRJS/", "attachments": []}, {"guid": "d2f557a7-c553-5dbb-960e-cef12b8858d8", "code": "PG3GNV", "id": 69176, "logo": null, "date": "2025-09-21T11:30:00+01:00", "start": "11:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-69176-from-data-to-predictions-building-regressors-and-classifiers-in-python", "url": "https://pretalx.com/pyconuk-2025/talk/PG3GNV/", "title": "From Data to Predictions: Building Regressors and Classifiers in Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, we\u2019ll explore how to build, train, and evaluate regression and classification models using Python on real-world datasets. From predicting house prices to classifying customer churn, this session will provide practical insights into combining these techniques for impactful data science applications.", "description": "We\u2019ll start with core concepts and the difference between regression and classification. Then, we\u2019ll understand the fundamentals of preparing data, building models, and evaluating them using intuitive metrics. You\u2019ll see how to approach both types of problems and understand when to use which.\r\n\r\n1. Understanding regression vs. classification and choosing the right model\r\n2. Loading and cleaning datasets using Pandas\r\n3. Understanding regression and classification models using Scikit-learn\r\n4. Evaluating performance with metrics like RMSE, accuracy, precision, and recall\r\n5. Avoiding overfitting and improving generalization with regularization and cross-validation", "recording_license": "", "do_not_record": false, "persons": [{"code": "H9PECV", "name": "Abhigyan Shrivastava", "avatar": "https://pretalx.com/media/avatars/H9PECV_YHtTXZO.webp", "biography": "I'm a Software Development Engineer II at Adobe with a deep passion for building impactful software and exploring the boundaries of what Python can do. My work spans systems design, automation, AI, and hardcore development. Outside of my day job, I enjoy experimenting with creative tech projects, speaking at events, and helping others learn through hands-on, practical sessions. I believe in making technology approachable, useful, and\u2014whenever possible\u2014a little fun.", "public_name": "Abhigyan Shrivastava", "guid": "244e6c35-59a9-54a9-8379-5cb4ec391ff3", "url": "https://pretalx.com/pyconuk-2025/speaker/H9PECV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/PG3GNV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/PG3GNV/", "attachments": []}, {"guid": "f7457b01-4e82-534b-a847-45e4a9fc1075", "code": "CFFEDZ", "id": 70460, "logo": null, "date": "2025-09-21T12:00:00+01:00", "start": "12:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70460-jit-compilers-for-scientific-computing-in-python-numba-vs-jax", "url": "https://pretalx.com/pyconuk-2025/talk/CFFEDZ/", "title": "JIT compilers for scientific computing in Python: Numba vs. JAX", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Accelerating scientific Python with JITs. We share our journey migrating a gravitational lensing likelihood calculation from Numba to JAX. Learn about performance gains, automatic differentiation benefits, and practical lessons for high-performance scientific computing in Python.", "description": "Python is widely used in scientific research, but pure Python can sometimes be too slow for computationally intensive tasks. Just-In-Time (JIT) compilers are essential tools for boosting performance, allowing Python code to run closer to native speeds. While libraries like Numba have long been popular for accelerating numerical Python functions, JAX offers a new paradigm, combining JIT compilation with powerful features like automatic differentiation (auto-diff) and execution across different hardware (CPUs, GPUs, TPUs).\r\n\r\nThis talk will take you on a journey through our experience optimizing a critical component of an astrophysics analysis pipeline: the calculation of the likelihood function for gravitational lensing models, used with data from the James Webb Space Telescope. We initially used Numba to accelerate this calculation, but the need for performance portability across hardwares, and the potential speed up from gradient computation for model fitting led us to explore JAX's unique capabilities.\r\n\r\nThis session will walk through the practical steps, challenges, and insights gained from migrating this complex scientific code from its existing Numba implementation to a JAX-based one.\r\n\r\nYou will learn:\r\n\r\n- Why leveraging performance tools like JITs is crucial for cutting-edge scientific analysis in Python.\r\n- The practical considerations when migrating existing numerical code from Numba to JAX, including syntax changes and managing state.\r\n- How JAX's auto-differentiation simplifies gradient calculations essential for scientific optimization and sampling tasks.\r\n- The significant performance improvements achieved in our specific gravitational lensing case study by using JAX's compiled functions.\r\n- Broader lessons learned about structuring scientific Python projects to effectively use modern JIT compilers and harness capabilities like auto-diff.\r\n\r\nWe'll conclude by comparing Numba and JAX in benchmark performance, developer ergonomics, and tradeoffs between the two, providing you with practical guidance for choosing the right tool for your scientific computing needs.\r\n\r\nThis case study offers a concrete example of how evolving Python libraries are enabling researchers to perform complex, high-performance computations directly within the Python ecosystem. Join us to see how tools like JAX are empowering scientific discoveries, one optimised function at a time.\r\n\r\nThis talk is suitable for intermediate Python programmers familiar with NumPy.", "recording_license": "", "do_not_record": false, "persons": [{"code": "W7G3GX", "name": "Kolen Cheung", "avatar": null, "biography": "Kolen Cheung is a Research Software Engineer with a PhD in Physics (UC Berkeley) specializing in CMB data analysis with a designated emphasis (\"graduate minor\") in Computational & Data Science & Engineering. Dr. Cheung has contributed to multiple CMB collaborations including POLARBEAR, LiteBIRD, CMB-S4, and served as Software Deployment Lead at Simons Observatory. His current work spans gravitational lensing, quantum biological modeling, and HPC systems, combining theoretical physics with advanced computational methods.", "public_name": "Kolen Cheung", "guid": "1126c952-af10-5f41-b5e7-f79ba739a018", "url": "https://pretalx.com/pyconuk-2025/speaker/W7G3GX/"}], "links": [{"title": "Presentation slides", "url": "https://ickc.github.io/RSE/PyAutoLens/2025-09-21-autojax.html", "type": "related"}], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/CFFEDZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/CFFEDZ/", "attachments": []}, {"guid": "b43b6239-2a49-5f68-8085-7decab69fa82", "code": "GN9D39", "id": 67485, "logo": null, "date": "2025-09-21T14:00:00+01:00", "start": "14:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-67485-marimo-magic-a-new-era-of-python-notebooks-for-explorers-and-engineers", "url": "https://pretalx.com/pyconuk-2025/talk/GN9D39/", "title": "Marimo Magic: A New Era of Python Notebooks for Explorers and Engineers", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Discover Marimo, the next-gen reactive Python notebook redefining how developers and data scientists explore, build, and share insights. Say goodbye to reruns and hello to instant updates, modular design, and app-like interactivity\u2014all in a single notebook.", "description": "Traditional Python notebooks have served us well\u2014but they weren\u2019t built for today's fast-paced, interactive, and modular workflows. Enter Marimo: a next-generation reactive Python notebook that combines the best of scripting, apps, and UI\u2014all in one seamless environment. In this talk, we\u2019ll explore how Marimo breaks the limits of Jupyter-style workflows and opens the door to new possibilities for developers, data scientists, educators, and engineers alike.\r\n\r\nWe'll dive into the core innovations that set Marimo apart: reactive execution, file-based structure, real-time interactivity, and built-in UI primitives. We\u2019ll walk through building reactive notebooks that behave more like applications\u2014updating instantly without reruns or cell juggling. You\u2019ll see how Marimo simplifies the creation of dashboards, tools, and shareable reports using only Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BV8CXP", "name": "Bernhard Merkle", "avatar": "https://pretalx.com/media/avatars/BV8CXP_hZbjreW.webp", "biography": "Bernhard Merkle works as a Software Specialist and Technology Scout for Gen AI, AI, ML, Cloud, XOps related technologies in the central Research & Development Department at SICK AG, one of the world\u2019s leading producers of sensors and sensor solutions. He loves Python and serves as internal consultant for new Software Development Technologies. In his spare time he gives a lecture about development with Models and AI. He writes technical articles and also gives sessions at various conferences (e.g. ACCU, Codegeneration, , QCon, OOPSLA, EclipseCon and OOP).", "public_name": "Bernhard Merkle", "guid": "f6438662-9e8d-5196-8b6a-5ec009fc003e", "url": "https://pretalx.com/pyconuk-2025/speaker/BV8CXP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/GN9D39/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/GN9D39/", "attachments": []}, {"guid": "51571f6e-3070-5d65-aeaf-633766725cc0", "code": "SQCXVR", "id": 70446, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/SQCXVR/eliza-photo_hlwrg2e.png", "date": "2025-09-21T14:30:00+01:00", "start": "14:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70446-from-eliza-to-gpt-how-the-uncanny-shaped-human-ai-interaction-s-hidden-history", "url": "https://pretalx.com/pyconuk-2025/talk/SQCXVR/", "title": "From ELIZA to GPT: How the uncanny shaped human-AI interaction's hidden history", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk traces how the uncanny\u2014that productive tension between familiar and strange\u2014shapes effective human-AI interaction. I'll explore how Weizenbaum's, Mori's and Turkle's pioneering work reveals dynamics we can strategically leverage, and how understanding this lineage leads to more effective use of AI systems.", "description": "Long before ChatGPT, Joseph Weizenbaum's ELIZA program (1966) revealed something profound: users formed inexplicable emotional attachments to simple text interfaces, attributing understanding where none existed. Weizenbaum grew concerned about these effects, becoming one of AI's earliest critics. Similarly, roboticist Masahiro Mori (1970) identified the 'uncanny valley'\u2014that distinctive cognitive response when something appears almost, but not quite, human. \r\n\r\nWhile these pioneers saw the uncanny as a problem to be avoided, Sigmund Freud's earlier analysis in 'The Uncanny' (1919) had explored this psychological phenomenon more neutrally as a complex interplay between the familiar and strange. In the 1980s, Sherry Turkle described user-computer interactions as \u2018uncanny\u2019, noting how people formed relationships with machines that were artificial yet emotionally significant. \r\n\r\nThis talk reveals an overlooked connection: what many considered a problem to avoid is behind some of our most effective prompt engineering techniques. I'll demonstrate how these techniques leverage uncanny psychological dynamics, highlighting the theoretical principles that help explain why these approaches work so well in practice. \r\n\r\nI'll begin by examining the psychological foundations of human-computer interaction through ELIZA's architecture, briefly illustrating how this simple program's pattern-matching mechanisms triggered profound psychological effects. By analysing key elements of ELIZA's code structure, I'll show how the same technical techniques that alarmed Weizenbaum can be viewed through Turkle's theoretical lens of the \u2018second self\u2019 as creating productive engagement rather than just deception. \r\n\r\nBuilding on these contrasting perspectives, I'll demonstrate how established prompt engineering techniques leverage these uncanny dynamics, while their theoretical foundations remain largely unexplored. Using Python examples with the OpenAI API, I'll show how methods like chain-of-thought prompting (Wei et al., 2022) and role prompting position AI in the productive uncanny space between computational tool and simulated agent. \r\n\r\nAttendees will leave with an understanding of how current best practices in prompt engineering strategically harness the uncanny tension in human-AI interaction, along with a deeper theoretical framework for understanding why these techniques work. By recognising both the risks and the productive potential of the uncanny, developers can make more informed design choices that leverage psychological principles that have influenced human-computer interaction for over fifty years.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3FBUA8", "name": "Laura Gates", "avatar": "https://pretalx.com/media/avatars/3FBUA8_ILyKkRt.webp", "biography": "I'm a Reader in Theatre & Performance at Bath Spa University who's become fascinated by the overlaps between performance and code. I build full-stack applications in Django and React, currently developing a real-time platform for collecting feedback during live workshops. As an AI Training & Adoption Strategist, I help organisations navigate the human challenges of technical change, bringing two decades of experience in making complex ideas accessible to diverse audiences. I speak and write regularly about pedagogy, performance and practical AI adoption.", "public_name": "Laura Gates", "guid": "69b3f5ac-4673-590a-90ee-5345ff06f551", "url": "https://pretalx.com/pyconuk-2025/speaker/3FBUA8/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SQCXVR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SQCXVR/", "attachments": []}, {"guid": "c5ad35e1-70b1-5fd4-9959-d6ca0f4024da", "code": "QGT9C7", "id": 66613, "logo": null, "date": "2025-09-21T15:00:00+01:00", "start": "15:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-66613-python-and-rust-a-perfect-pairing", "url": "https://pretalx.com/pyconuk-2025/talk/QGT9C7/", "title": "Python and Rust, a perfect pairing", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Rust programming language has recently gained a lot of popularity. However, you don't have to choose between Python and Rust - you can use both together. In this talk, we take a look at why and how to do it with tools like rustimport and Maturin.", "description": "Using Rust is emerging as a new way to make Python projects fast. This can be seen in libraries like Pydantic, whose core is written in Rust, and a new generation of Python developer tools such as uv and ruff. \r\n\r\nWe'll start by talking about Rust, how it compares to Python as a programming language, and why all these projects are turning to it. Then we'll go through how to use rustimport to use Rust in your own projects. Rustimport is perfect for simple use cases, but we'll also talk about using Maturin when you want to publish Python packages that incorporate Rust.\r\n\r\n_About the speaker:_ I'm an experienced software engineer and for the last few years I've been building cloud backends and data processing systems in Python and Rust. This talk is based on my experience in learning Rust and then incorporating it into my Python projects both for fun and at work.", "recording_license": "", "do_not_record": false, "persons": [{"code": "Q9C8ZN", "name": "Miikka Koskinen", "avatar": "https://pretalx.com/media/avatars/Q9C8ZN_ZtrZQ2h.webp", "biography": "I'm a software engineer, consultant, and a writer focused on solving problems caused by having too much data.", "public_name": "Miikka Koskinen", "guid": "02321a3f-135e-5806-9857-2c08b1b89245", "url": "https://pretalx.com/pyconuk-2025/speaker/Q9C8ZN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/QGT9C7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/QGT9C7/", "attachments": []}, {"guid": "efe37ea5-7811-5515-bf79-726b62a919eb", "code": "XGQAAD", "id": 70333, "logo": null, "date": "2025-09-21T16:00:00+01:00", "start": "16:00", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-70333-building-sql-queries-using-t-strings", "url": "https://pretalx.com/pyconuk-2025/talk/XGQAAD/", "title": "Building SQL queries using t-strings", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "It is painfully difficult to dynamically build SQL queries in Python. Fortunately Python 3.14 introduces t-strings which provide custom string processing of template strings. My library, SQL-tString, builds SQL queries from these template strings, making it easy to build dynamic queries in Python by writing SQL directly.", "description": "In this talk I will explain t-strings, as recently accepted into Python and as will be released with Python3.14. I'll then introduce SQL-tString which is my library built on t-strings.\r\n\r\nSQL-tString allows for t-string based construction of sql queries without allowing for SQL injection. The basic usage is as follows,\r\n\r\n```python\r\nfrom sql_tstring import sql\r\n\r\na = 1\r\n\r\nquery, values = sql(\r\n    t\"\"\"SELECT a, b, c\r\n          FROM tbl\r\n         WHERE a = {a}\"\"\",\r\n)\r\n```\r\n\r\nIt allows for query building via the usage of `RewritingValue`s, such as `Absent` which will remove the expression it is present in,\r\n\r\n```python\r\nfrom sql_tstring import Absent\r\n\r\na = Absent\r\nb = 1\r\nquery, values = sql(t\"SELECT x FROM y WHERE a = {a} AND b = {b}\")\r\nassert query == \"SELECT x FROM y WHERE b = ?\"\r\nassert values == [1]\r\n```\r\n\r\nOr `IsNull` which will rewrite the expression to be `IS NULL`,\r\n\r\n```python\r\nfrom sql_tstring import IsNull\r\n\r\nc = IsNull\r\nquery, values = sql(t\"SELECT x FROM y WHERE c = {c}\")\r\nassert query == \"SELECT x FROM y WHERE c IS NULL\"\r\n```", "recording_license": "", "do_not_record": false, "persons": [{"code": "BWCVBZ", "name": "Phil Jones (@pgjones)", "avatar": "https://pretalx.com/media/avatars/BWCVBZ_Si0aSG1.webp", "biography": "I am a software engineer based in London and the CTO of Curaleaf International, and Python Software Foundation Fellow. At present I contribute to open source in Python on projects relating to web development, specifically I am a maintainer of Flask, Werkzeug, Quart, and Hypercorn.", "public_name": "Phil Jones (@pgjones)", "guid": "377e622a-b1f3-5f39-9949-f95e0ca6692e", "url": "https://pretalx.com/pyconuk-2025/speaker/BWCVBZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/XGQAAD/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/XGQAAD/", "attachments": []}, {"guid": "bbfa2ab5-f1fe-5776-9887-51b79fb97c75", "code": "VTHPZK", "id": 68084, "logo": null, "date": "2025-09-21T16:30:00+01:00", "start": "16:30", "duration": "00:25", "room": "Space 2", "slug": "pyconuk-2025-68084-type-text-find-pictures-an-app-using-clip-postgresql-and-pgvector", "url": "https://pretalx.com/pyconuk-2025/talk/VTHPZK/", "title": "Type text, find pictures: an app using CLIP, PostgreSQL\u00ae and pgvector", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What would once have been magical is now becoming common place.\r\n\r\nIn this talk, I'll show how to write a Python app that takes a text snippet (like \"cat\" or \"man jumping\") and finds images that match.", "description": "The original LLMs (large language models) worked with text, making it possible to use a phrase to search for documents with a similar meaning. Later models addressed other media, for instance, allowing comparison of images. And now we have multi-modal models, like OpenAI's CLIP, which can work with images and text interchangably.\r\n\r\nI'll give a quick introduction to vector search and CLIP, talk through setting up the necessary table in PostgreSQL\u00ae, walk through a script to calculate the embeddings of the chosen images, and store them in the database, and another script that takes a search text and uses pgvector to find matching images in the database.\r\n\r\nI'll then show how you can use FastAPI and HTMX to quickly make a web app with a basic form. Merging the \"find images\" code into that then gives the final application.\r\n\r\nAll the code is available in a GitHub repository, which includes instructions on how to run everything, the slides, and links to some other related resources.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8YEPUD", "name": "Tibs", "avatar": "https://pretalx.com/media/avatars/8YEPUD_iVVHCuM.webp", "biography": "After being a programmer for a good few years, I changed career in 2022 to become a Developer Educator at Aiven (https://aiven.io/tibs). My favourite programming language is Python, my favourite markup language is reStructuredText (although I'm fascinated by Typst), my favourite storage technologies are SQLite, PostgreSQL and Valkey, and I\u2019m rather enthusiastic about Apache Kafka as a messaging system. Find out more about my past at https://www.tonyibbs.co.uk/", "public_name": "Tibs", "guid": "8ebe8f96-689b-58d4-92f1-6069668c5538", "url": "https://pretalx.com/pyconuk-2025/speaker/8YEPUD/"}], "links": [{"title": "The source code is at https://github.com/Aiven-Labs/app-multimodal-search-CLIP-PostgreSQL", "url": "https://github.com/Aiven-Labs/app-multimodal-search-CLIP-PostgreSQL", "type": "related"}, {"title": "The slides are in the `slides` folder.", "url": "https://github.com/Aiven-Labs/app-multimodal-search-CLIP-PostgreSQL/tree/main/slides", "type": "related"}], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/VTHPZK/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/VTHPZK/", "attachments": []}], "Space 3": [{"guid": "99c02229-67f7-5721-90ee-7975a14e3951", "code": "9RKPUA", "id": 70336, "logo": null, "date": "2025-09-21T11:00:00+01:00", "start": "11:00", "duration": "01:25", "room": "Space 3", "slug": "pyconuk-2025-70336-data-modelling-with-pydantic", "url": "https://pretalx.com/pyconuk-2025/talk/9RKPUA/", "title": "Data modelling with Pydantic", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Get hands-on with Pydantic, the most widely used data validation library for Python.\r\n\r\nLearn to write schemas to model data using simple type annotations. Use Pydantic to parse and validate data, consume JSON APIs, manage configuration, design your own APIs and create great command line interfaces with ease.", "description": "Bring a laptop - ideally you'll have Python and vscode installed beforehand, but if not I'll help you get started.\r\n\r\nLearn to write schemas to model data using simple type annotations. Use Pydantic to parse and validate data, consume JSON APIs, manage configuration, design your own APIs and create great command line interfaces with ease. See how Pydantic can make your code simpler, more readable and make the data you consume a pleasure to work with, and reduce guesswork and type mangling!\r\n\r\nI'll be covering:\r\n\r\n- What is Pydantic?\r\n- Why use it?\r\n- Setup: virtualenv, installing requirements, setting up vscode\r\n- Data modelling\r\n- Data validation\r\n- Type annotations for simple models\r\n- Custom validators for more advanced parsing and validation\r\n- JSON API schema validation and consuming APIs\r\n- Configuration management with pydantic_settings\r\n- Serving APIs with FastAPI\r\n- Creating CLIs with typer", "recording_license": "", "do_not_record": false, "persons": [{"code": "EWRKHR", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/EWRKHR_Rhz4Y2X.webp", "biography": "Ben is a senior software engineer at the BBC, and was previously community manager at the Raspberry Pi Foundation. He's the creator of several Python projects such as gpiozero, piwheels and pyjokes. He's written countless articles and tutorials on Python and all things open source, and has given dozens of talks at Python conferences.", "public_name": "Ben Nuttall", "guid": "d303f50c-470c-520b-bb36-53d892efd20b", "url": "https://pretalx.com/pyconuk-2025/speaker/EWRKHR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/9RKPUA/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/9RKPUA/", "attachments": []}, {"guid": "3451a761-18f8-59a7-b640-d0e18b17e1bc", "code": "MR39CJ", "id": 70007, "logo": null, "date": "2025-09-21T13:30:00+01:00", "start": "13:30", "duration": "01:25", "room": "Space 3", "slug": "pyconuk-2025-70007-theming-workshops-for-education-via-coding-a-satellite", "url": "https://pretalx.com/pyconuk-2025/talk/MR39CJ/", "title": "Theming Workshops for Education via 'Coding a Satellite'", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Interested in running outreach workshops, educational activities or beginner challenges? In this session we will:\r\n- discuss what makes a good workshop for your audience\r\n- share ideas on theming activities\r\n- have a go at a workshop designed for 9-14 year-olds, using a BBC micro:bit to 'code a satellite'", "description": "I worked for an education charity for almost 9 years, running workshops with a wide range of young people - aged 5-18, in schools and community groups, with parents/guardians or unaccompanied - on all sorts of different themes. \r\nMy favourite tool to use is a BBC micro:bit and, in this workshop, I will share how I have used very similar code to run very different workshops.\r\n\r\nYou can discuss ideas with other session attendees on ways to theme workshops that are relevant to your own work, and I will run through an example workshop 'Code a Satellite'.\r\n\r\nThe example workshop uses many different micro:bit features that could be themed in different ways - we will experiment with using the LED display, light sensor, accelerometer and radio - and I will also describe how I adapted it for different age groups.\r\n\r\nBring a laptop with a USB port (I have a *small* number of USB-C cables available!), I will provide micro:bits to use during the session.\r\n\r\nWifi-less option: to take part in this workshop without internet access, you can pre-install the Mu editor from here: https://codewith.mu/en/download", "recording_license": "", "do_not_record": false, "persons": [{"code": "HP79EZ", "name": "Sarah Townson", "avatar": "https://pretalx.com/media/avatars/HP79EZ_quBmwqH.webp", "biography": "I ran coding/computing/technology/making workshops at Science Oxford for over 8 years, working with young people, family groups, community groups and teachers.\r\n\r\nI'm not a Python expert, but I love teaching it as it's an extremely accessible programming language!\r\n\r\nOutside of work, my main obsessions are tea, fighting robots, and Star Trek: Deep Space Nine.", "public_name": "Sarah Townson", "guid": "4a99fc3f-a290-52be-bfa1-ed9906a41479", "url": "https://pretalx.com/pyconuk-2025/speaker/HP79EZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/MR39CJ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/MR39CJ/", "attachments": []}, {"guid": "6d6f92d8-98e2-5a8e-b1cb-3de17a9fa16c", "code": "HVSKAK", "id": 71840, "logo": null, "date": "2025-09-21T15:00:00+01:00", "start": "15:00", "duration": "01:55", "room": "Space 3", "slug": "pyconuk-2025-71840-how-to-measure-and-elevate-quality-in-engineering-practice", "url": "https://pretalx.com/pyconuk-2025/talk/HVSKAK/", "title": "How to measure and elevate quality in engineering practice", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Some qualities are not values easily read off from the world, like a temperature or number. How do you measure, track, represent and drive engineering quality, without crudely reducing it to something it is not?", "description": "In my work in Canonical's Engineering Excellence organisation, I direct engineering practice at scale: the documentation efforts of dozens of teams in over a hundred software products. To do that I have had to find ways to measure quality of practice and outcome. I also had to persuade all those engineering teams to accept them, and work with them.\r\n\r\nThe methods and approaches I developed for documentation have been adopted for other engineering disciplines, such as security engineering practice. I'll share them in this workshop in the form of reusable tools that can similarly be adopted and adapted to other needs. At the heart of them is a maturity model that helps drive practice quality at scale, elevating standards, discipline and execution.\r\n\r\nI'll work with attendees to turn these tools into tools for their own needs, in their own companies and organisations.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YNNEGJ", "name": "Daniele Procida", "avatar": "https://pretalx.com/media/avatars/YNNEGJ_zVQwMAG.webp", "biography": "I am a Director of Engineering at Canonical, where I lead documentation practice. I enjoy helping organise community conferences for Python and Django. That includes multiple editions of DjangoCon Europe, as well as the first editions of PyCon Africa and DjangoCon Africa.  \r\n\r\nI also enjoy helping people and open-source projects improve their documentation.", "public_name": "Daniele Procida", "guid": "462ff4e3-40c1-5cab-8372-4fa62a6153fb", "url": "https://pretalx.com/pyconuk-2025/speaker/YNNEGJ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/HVSKAK/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/HVSKAK/", "attachments": []}], "Space 4": [{"guid": "87518973-8479-56a2-8678-43ddbcad909b", "code": "SLS33S", "id": 70354, "logo": "https://pretalx.com/media/pyconuk-2025/submissions/SLS33S/session_image_wjLAYOz.jpg", "date": "2025-09-21T11:00:00+01:00", "start": "11:00", "duration": "01:25", "room": "Space 4", "slug": "pyconuk-2025-70354-what-we-can-learn-from-exemplary-python-documentation-see-description-for-preparation", "url": "https://pretalx.com/pyconuk-2025/talk/SLS33S/", "title": "What We Can Learn from Exemplary Python Documentation (SEE DESCRIPTION FOR PREPARATION)", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Let us build on examples from NumPy, pandas, and Matplotlib to explore techniques and tools with the Sphinx documentation generator. Learn how to implement styles, include advanced elements, and overcome challenges in creating clear, maintainable docs. \ud83d\udcd1\u2728", "description": "PLEASE PREPARE A FRESH PYTHON PROJECT BEFORE THE WORKSHOP (PREFERABLY USING PYCHARM OR AT LEAST AN IDE YOU ARE EXPERIENCED WITH; JUPYTER NOTEBOOKS DO **NOT** WORK):\r\n\r\npip install --upgrade pip setuptools\r\npip install jupyterlite-pyodide-kernel\r\npip install jupyterlite-sphinx\r\npip install matplotlib\r\npip install numpy\r\npip install pandas\r\npip install pydata-sphinx-theme\r\npip install sphinx-book-theme\r\npip install sphinx-copybutton\r\npip install sphinx-gallery\r\npip install sphinxcontrib-kroki\r\n\r\n----------------------------------------------------------------------------------------------------\r\n\r\nIf you\u2019ve attended one of last year\u2019s Python conferences in Europe, you might have seen my talk \u201cDocumenting Python Code\u201d, where I introduced attendees to the basics of Python documentation. This year, I will expand on that foundation by looking at what can be learned from exemplary Python documentation.\r\n\r\nBuilding on renowned examples from popular Python libraries such as NumPy, pandas, and Matplotlib, this workshop will delve into techniques and tools that help streamline documentation creation while improving clarity and usability. The topics covered include:\r\n\r\nSphinx documentation generator\r\n\u2022 use reStructuredText as a markup language\r\n\u2022 simplify docstrings with the NumPy and Google format\r\n\u2022 generate function and method documentation with sphinx-apidoc\r\n\r\nHow to\r\n\u2022 include code snippets as examples and display them in environment-specific tabs\r\n\u2022 adopt themes and implement appealing styles\r\n\u2022 use admonitions to highlight important content\r\n\u2022 write sophisticated mathematical formulas\r\n\u2022 create versatile diagrams with Kroki\r\n\u2022 generate interactive HTML documentation with embedded notebooks\r\n\r\nComparison: AsciiDoc vs. Sphinx\r\n\u2022 explore their strengths and limitations for multi-language projects\r\n\u2022 see how AsciiDoc can document APIs by including tagged source code snippets\r\n\r\nThis workshop provides practical insights and examples to help developers, technical writers, and maintainers create better documentation and improve their workflows. Whether you are just starting out or refining an established project, this session will provide actionable techniques to overcome common challenges and take your documentation to the next level.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VGYMKY", "name": "Christian Heitzmann", "avatar": "https://pretalx.com/media/avatars/VGYMKY_mjyajQp.webp", "biography": "Christian Heitzmann, MSc ETH CSE, is the founder and owner of SimplexaCode AG, based in Lucerne, Switzerland. He is a certified software developer in Java and Python, holding teaching diplomas in both Computer Science and Mathematics, as well as a CAS in Machine Learning. With over 20 years of experience in software development and 12 years of teaching Java, Python, mathematics, and algorithms, Christian is also a regular contributor to IT journals, sharing his expertise in the field.", "public_name": "Christian Heitzmann", "guid": "1f499cb4-1862-5e59-bb43-834cf68954e1", "url": "https://pretalx.com/pyconuk-2025/speaker/VGYMKY/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/SLS33S/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/SLS33S/", "attachments": []}, {"guid": "08b9abb7-0ad1-58da-8ad9-74fe7dfb5f80", "code": "BJHYZM", "id": 70223, "logo": null, "date": "2025-09-21T13:30:00+01:00", "start": "13:30", "duration": "01:25", "room": "Space 4", "slug": "pyconuk-2025-70223-observing-production-systems-with-opentelemetry", "url": "https://pretalx.com/pyconuk-2025/talk/BJHYZM/", "title": "Observing production systems with OpenTelemetry", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Understanding how your production systems are working is vitally important, but hard to do.\r\n\r\nIn this workshop, we will hands-on learn how to use OpenTelemetry to instrument a Django application, and how to use it to diagnose problems in production.", "description": "When running your code in production, it is essential be able to observe what the code is doing, and how long it is taking. This allows you to diagnose problems, improve performance, and plan for growth. This property is known as Observability - the ability to determine the internal state of the system from observing its outputs.\r\n\r\nBut production systems are often large and complex, which makes this difficult, and developers do not always have unrestricted access to inspect the internals of the system, for valid reasons.  There are many tools and methods that provide aggregated logging, metrics and tracing, all in order to try find ways to answer these questions.\r\n\r\nOver the last few years, OpenTelemetry has emerged as the leading open standard and tool-set to instrument code to provide deep observability.  It provides a standard way to augment your application code to emit telemetry that can be use to answer complex questions about your system.  It has seen rapid adoption across different language ecosystems and observabilty vendors.  However, it introduces many new concepts, and its cross-platform and design-by-committee nature can make it a bit of steep learning curve.\r\n\r\nThis workshop will introduce OpenTelemetry concepts, and provide a series of hands on interactive exercises to work through, based on a provided Django application, which will include:\r\n - adding basic auto-instrumentation\r\n - emitting it to [Honeycomb](https://honeycomb.io) to explore\r\n - diagnosing a slow request\r\n - adding custom application specific telemetry\r\n - linking telemetry across services\r\n\r\nThis is intended to be an intermediate workshop - you will need basic familiarity with python and python packages, and Django and its ecosystem, to get the most of out of it. To do the exercises, you will need a computing device with either [uv](https://github.com/astral-sh/uv) installed, or a GitHub account to use Codespaces.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YTEKL8", "name": "Simon Davy", "avatar": "https://pretalx.com/media/avatars/YTEKL8_p50Pp49.webp", "biography": "I am a infrastructure focussed developer from Leeds, UK, and a PyCon UK regular, having been coming since 2008,\r\n\r\nI been using python since around 2003, initially in an academic context, for my PhD in AI Scheduling, and then commercially for various companies. I worked for Canonical on Ubuntu for 9 years, and currently work at the Bennett Institute for Applied Data Science at the University of Oxford, on the [OpenSAFELY](https://opensafely.org) project.\r\n\r\nI am particularly interested in all the fun and hard things about running complex production software - security, scalability, testing, user experience, developer experience, and observability.", "public_name": "Simon Davy", "guid": "b56e62e0-a1f6-52c4-8d2a-21ee99a9b887", "url": "https://pretalx.com/pyconuk-2025/speaker/YTEKL8/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/BJHYZM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/BJHYZM/", "attachments": []}]}}, {"index": 4, "date": "2025-09-22", "day_start": "2025-09-22T04:00:00+01:00", "day_end": "2025-09-23T03:59:00+01:00", "rooms": {"Space 3": [{"guid": "aa84bdaa-f300-5565-9620-ab9404ea1953", "code": "7GK9XV", "id": 79444, "logo": null, "date": "2025-09-22T10:00:00+01:00", "start": "10:00", "duration": "05:00", "room": "Space 3", "slug": "pyconuk-2025-79444-code-sprints-and-other-collaboration", "url": "https://pretalx.com/pyconuk-2025/talk/7GK9XV/", "title": "Code sprints and other collaboration", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Code sprints and other collaboration", "description": "Code sprints and other collaboration", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/7GK9XV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/7GK9XV/", "attachments": []}], "Space 4": [{"guid": "2aace4d3-40f3-5d0f-8787-3cf374b29a86", "code": "8F3WWT", "id": 79442, "logo": null, "date": "2025-09-22T10:00:00+01:00", "start": "10:00", "duration": "05:00", "room": "Space 4", "slug": "pyconuk-2025-79442-code-sprints-and-other-collaboration", "url": "https://pretalx.com/pyconuk-2025/talk/8F3WWT/", "title": "Code sprints and other collaboration", "subtitle": "", "track": null, "type": "interactive workshop or collaborative session", "language": "en", "abstract": "Code sprints and other collaboration", "description": "Code sprints and other collaboration", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2025/talk/8F3WWT/feedback/", "origin_url": "https://pretalx.com/pyconuk-2025/talk/8F3WWT/", "attachments": []}]}}]}}}