<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2026.3.0.dev0. -->
<schedule>
    <generator name="pretalx" system="talks.kiwipycon.nz" version="2026.3.0.dev0" />
    <version>0.11</version>
    <conference>
        <title>Kiwi PyCon 2025</title>
        <acronym>kiwi-pycon-xiv-2025</acronym>
        <start>2025-11-21</start>
        <end>2025-11-23</end>
        <days>3</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://talks.kiwipycon.nz</base_url>
        <logo>https://talks.kiwipycon.nz/media/kiwi-pycon-xiv-2025/img/Kiwi_PyCon_Horizontal32_Web_ArrH1Hb.png</logo>
        <time_zone_name>Pacific/Auckland</time_zone_name>
        
        
        <track name="Pythonista" slug="5859-pythonista"  color="#307998" />
        
    </conference>
    <day index='1' date='2025-11-21' start='2025-11-21T04:00:00+13:00' end='2025-11-22T03:59:00+13:00'>
        <room name='Middle Room' guid='dc0f794c-773b-5217-8f38-7bdd7ca9b42a'>
            <event guid='1704048f-15d1-59ae-8a2a-67dfaaa10320' id='81545' code='RZDAK9'>
                <room>Middle Room</room>
                <title>Workshop: MicroPython IoT Development Workshop</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T09:00:00+13:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>Explore MicroPython on an ESP32 microcontroller for Internet of Things applications. Learn how to use sensors and timers to collect data and deliver it to a collection service via a WiFi connection. The opening short lecture will describe the capabilities of the hardware, then we&apos;re into hands-on projects demonstrating common applications for this and similar low-cost hardware, individually or in groups. The afternoon session will feature more-advanced projects.

Did you attend last year? The program will be largely similar. You are invited to work-through the advanced programme and/or on your own project; or assist others.</abstract>
                <slug>kiwi-pycon-xiv-2025-81545-workshop-micropython-iot-development-workshop</slug>
                <track>Pythonista</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>You will be comfortable with Python flow control, writing custom-functions, and utilising built-in data-structures.

Bring a laptop with a USB-A port. The microcontroller board has a USB-C connector and a USB-A to USB-C cable will be provided.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RZDAK9/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RZDAK9/feedback/</feedback_url>
            </event>
            <event guid='8e82de00-04d7-5236-929c-d070c1a4293e' id='81546' code='SLM7RX'>
                <room>Middle Room</room>
                <title>Workshop: MicroPython IoT Development Workshop</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T10:15:00+13:00</date>
                <start>10:15</start>
                <duration>02:00</duration>
                <abstract>Explore MicroPython on an ESP32 microcontroller for Internet of Things applications. Learn how to use sensors and timers to collect data and deliver it to a collection service via a WiFi connection. The opening short lecture will describe the capabilities of the hardware, then we&apos;re into hands-on projects demonstrating common applications for this and similar low-cost hardware, individually or in groups. The afternoon session will feature more-advanced projects.

Did you attend last year? The program will be largely similar. You are invited to work-through the advanced programme and/or on your own project; or assist others.</abstract>
                <slug>kiwi-pycon-xiv-2025-81546-workshop-micropython-iot-development-workshop</slug>
                <track>Pythonista</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>You will be comfortable with Python flow control, writing custom-functions, and utilising built-in data-structures.

Bring a laptop with a USB-A port. The microcontroller board has a USB-C connector and a USB-A to USB-C cable will be provided.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SLM7RX/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SLM7RX/feedback/</feedback_url>
            </event>
            <event guid='33bbd6f6-7285-55c1-8d90-0f6fbcefb9bc' id='81547' code='LWJXMX'>
                <room>Middle Room</room>
                <title>Workshop: MicroPython IoT Development Workshop</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T14:15:00+13:00</date>
                <start>14:15</start>
                <duration>01:30</duration>
                <abstract>Explore MicroPython on an ESP32 microcontroller for Internet of Things applications. Learn how to use sensors and timers to collect data and deliver it to a collection service via a WiFi connection. The opening short lecture will describe the capabilities of the hardware, then we&apos;re into hands-on projects demonstrating common applications for this and similar low-cost hardware, individually or in groups. The afternoon session will feature more-advanced projects.

Did you attend last year? The program will be largely similar. You are invited to work-through the advanced programme and/or on your own project; or assist others.</abstract>
                <slug>kiwi-pycon-xiv-2025-81547-workshop-micropython-iot-development-workshop</slug>
                <track>Pythonista</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>You will be comfortable with Python flow control, writing custom-functions, and utilising built-in data-structures.

Bring a laptop with a USB-A port. The microcontroller board has a USB-C connector and a USB-A to USB-C cable will be provided.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LWJXMX/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LWJXMX/feedback/</feedback_url>
            </event>
            <event guid='ac9a7434-00de-599e-9e0f-2865910d22b3' id='81548' code='89K3WB'>
                <room>Middle Room</room>
                <title>Review: MicroPython IoT Development Workshop</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T16:00:00+13:00</date>
                <start>16:00</start>
                <duration>02:00</duration>
                <abstract>Post workshop review/assistance session</abstract>
                <slug>kiwi-pycon-xiv-2025-81548-review-micropython-iot-development-workshop</slug>
                <track>Pythonista</track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/89K3WB/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/89K3WB/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Breakout Room' guid='a15f67ba-af87-575d-87cd-55c6080e4ce5'>
            <event guid='1aca8aec-00fb-5452-a9c3-13de7ce3b8f7' id='81541' code='Y9TDMB'>
                <room>Breakout Room</room>
                <title>Workshop: Beginner&apos;s Python &#8211; a Carpentries Inspired Tutorial</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T09:00:00+13:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>This workshop will use the Software Carpentries Programming with Python tutorial. During this workshop we will start by learning the fundamentals of Python and coding in general, such as variable assignment and working with different types of data. This will lead to a discussion on how to evaluate and visualise tabular data.</abstract>
                <slug>kiwi-pycon-xiv-2025-81541-workshop-beginner-s-python-a-carpentries-inspired-tutorial</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>This workshop is suitable for people who are new to Python.

This lesson is designed to be run on a personal computer. All of the software and data used in this lesson are freely available online, and instructions on how to obtain them are provided below. In this lesson, we will be using Python 3 with some of its most popular scientific libraries.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/Y9TDMB/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/Y9TDMB/feedback/</feedback_url>
            </event>
            <event guid='1e3b49f1-d40e-522f-bd7e-8f26a0bb1420' id='81542' code='RJFP9R'>
                <room>Breakout Room</room>
                <title>Workshop: Beginner&apos;s Python &#8211; a Carpentries Inspired Tutorial</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T10:15:00+13:00</date>
                <start>10:15</start>
                <duration>02:00</duration>
                <abstract>This workshop will use the Software Carpentries Programming with Python tutorial. During this workshop we will start by learning the fundamentals of Python and coding in general, such as variable assignment and working with different types of data. This will lead to a discussion on how to evaluate and visualise tabular data.</abstract>
                <slug>kiwi-pycon-xiv-2025-81542-workshop-beginner-s-python-a-carpentries-inspired-tutorial</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>This workshop is suitable for people who are new to Python.

This lesson is designed to be run on a personal computer. All of the software and data used in this lesson are freely available online, and instructions on how to obtain them are provided below. In this lesson, we will be using Python 3 with some of its most popular scientific libraries.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RJFP9R/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RJFP9R/feedback/</feedback_url>
            </event>
            <event guid='5651580b-b0dc-55e5-b400-a2be1b2cdf65' id='81543' code='AVGXZ3'>
                <room>Breakout Room</room>
                <title>Workshop: Beginner&apos;s Python &#8211; a Carpentries Inspired Tutorial</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T14:15:00+13:00</date>
                <start>14:15</start>
                <duration>01:30</duration>
                <abstract>This workshop will use the Software Carpentries Programming with Python tutorial. During this workshop we will start by learning the fundamentals of Python and coding in general, such as variable assignment and working with different types of data. This will lead to a discussion on how to evaluate and visualise tabular data.</abstract>
                <slug>kiwi-pycon-xiv-2025-81543-workshop-beginner-s-python-a-carpentries-inspired-tutorial</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>This workshop is suitable for people who are new to Python.

This lesson is designed to be run on a personal computer. All of the software and data used in this lesson are freely available online, and instructions on how to obtain them are provided below. In this lesson, we will be using Python 3 with some of its most popular scientific libraries.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/AVGXZ3/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/AVGXZ3/feedback/</feedback_url>
            </event>
            <event guid='f88d922b-c9e0-5c4e-84fa-10b240a0603c' id='81544' code='SA7WNJ'>
                <room>Breakout Room</room>
                <title>Review: Beginner&apos;s Python &#8211; a Carpentries Inspired Tutorial</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-11-21T16:00:00+13:00</date>
                <start>16:00</start>
                <duration>02:00</duration>
                <abstract>Post workshop review/assistance session</abstract>
                <slug>kiwi-pycon-xiv-2025-81544-review-beginner-s-python-a-carpentries-inspired-tutorial</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SA7WNJ/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SA7WNJ/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2025-11-22' start='2025-11-22T04:00:00+13:00' end='2025-11-23T03:59:00+13:00'>
        <room name='Plenary Space' guid='0c29f11c-47cd-51df-afe9-4dd9b30a6b18'>
            <event guid='8b0f1d3e-9e46-5594-acb5-6c83c87cffd9' id='81552' code='XVT3PR'>
                <room>Plenary Space</room>
                <title>Conference Opening</title>
                <subtitle></subtitle>
                <type>Event</type>
                <date>2025-11-22T09:00:00+13:00</date>
                <start>09:00</start>
                <duration>00:15</duration>
                <abstract>A warm welcome to Kiwi PyCon!</abstract>
                <slug>kiwi-pycon-xiv-2025-81552-conference-opening</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/XVT3PR/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/XVT3PR/feedback/</feedback_url>
            </event>
            <event guid='b91a3703-d9ff-5ccc-821e-8ad2010da424' id='81538' code='VYYNLV'>
                <room>Plenary Space</room>
                <title>Keynote: Skill Issue</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-11-22T09:15:00+13:00</date>
                <start>09:15</start>
                <duration>01:00</duration>
                <abstract>I make code for a living. I also make code, and other things, for fun. I love learning new things and discovering new tools. So when I run into a tool that everyone tells me is the future of coding but I just can&#8217;t bring myself to accept it, what do I do?

Large language models are the future of coding, right? It&#8217;s what everyone&#8217;s saying. It&#8217;s what everyone&#8217;s boss is saying. We all need to get on board or get left behind.

Is this true? What makes a change like this inevitable? What makes a change like this good?

When things like this come along and I find myself disagreeing it&#8217;s always interesting to try and work out where that&#8217;s coming from. Sometimes it&#8217;s easy, sometimes it&#8217;s a whole journey that involves a lot of self-reflection and a bunch of reading about history.

So, am I being paranoid? Is this change inevitable and I just need to get over it? Is it just... a skill issue?

Join me as I try to unpack what worries me about all this, what I think LLMs can and should be used for, what we might expect given things that have happened in the past, and what this has to do with some guy called Ned Ludd.</abstract>
                <slug>kiwi-pycon-xiv-2025-81538-keynote-skill-issue</slug>
                <track></track>
                
                <persons>
                    <person id='73014'>Benno Rice</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/VYYNLV/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/VYYNLV/feedback/</feedback_url>
            </event>
            <event guid='ec76b5d2-1d37-51c2-8588-5fa02ee7bebd' id='80092' code='ZHALVB'>
                <room>Plenary Space</room>
                <title>Building Resilient Live Service Games with Python: Lessons from the Trenches</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T10:30:00+13:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Live service games present unique challenges: real-time multiplayer interactions, constant content updates, complex game state management, and the need for high uptime when players depend on your servers. This talk explores how Python&apos;s ecosystem can be leveraged to build robust, scalable game backends that handle these demands.

Through real examples from developing &quot;Demon&apos;s Hand,&quot; a live multiplayer card game, we&apos;ll examine practical solutions for common game development challenges: implementing async-first architectures for handling concurrent player actions, designing flexible data models that evolve with game content, managing real-time state synchronization, and building systems that gracefully handle the unpredictable nature of player behaviour.

You&apos;ll learn how modern Python tools like HTTPX, asyncio, pyinstrument, and AWS services combine to create responsive game experiences, and discover why Python&apos;s rapid development cycle makes it ideal for the iterative nature of game development.</abstract>
                <slug>kiwi-pycon-xiv-2025-80092-building-resilient-live-service-games-with-python-lessons-from-the-trenches</slug>
                <track></track>
                
                <persons>
                    <person id='80974'>Willem Thiart</person>
                </persons>
                <language>en</language>
                <description>This presentation draws from real-world experience building and maintaining a live multiplayer card game. We&apos;ll dive into:

**Technical Deep-Dives:**
  - Need to go fast! asyncio, orjson, uvloop
  - Performance profiling in production with pyinstrument
  - WebSocket management for real-time gameplay
  - DynamoDB design patterns for game data (eg. realtime scoreboards)
  - SQS for event-driven architecture
  - Implementing game mechanics like card effects and combat resolution (eg. Python DSLs)

**Architecture Decisions:**
  - Why we chose Python for game server development
  - Google Sheets as a flexible game rules engine
  - Async-first design patterns for handling concurrent player actions
  - Service architecture with interface/implementation separation
  - Performance optimization: HTTPX vs boto3 and connection pooling</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/ZHALVB/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/ZHALVB/feedback/</feedback_url>
            </event>
            <event guid='03bcbada-a358-5555-bc00-d3a45c02bbb5' id='80025' code='UVFZLF'>
                <room>Plenary Space</room>
                <title>How UX Can Improve Your Python Project</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T11:05:00+13:00</date>
                <start>11:05</start>
                <duration>00:30</duration>
                <abstract>Making code for other people to use is hard work. We have to think about bugs, performance, integration, maintainability, and much more. Making user-friendly code is just one of the many priorities competing for time. In the case of the SOFA Stats Python library, user experience is not a nice-to-have. To be successful, SOFA Stats needs to reach beyond the Python community and be usable by people with very modest technical skills. UV makes this a lot easier but we should not underestimate the barrier to non-developers. The library needs to be appealing, welcoming, and even fun. Fun is not a word commonly associated with statistical programming so this clearly requires effort and a strategy. Which is where UX makes a valuable contribution. UX has a systematic hyper-focus on the people the code is intended for, and how to provide them with the best possible experience. For this project, three persona were identified: students, educators, and code contributors. Clarity about target users is crucial to avoid the natural tendency to develop software for people like ourselves. Instead of working from our own assumptions and hunches we interview a representative range of people. Care is taken to avoid only hearing what we want to hear. The process is also iterative. We listen, respond to what we hear, and try again. This talk will explain how UX techniques were used, and what changed in the SOFA Stats library as a result. Maybe you will be inspired to use UX to improve your own project.</abstract>
                <slug>kiwi-pycon-xiv-2025-80025-how-ux-can-improve-your-python-project</slug>
                <track></track>
                
                <persons>
                    <person id='80905'>Grant Paton-Simpson</person><person id='80911'>Charlotte Paton-Simpson</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/UVFZLF/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/UVFZLF/feedback/</feedback_url>
            </event>
            <event guid='67ff6498-9853-5d78-a4f7-35733002d054' id='79813' code='QMZCQN'>
                <room>Plenary Space</room>
                <title>Making up with Testing: Old and New lessons for loving your tests again</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T11:40:00+13:00</date>
                <start>11:40</start>
                <duration>00:30</duration>
                <abstract>Testing is one of those things that we don&apos;t often talk about, probably because people don&apos;t think there is much to it. Just write a few tests to show that your code works and off you go, right?
There is so much more value in tests that is waiting to be unlocked! This talk aims to re-enlighten developers about how to write great tests, from how to maximise communication through your tests to how to harness AI to make your tests great again.</abstract>
                <slug>kiwi-pycon-xiv-2025-79813-making-up-with-testing-old-and-new-lessons-for-loving-your-tests-again</slug>
                <track></track>
                
                <persons>
                    <person id='80703'>Richard Forshaw</person>
                </persons>
                <language>en</language>
                <description>Writing good tests is important because it&apos;s about communication just as much as showing your code works. Communication to future developers (including yourself) about how your code works, communication to the product team and stakeholders about what the product does, and even communication about domains and architecture.
In this talk, we will discuss:
- what bad tests look like and why they are bad
- the audiences for tests
- tips for how to present your tests to be understandable
- using the Given/When/Then style
- developing a domain specific test language
- the benefits of BDD
- using AI to help with all the above</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QMZCQN/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QMZCQN/feedback/</feedback_url>
            </event>
            <event guid='b0089810-1898-5f6f-a173-6f8a01838d7b' id='80277' code='R9BK8Y'>
                <room>Plenary Space</room>
                <title>Mapping the Open Source Ecosystem for Climate Science and Sustainable Technology</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T14:15:00+13:00</date>
                <start>14:15</start>
                <duration>00:30</duration>
                <abstract>The climate crisis poses a severe threat to the natural systems that support modern civilization, disrupting essential cycles that provide freshwater, fertile soils, and stable weather patterns. These disruptions are projected to lead to widespread biodiversity loss and to upset local and global economies. To ensure that the scientific basis of these projections is transparent and credible, researchers globally are increasingly making climate data and models openly available. This openness supports informed decision-making and helps safeguard sustainable development from being compromised by short-term political or economic agendas.

Despite this progress in open science, the broader application of open source software and open data in climate and sustainability-related technologies remains limited. National governments, international organizations, academia, industry, and civil society have all played roles in both contributing to the crisis and proposing solutions. However, fragmented, proprietary approaches persist. Open source offers a powerful alternative&#8212;lowering costs, enhancing verifiability, and enabling collaboration across disciplines and sectors.

In this talk, I&apos;ll introduce OpenSustain.tech, the most comprehensive dataset of over 2,500 open source projects directly addressing the climate crisis. I&apos;ll detail the transparent methodology used to curate this collection, including human expert review across multiple fields, and talk a bit about the network of transitive dependencies among these projects, extending previous work in mapping the climate-focused open source ecosystem.

I&apos;ll talk about which projects are written in Python, and discuss which projects seem to be most relevant to the climate crisis. Finally, I&apos;ll discuss the strategic importance of open source and Python in advancing climate solutions.</abstract>
                <slug>kiwi-pycon-xiv-2025-80277-mapping-the-open-source-ecosystem-for-climate-science-and-sustainable-technology</slug>
                <track></track>
                
                <persons>
                    <person id='81276'>Richard Littauer</person>
                </persons>
                <language>en</language>
                <description>This talk will be the second time I have given this talk, as earlier in the week I will be presenting a paper on the larger work at the OpenForum Academy Symposium in Rio, https://symposium.openforumeurope.org/. This talk will focus on the Python aspects as much as possible.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/R9BK8Y/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/R9BK8Y/feedback/</feedback_url>
            </event>
            <event guid='cd1d9af6-e018-5632-9974-7d298e082f95' id='74112' code='3PKJSQ'>
                <room>Plenary Space</room>
                <title>From COBOL to Copilots: Why &#8220;No-Code&#8221; Never Kills the Coder</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T14:50:00+13:00</date>
                <start>14:50</start>
                <duration>00:45</duration>
                <abstract>Every few years somebody swears the newest tool to magically avoid needing developers will boot developers out of a job. Yet here we are, still coding, still shipping. Come along for a quick tour from COBOL&#8217;s &#8220;English you can compile&#8221; to today&#8217;s LLM powered vibe coding agents and see why each wave of &#8220;code without coders&#8221; crashed on the same rocks. You&#8217;ll leave with a pocketful of history, a nose for hype, and concrete ways to pair AI helpers with your hard-won craft instead of handing the keys over.</abstract>
                <slug>kiwi-pycon-xiv-2025-74112-from-cobol-to-copilots-why-no-code-never-kills-the-coder</slug>
                <track></track>
                
                <persons>
                    <person id='73891'>Sam Bishop</person>
                </persons>
                <language>en</language>
                <description>Software history is riddled with promises that business folk would simply _describe_ what they want and let the machine do the rest. COBOL and BASIC claimed managers would write their own programs. HyperTalk let anyone click-build a HyperCard stack. BPML and UML tried to generate systems straight from diagrams created by managers and experts in meetings. Constraint based rule engines argued that if you just captured every rule, which managers could just write down, then the code would materialise. Low-code platforms repackaged the dream for the web, and now LLM agentic assistants and &#8220;natural-language&#8221; IDEs are the latest contenders.  

So why do we keep hearing the same pitch? Because messy requirements, tacit knowledge, and perpetual change leak through every abstraction. Instead of vanishing, the complexity just moves... While developers, adapt, debug, and keep the lights on. History shows each wave actually _creates_ new niches for people who can straddle business intent and technical reality.

In this talk I&#8217;ll:

&#8226; Zip through six decades of attempts to eliminate developers, their bright ideas, brief wins, and spectacular failures.
&#8226; Unpack the recurring traps: expressive ceilings, accidental complexity, maintenance drag, governance headaches.
&#8226; Show how every cycle boosted demand for devs by making it easier to do business rather than development.
&#8226; Hand you dead simple heuristics for sniff testing the big promises, spotting where these tools can help instead of hinder, and how to team up with AI tools without handing over your craft.

Expect a breezy ride full of war stories, face-palm moments, and a few &#8220;hey, that actually worked&#8221; surprises.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/3PKJSQ/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/3PKJSQ/feedback/</feedback_url>
            </event>
            <event guid='2f5e36d5-85a0-5631-9c32-a61c75fed99c' id='73992' code='RJPAHM'>
                <room>Plenary Space</room>
                <title>Hello Operator: Please connect me to 2025</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T16:00:00+13:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>What happens when you connect 1920s technology to that of the 2020s? This talk! It&apos;s equal parts nostalgia project, technical curiosity, and bleeding-edge research all in one. And along the way we&apos;ll all experience what we&apos;ve gained - and lost - in our rush toward automated everything.</abstract>
                <slug>kiwi-pycon-xiv-2025-73992-hello-operator-please-connect-me-to-2025</slug>
                <track></track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/RJPAHM/oldphone_eLra4PG.jpg</logo>
                <persons>
                    <person id='72456'>notnotcharlie</person>
                </persons>
                <language>en</language>
                <description>In this admittedly gimmicky experiment, I chronicle bridging 100 years of communication technology: from human-powered switchboards and analogue circuits to modern natural language processing. Includes adventures into testing the components on these devices, developing a digital interface to analogue signals, then developer a virtual operator to simulate what might be the closest modern thing to a 1920s telephone experience.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RJPAHM/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/RJPAHM/feedback/</feedback_url>
            </event>
            <event guid='e96bec15-5dd3-5df5-ba45-37b4b4b98ee7' id='79726' code='UHTMCV'>
                <room>Plenary Space</room>
                <title>Things that Python got wrong, and how Python fixed them</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T16:35:00+13:00</date>
                <start>16:35</start>
                <duration>00:30</duration>
                <abstract>Python is a Good Language. It was a Good Language when I started using it. It probably was for you, too.

But Python is a very different language these days. The Python of 3.14 is noticeably not the same as the Python of 3.9, which is noticeably not the same as the Python of 3.6, and so on. And let&apos;s not mention the difference between Python 2.6 and 3.0 (oops).

Is the language you thought was a Good Language when you first used it still a Good Language? If it is, why are you using newer versions?

While new language features have (traditionally) had a high bar for integration into the language, resulting in an opinionated set of features that is generally Pretty Good, not everything is. Python has made design mistakes throughout its existence, but somewhat uniquely among languages, it&apos;s made concerted efforts to improve upon those mistakes and socialise the improved versions. 

We&apos;re going to look at a history of language features in Python, we&apos;ll look at what we have now, and what unfortunateness we&apos;ve left along the way.</abstract>
                <slug>kiwi-pycon-xiv-2025-79726-things-that-python-got-wrong-and-how-python-fixed-them</slug>
                <track>Pythonista</track>
                
                <persons>
                    <person id='80635'>Christopher Neugebauer</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/UHTMCV/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/UHTMCV/feedback/</feedback_url>
            </event>
            <event guid='b143a6bc-561e-5292-ba09-1e1250a4c218' id='81551' code='LLAFCE'>
                <room>Plenary Space</room>
                <title>Battledecks/Announcements</title>
                <subtitle></subtitle>
                <type>Event</type>
                <date>2025-11-22T17:10:00+13:00</date>
                <start>17:10</start>
                <duration>00:50</duration>
                <abstract>An entertaining session where volunteers give lightning-style talks using slides they&#8217;ve never seen before. Expect plenty of laughs, followed by key daily announcements.</abstract>
                <slug>kiwi-pycon-xiv-2025-81551-battledecks-announcements</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LLAFCE/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LLAFCE/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Middle Room' guid='dc0f794c-773b-5217-8f38-7bdd7ca9b42a'>
            <event guid='fd05a9ab-f8f7-5193-9e30-8591863a7ad6' id='84839' code='7UANBF'>
                <room>Middle Room</room>
                <title>Poster Session - Presentation and Q&amp;A</title>
                <subtitle></subtitle>
                <type>Poster</type>
                <date>2025-11-22T15:40:00+13:00</date>
                <start>15:40</start>
                <duration>00:20</duration>
                <abstract>Presenation and Q&amp;A with the creators of the posters included in our Poster Session</abstract>
                <slug>kiwi-pycon-xiv-2025-84839-poster-session-presentation-and-q-a</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/7UANBF/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/7UANBF/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Breakout Room' guid='a15f67ba-af87-575d-87cd-55c6080e4ce5'>
            <event guid='42db547a-672a-5b43-8c38-d187e9a37ff8' id='71979' code='QUDN8S'>
                <room>Breakout Room</room>
                <title>What can looking at Python as a language designer teach us?</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T10:30:00+13:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Although Python is an interpreted language, the main interpreter - CPython - first compiles your code to an intermediate bytecode representation which is then interpreted. To understand how it works we can look at how we could write our own language that compiles to CPython bytecode.</abstract>
                <slug>kiwi-pycon-xiv-2025-71979-what-can-looking-at-python-as-a-language-designer-teach-us</slug>
                <track>Pythonista</track>
                
                <persons>
                    <person id='72069'>Oscar Horne</person>
                </persons>
                <language>en</language>
                <description>In this talk we&apos;ll see an overview of the CPython interpreter and go through how you could implement a language that runs on it yourself. The end goal of the presentation will be to show how to write a compiler that can compile a small program that takes user input and calculates Fibonacci numbers. Along the way we should understand more about the interpreter&apos;s design, and how the design of the language as a whole lead to the interpreter we have today</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QUDN8S/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QUDN8S/feedback/</feedback_url>
            </event>
            <event guid='de22c27c-1463-5f02-abfe-93a3706a121c' id='72661' code='YUUZ8A'>
                <room>Breakout Room</room>
                <title>DNS as Code: A Review Of What&apos;s Out There</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T11:05:00+13:00</date>
                <start>11:05</start>
                <duration>00:30</duration>
                <abstract>A practical review of various DNS management practices, ranging from manual configuration and writing your own zone files, to using provider control panels, tools like OctoDNS and DNSControl, and infrastructure-as-code approaches such as Terraform. It also covers custom scripting techniques that interact directly with DNS provider APIs. Each method is evaluated in terms of maintainability, suitability for different environments, and how it integrates with modern infrastructure management workflows. The session concludes with a look at how I use a simple Python module to create a transparent and adaptable alternative workflow.</abstract>
                <slug>kiwi-pycon-xiv-2025-72661-dns-as-code-a-review-of-what-s-out-there</slug>
                <track></track>
                
                <persons>
                    <person id='82124'>John Billings</person>
                </persons>
                <language>en</language>
                <description>I&apos;ll share my journey exploring DNS as Code using Python, from the early days of editing named.conf and zone files directly on nameservers&#8212;with fond memories of working with BIND and PowerDNS&#8212;to evaluating libraries and tools like OctoDNS, StackExchange&apos;s DNSControl, and Terraform. Along the way, I&#8217;ll explain why I ultimately prefer using Python to interact directly with providers such as Metaname and Namecheap.

You&#8217;ll see a practical DNS-as-Code workflow in action: managing zone files in Git, automating updates via provider APIs, and maintaining clarity and control without unnecessary complexity. Whether you&apos;re managing a handful of personal domains or supporting production infrastructure, this session offers tools, patterns, and perspective to bring DNS firmly under code-based management.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/YUUZ8A/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/YUUZ8A/feedback/</feedback_url>
            </event>
            <event guid='24b93f2e-a0f0-5fb6-9497-afa0e0104b3b' id='79966' code='DKJHXQ'>
                <room>Breakout Room</room>
                <title>Pimping my ride with MicroPython</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T11:40:00+13:00</date>
                <start>11:40</start>
                <duration>00:30</duration>
                <abstract>Under duress from some of my mates I recently bought a bush truck. It has a rear mounted radiator and a couple of manually switched radiator fans that need to be operated based on the temperature gauge reading. It turns out that I am only barely capable of monitoring the gauge while keeping the vehicle pointed in the right direction so I decided to automate it. Despite there being a trivially easy and robust off-the-shelf way to do this I decided to use a microcontroller running MicroPython instead, because ... why not? This talk will describe the design, construction, coding, and performance of the system using several different control strategies.</abstract>
                <slug>kiwi-pycon-xiv-2025-79966-pimping-my-ride-with-micropython</slug>
                <track></track>
                
                <persons>
                    <person id='80843'>Glenn Ramsey</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/DKJHXQ/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/DKJHXQ/feedback/</feedback_url>
            </event>
            <event guid='1ec8ecba-9752-54c0-8da1-e3ece5238e1f' id='80276' code='J7NBXS'>
                <room>Breakout Room</room>
                <title>Unlocking Document Intelligence with Open-Source AI</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T14:15:00+13:00</date>
                <start>14:15</start>
                <duration>00:30</duration>
                <abstract>Most organizational knowledge is still locked inside complex documents, making it difficult to extract and use the information effectively. Traditional tools often fail when working with real-world PDFs. Tables lose their structure, figures are separated from captions, and multi-column layouts are flattened into unreadable text. These issues create a significant barrier to using AI on real document data.

The open-source project Docling presents a new approach to document ingestion that mirrors human comprehension using open-source deep learning models in a neat Python package. The system extracts structured information through consistent APIs, preserving original document hierarchy while ensuring machine readability.

With support for over ten of the most common file formats and a consistent API, Docling enables production-ready document processing pipelines and provides seamless integration with established frameworks including LangChain and LlamaIndex, as well as multilingual support. Its MIT license and local execution model make it suitable for sensitive enterprise applications.</abstract>
                <slug>kiwi-pycon-xiv-2025-80276-unlocking-document-intelligence-with-open-source-ai</slug>
                <track></track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/J7NBXS/doclingduck_k9gj2Mb.png</logo>
                <persons>
                    <person id='82136'>Mingxuan Zhao</person>
                </persons>
                <language>en</language>
                <description>In this session, you&apos;ll get an in-depth introduction to the open source project Docling and how it can streamline your workflow. With over 36,000 stars on Github in a year, Docling is fastest growing open source project out of IBM. We will go through live coding demos that will walk you through the basics of how to use Docling, and showcase the advanced features Docling has that make your real world data more valuable in AI applications.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://github.com/docling-project/docling">Docling Github Repo</link>
                </links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/J7NBXS/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/J7NBXS/feedback/</feedback_url>
            </event>
            <event guid='b88f07e1-5f44-5a8f-9de1-6ae9c0eb6da3' id='78604' code='CNUK7N'>
                <room>Breakout Room</room>
                <title>Python &amp; multiprocessing: Fork&apos;ed !</title>
                <subtitle></subtitle>
                <type>Extended talk</type>
                <date>2025-11-22T14:50:00+13:00</date>
                <start>14:50</start>
                <duration>00:45</duration>
                <abstract>This talk will explore the various ways of spawning processes in Python (subprocess, multiprocessing, concurrent.futures, fork, vfork, posix_spawn, etc.) and how those implementations inside Python have been leading to regular dead-locks and hard crashes for many years in production environments.</abstract>
                <slug>kiwi-pycon-xiv-2025-78604-python-multiprocessing-fork-ed</slug>
                <track>Pythonista</track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/CNUK7N/fork1_qYKyDOC.png</logo>
                <persons>
                    <person id='79628'>Teijo Holzer</person>
                </persons>
                <language>en</language>
                <description>This talk will introduce the multiple different ways of spawning sub-processes in Python with simple &amp; easy to understand examples. We will then have a brief look at the different implementations and their various use-cases.

Then we will show how spawning processes in Python has always been fraught with problems for over 15 years. We will show real-world examples of seemingly unexplainable dead-locks and hard crashes when spawning processes in Python, especially in the context of multi-threaded applications.

Lastly, we explain the reasons for those hard-to-debug dead-locks &amp; hard crashes, show the problems that are associated to this day with using os.fork() &amp; os.register_at_fork(). Then we will offer up how alternatives like os.posix_spawn() + vfork can help to make your Python programs more robust.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/CNUK7N/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/CNUK7N/feedback/</feedback_url>
            </event>
            <event guid='192e70c7-38a7-50a0-8573-c98edc8db66e' id='80009' code='BNLJUZ'>
                <room>Breakout Room</room>
                <title>Get a GRIB</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T16:00:00+13:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>In meteorology and geosciences, the use of GRIB files is a common occurrence. GRIB files are binary blobs of data that contain &quot;lines&quot; of 2 dimensional information about the weather and forecasts.
Every meteorological service deals with these files in a different way. For the New Zealand MetService, we must manipulate them (using Python, of course), to match the local systems. In this talk I&apos;ll cover what libraries are best for this process, and how they can be used to get the right data in the right files.</abstract>
                <slug>kiwi-pycon-xiv-2025-80009-get-a-grib</slug>
                <track></track>
                
                <persons>
                    <person id='80887'>Simon `Firesphere` Erkelens</person>
                </persons>
                <language>en</language>
                <description>GRIB files can be created by simply concatenating different grib message lines, and even mix versions of GRIB (0, 1, or 2). As the different datasets have no relation to each other, the data can be grouped in different ways, such as per variable, per datapoint, per date, etc.
Each system that uses these files has its own preference as to how they are grouped and sorted, and to get all data from one grouping to another, the files need to be read, manipulated and written.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/BNLJUZ/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/BNLJUZ/feedback/</feedback_url>
            </event>
            <event guid='051d3f84-9dac-5341-8977-a6b1f13deae5' id='79873' code='SCASYU'>
                <room>Breakout Room</room>
                <title>Mitigating AI Misuse in Introductory Python Courses with Graphical Programming Tasks</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-22T16:35:00+13:00</date>
                <start>16:35</start>
                <duration>00:30</duration>
                <abstract>As large language models (LLMs) reshape how students engage with programming, educators face increasing challenges in maintaining academic integrity (An et al., 2025; McDonald et al., 2025). Drawing on the presenter&apos;s doctoral research, this talk explores how visual programming tasks can meaningfully resist unauthorised AI assistance, offering a robust alternative to conventional text-based exercises that are highly susceptible to automation.

Central to this approach is Thonny-py5mode -- a creative coding extension for the beginner-friendly Thonny IDE, developed as part of the broader PhD research project. It enables graphical output via py5, a Processing-inspired Python library for programming interactive graphics, animations, and applications (Schmitz, 2021).

The talk builds on findings by McDanel and Novak (2025), who observed that LLMs often struggle with assignments involving graphical output, especially when correctness hinges on appearance rather than testable outcomes. We present a series of Thonny-py5mode tasks used in undergraduate assessment and evaluate the performance of leading LLMs (GPT-4o, Claude Sonnet 4, Gemini 2.5) in replicating them. This session offers a scalable, discipline-agnostic strategy -- adaptable to other Python graphics libraries -- for promoting conceptual understanding, supporting creativity, and designing resilient assessments in the GenAI era.</abstract>
                <slug>kiwi-pycon-xiv-2025-79873-mitigating-ai-misuse-in-introductory-python-courses-with-graphical-programming-tasks</slug>
                <track></track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/SCASYU/talk_image_F5AI_HR3b3Zo.webp</logo>
                <persons>
                    <person id='80762'>Tristan Bunn</person>
                </persons>
                <language>en</language>
                <description>GitHub resources include sample assessment briefs, starter code, and other materials for practical teaching and learning.

https://github.com/tabreturn/pycon-2025</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SCASYU/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/SCASYU/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='3' date='2025-11-23' start='2025-11-23T04:00:00+13:00' end='2025-11-24T03:59:00+13:00'>
        <room name='Plenary Space' guid='0c29f11c-47cd-51df-afe9-4dd9b30a6b18'>
            <event guid='bda8c8e7-8d3f-5a93-a6df-baa92e0982ac' id='81553' code='3DG9ZF'>
                <room>Plenary Space</room>
                <title>Housekeeping/Announcements</title>
                <subtitle></subtitle>
                <type>Event</type>
                <date>2025-11-23T09:00:00+13:00</date>
                <start>09:00</start>
                <duration>00:10</duration>
                <abstract>A short session covering key information about the venue, schedule, and practical details to help you make the most of the conference.</abstract>
                <slug>kiwi-pycon-xiv-2025-81553-housekeeping-announcements</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/3DG9ZF/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/3DG9ZF/feedback/</feedback_url>
            </event>
            <event guid='bb47d8a2-83c7-53f4-ba34-612a7764afa0' id='81539' code='MXE9E8'>
                <room>Plenary Space</room>
                <title>Keynote: A Neurodivergent Career--Making Work Fit Us</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-11-23T09:10:00+13:00</date>
                <start>09:10</start>
                <duration>01:00</duration>
                <abstract>Neurodivergent brains can excel at tech, but excelling in formal employment can be more difficult! Most jobs are designed for the mythical neurotypical brain, and many are a particularly poor fit even for well-qualified neurodivergent brains. Learn about strategies that might work for different kinds of neurodivergent brains to adapt these neurotypical-centric jobs to neurodivergent brains. Knowing what adaptations can actually help and how to get those adaptations is important! This talk will give some examples and strategies to shape a job to fit a neurodivergent brain better. Joelle will also encourage those with lead, partnership, or management responsibility to consider alternatives to the ways we&apos;ve always done things, to allow more people to do amazing work in tech.

This talk will draw from 25 years of professional experience in both tech and neurodivergent communities. It will go beyond the simple answers given to neurodivergent folks in the workplace (&quot;Wear noise-cancelling headphones!&quot;) and instead talk about what a job that actually fits some neurodivergent brains might look like. How do we communicate/collaborate with coworkers? Get feedback? Use technology and scripting to assist us? I will mix tech solutions and non-tech solutions to the problems with neurotypical-centric employment. I hope to present a vision of neurodivergent employment futures.</abstract>
                <slug>kiwi-pycon-xiv-2025-81539-keynote-a-neurodivergent-career-making-work-fit-us</slug>
                <track></track>
                
                <persons>
                    <person id='79751'>Joelle Maslak</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/MXE9E8/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/MXE9E8/feedback/</feedback_url>
            </event>
            <event guid='bd4fa1c2-66c2-5bb6-be3c-541c771bb70d' id='80026' code='TMGEP3'>
                <room>Plenary Space</room>
                <title>Spatial forecasting of housing development in Wellington with an all-python stack</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T10:25:00+13:00</date>
                <start>10:25</start>
                <duration>00:30</duration>
                <abstract>Crow Advisory chose python for their spatial forecast analysis of the Wellington housing development response to Wellington&apos;s 2024 District Plan, which greatly increased allowable building capacity across the city. We&apos;ll talk through the tools we used, the design approach, and what we learned about doing spatial data science in python.</abstract>
                <slug>kiwi-pycon-xiv-2025-80026-spatial-forecasting-of-housing-development-in-wellington-with-an-all-python-stack</slug>
                <track></track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/TMGEP3/Khandallah-Ngaio_TkD0qti.png</logo>
                <persons>
                    <person id='82126'>Chris Crow</person><person id='82366'>Nathan Stocker</person><person id='82995'>Rhys Williams</person>
                </persons>
                <language>en</language>
                <description>Tools used include 
- `poetry` for dependency management, 
- `hydra` (via `hydra-zen`) with `dataclasses` for config management, CLI setup, and keeping a record of config inputs vs model outputs
- `DVC` for data version control, preprocessing management, efficient pipeline runs, and more tracking of inputs vs outputs
-  `loguru` for logging and terminal outputs
- `pandas`, `numpy`, and `geopandas` for data wrangling 
- `osmnx` and `networkx` for street and public transport network analysis
- &apos;statsmodels&apos;, `scikit-learn`, `econML`, `scipy`, and `pulp` for modelling and prediction
- `matplotlib` and `pyDeck` for visualisation
- Github for source control</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/TMGEP3/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/TMGEP3/feedback/</feedback_url>
            </event>
            <event guid='61c66fde-2705-5519-a0f1-29ef41e3cfab' id='74093' code='NCQUNS'>
                <room>Plenary Space</room>
                <title>N&#257; taku rourou: getting involved in (C)Python development</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T11:00:00+13:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>There are many ways to contribute to Python; here is mine.

It can be daunting to engage with a mature, large, and complex code base, and the associated processes, community, and culture. This talk will discuss my experience as a new CPython contributor, my approach, how it is going, things I&apos;ve learned, and what I hope to do next.</abstract>
                <slug>kiwi-pycon-xiv-2025-74093-na-taku-rourou-getting-involved-in-c-python-development</slug>
                <track>Pythonista</track>
                
                <persons>
                    <person id='73879'>Duane Griffin</person>
                </persons>
                <language>en</language>
                <description>I&apos;ve had the privilege of being able to dedicate a fair amount of time to open-source work recently. I&apos;ve spent several months going through CPython&apos;s open bugs: looking at interesting ones, reproducing and verifying, analysing, and providing a comment or bug fix if it seems useful and appropriate.

I&apos;ll discuss why I want to contribute to CPython, how I am going about it, some preliminary results, metrics, technical challenges, reflections, and plans for the future.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/NCQUNS/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/NCQUNS/feedback/</feedback_url>
            </event>
            <event guid='e3ca27a3-16cf-57e3-b756-0ed1045c6c69' id='80274' code='QK8YFT'>
                <room>Plenary Space</room>
                <title>An introduction to Polars: &apos;DataFrames for the new era&apos;</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T11:35:00+13:00</date>
                <start>11:35</start>
                <duration>00:30</duration>
                <abstract>Polars (pola.rs) is a new addition to the family of &quot;DataFrame&quot; data manipulation and analysis libraries. In the Python world it&apos;s rapidly becoming a highly performant &quot;competitor&quot; to the Pandas library for data science and data processing.

This talk is an introduction to the library and its usage, aimed at beginners as well as people who have done some work with Pandas, for comparison.</abstract>
                <slug>kiwi-pycon-xiv-2025-80274-an-introduction-to-polars-dataframes-for-the-new-era</slug>
                <track></track>
                
                <persons>
                    <person id='81274'>Tom Eastman</person>
                </persons>
                <language>en</language>
                <description>Polars (pola.rs) is a new addition to the family of &quot;DataFrame&quot; data manipulation and analysis libraries. In the Python world it&apos;s rapidly becoming a highly performant &quot;competitor&quot; to the Pandas library for data science and data processing.

This talk is an introduction to the library and its usage, aimed at beginners as well as people who have done some work with Pandas, for comparison.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QK8YFT/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QK8YFT/feedback/</feedback_url>
            </event>
            <event guid='8525a5d8-20c0-5ae0-b5a2-b8de0d54b829' id='80081' code='YHYFQP'>
                <room>Plenary Space</room>
                <title>Python at Scale - Using New Zealand National Supercomputing Infrastructure.</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T14:10:00+13:00</date>
                <start>14:10</start>
                <duration>00:30</duration>
                <abstract>As well as being the worlds favorite programming language, Python is also the most widely used language on New Zealand&#8217;s national supercomputing infrastructure, supporting a wide range of research applications.
Learn about the different ways Python is being used at scale on the REANNZ High Performance Computing cluster. 
With examples of New Zealand researchers applying Python to pressing challenges, and showing how newcomers can get started, setting up an environment, submitting jobs, and scaling workflows.</abstract>
                <slug>kiwi-pycon-xiv-2025-80081-python-at-scale-using-new-zealand-national-supercomputing-infrastructure</slug>
                <track></track>
                <logo>/media/kiwi-pycon-xiv-2025/submissions/YHYFQP/software_wordclo_V6fKouA.png</logo>
                <persons>
                    <person id='80960'>callum walley</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/YHYFQP/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/YHYFQP/feedback/</feedback_url>
            </event>
            <event guid='2a1ba359-b09c-5488-b7d4-04f302aab4df' id='81550' code='DHCKDT'>
                <room>Plenary Space</room>
                <title>Lightning Talks</title>
                <subtitle></subtitle>
                <type>Event</type>
                <date>2025-11-23T15:00:00+13:00</date>
                <start>15:00</start>
                <duration>01:30</duration>
                <abstract>A series of rapid-fire five-minute talks where attendees share projects, ideas, and insights. Fast-paced, fun, and full of surprises.</abstract>
                <slug>kiwi-pycon-xiv-2025-81550-lightning-talks</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/DHCKDT/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/DHCKDT/feedback/</feedback_url>
            </event>
            <event guid='f5a29556-520e-5c4b-b352-57a0f245c245' id='81554' code='LMD37P'>
                <room>Plenary Space</room>
                <title>Conference Closing</title>
                <subtitle></subtitle>
                <type>Event</type>
                <date>2025-11-23T16:30:00+13:00</date>
                <start>16:30</start>
                <duration>00:10</duration>
                <abstract>We&#8217;ll come together one last time to reflect on highlights, thank our contributors, and close the conference on an inspiring note.</abstract>
                <slug>kiwi-pycon-xiv-2025-81554-conference-closing</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LMD37P/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/LMD37P/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Breakout Room' guid='a15f67ba-af87-575d-87cd-55c6080e4ce5'>
            <event guid='a501ccd3-44d0-57f3-83e3-b1f9361277a2' id='84622' code='WWU79Z'>
                <room>Breakout Room</room>
                <title>Network State Checking: A Case Study in Automation using Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T10:25:00+13:00</date>
                <start>10:25</start>
                <duration>00:30</duration>
                <abstract>Dependability is the watchword for any telecommunications operator. Sound monitoring goes a long way to ensure continuity of service, but typically this relies on known existing metrics to be effective. When the network changes and these metrics are invalidated, it can be challenging to confirm there is no ongoing service impact for the end user. 

This was the challenge that REANNZ faced in the past year as we undertook a hardware refresh affecting our entire domestic backhaul. Every service we deliver was required to be rehomed and reimplemented according to a new network architecture. To catalogue every possible service and establish individually the evidence that would be required to prove their continuity after migration would require an enormous time-investment and be prone to error, so we instead developed a generalised service model and implemented automation with Python to reason from live data pulled from our network. New configuration was generated consistent with the requirements of our new hardware, and feedback produced at the time of implementation describing in clear detail a comparison between old and new running state. This model was iterated upon based on our learnings over time until it could accurately verify even highly bespoke configurations.

In this presentation, I propose to demonstrate the workings of this system with case studies from our experience. I will explain the challenges we encountered and how they were overcome, and conclude how ultimately this work proved its worth for our membership.</abstract>
                <slug>kiwi-pycon-xiv-2025-84622-network-state-checking-a-case-study-in-automation-using-python</slug>
                <track></track>
                
                <persons>
                    <person id='85849'>Craig Henderson</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/WWU79Z/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/WWU79Z/feedback/</feedback_url>
            </event>
            <event guid='8f842004-dff6-50e6-b367-8f816da8c8db' id='79905' code='J3RF97'>
                <room>Breakout Room</room>
                <title>The Python and the Pelican</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T11:00:00+13:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>The most recent developments in the world of Python packaging have not only made it easier to package projects, but even to create them. Turbopelican is one such tool which combines one of Python&apos;s most popular tools (a static-site generator) with a modern uv setup to provide the easiest ways to create a website without spending a cent. This talk will discuss how recent changes in the packaging world make this, and so much more, not only possible but easy.</abstract>
                <slug>kiwi-pycon-xiv-2025-79905-the-python-and-the-pelican</slug>
                <track></track>
                
                <persons>
                    <person id='80797'>Elliot Simpson</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/J3RF97/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/J3RF97/feedback/</feedback_url>
            </event>
            <event guid='44fac91a-c1f0-5dd0-ac8f-bace8bb90ef1' id='85024' code='QLETXF'>
                <room>Breakout Room</room>
                <title>Mauling Python to analyse ancient BASIC programs</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T11:35:00+13:00</date>
                <start>11:35</start>
                <duration>00:30</duration>
                <abstract>Firstly, a meander through the creation and evolution of BASIC in the 1960s and &apos;70s and how, as the first programming language designed specifically for a non-technical audience, it relates to Python. Then an explanation of how we can morph Python to allow programming in a BASIC-like flavour of Python, but with the full power of a modern Python development environment available, allowing historic BASIC program analysis. Lines of Python code can be intermingled with lines of BASIC, each accessing the other&#8217;s variables, and runtime code analysis techniques such as interactive debugging, profiling, and code coverage are available.</abstract>
                <slug>kiwi-pycon-xiv-2025-85024-mauling-python-to-analyse-ancient-basic-programs</slug>
                <track></track>
                
                <persons>
                    <person id='86201'>Carl Cerecke</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QLETXF/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/QLETXF/feedback/</feedback_url>
            </event>
            <event guid='251a4031-3d20-50e5-af2b-3e0bdf3a6a2e' id='85135' code='NFZ8UB'>
                <room>Breakout Room</room>
                <title>Brevity</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-11-23T14:10:00+13:00</date>
                <start>14:10</start>
                <duration>00:30</duration>
                <abstract>This is talk about technical communication in large scale complex systems where operational safety is paramount. In such environments, technical phrases, formal procedures, recent biases and individual habits influence how we communicate. But in high risk environments, when miscommunications or misunderstandings occur, it can be catastrophic.</abstract>
                <slug>kiwi-pycon-xiv-2025-85135-brevity</slug>
                <track></track>
                
                <persons>
                    <person id='86317'>Jack Skinner</person>
                </persons>
                <language>en</language>
                <description>Today we&#8217;re going to learn how to fly a plane. Or, specifically, we&#8217;re going to learn how large international jets taxi and take off from a runway.

While thousands of planes take off and land safely every day, occasionally there are some close calls when disaster is averted by sheer luck or coincidence. In those circumstances, we get a safety investigation to help us learn from the mistakes and avoid catastrophic outcomes. This talk learns from one such safety report and we&#8217;ll discuss the parallels software engineers can learn from the aviation industry when communicating in complex operating environments.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/NFZ8UB/</url>
                <feedback_url>https://talks.kiwipycon.nz/kiwi-pycon-xiv-2025/talk/NFZ8UB/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
