<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2026.1.1. -->
<schedule>
    <generator name="pretalx" version="2026.1.1" />
    <version>1.5</version>
    <conference>
        <title>PyCon Sweden 2025</title>
        <acronym>pycon-sweden-2025</acronym>
        <start>2025-10-30</start>
        <end>2025-10-31</end>
        <days>2</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://pretalx.com</base_url>
        
        <time_zone_name>Europe/Stockholm</time_zone_name>
        
        
        <track name="Lightning talk" slug="5958-lightning-talk"  color="#5b8e7d" />
        
        <track name="Keynote" slug="5959-keynote"  color="#5b8e7d" />
        
        <track name="PyCon Sweden" slug="5960-pycon-sweden"  color="#5b8e7d" />
        
        <track name="Education and professional development" slug="5961-education-and-professional-development"  color="#f4a259" />
        
        <track name="Software Engineering, DevOps, Testing, and Security" slug="5962-software-engineering-devops-testing-and-security"  color="#bc4b51" />
        
        <track name="Data Science, AI, and Machine Learning" slug="5963-data-science-ai-and-machine-learning"  color="#669bbc" />
        
        <track name="Web development, applications, and database technologies" slug="5964-web-development-applications-and-database-technologies"  color="#f4a259" />
        
        <track name="Scientific and High-Performance Computing" slug="5965-scientific-and-high-performance-computing"  color="#bc4b51" />
        
    </conference>
    <day index='1' date='2025-10-30' start='2025-10-30T04:00:00+01:00' end='2025-10-31T03:59:00+01:00'>
        <room name='Auditorium' guid='8a48a4a8-5435-565e-8190-5d685663200b'>
            <event guid='b74586a7-bb6b-5c8a-9ac1-f07d85f6935c' id='81721' code='L7GZBW'>
                <room>Auditorium</room>
                <title>Registration</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-30T08:00:00+01:00</date>
                <start>08:00</start>
                <duration>00:45</duration>
                <abstract>TBD</abstract>
                <slug>pycon-sweden-2025-81721-registration</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>TBD</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/L7GZBW/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/L7GZBW/feedback/</feedback_url>
            </event>
            <event guid='a9c2730b-5239-5c49-81d6-44e64c8fa4cb' id='81720' code='Y7YTQQ'>
                <room>Auditorium</room>
                <title>Opening Session</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-30T08:45:00+01:00</date>
                <start>08:45</start>
                <duration>00:15</duration>
                <abstract>Welcome to PyCon Sweden 2025!</abstract>
                <slug>pycon-sweden-2025-81720-opening-session</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Welcome to PyCon Sweden 2025!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/Y7YTQQ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/Y7YTQQ/feedback/</feedback_url>
            </event>
            <event guid='7e1dd753-fc1b-52d7-91e7-4f05448c7cf8' id='74315' code='X3PLGX'>
                <room>Auditorium</room>
                <title>AI is having its moment ... again</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-10-30T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>The current hype around AI can feel like something totally new, but it&#8217;s not the first time we&#8217;ve been here. In fact, this is the third AI era in the past 70 years. Each one came with huge excitement, massive promises, and eventually, a reality check. By looking at the early days of the Dartmouth workshop, the boom of expert systems, and our current era of deep learning, we can get a better sense of how we got here and where we might be headed.

This talk takes a step back from the hype to explore the patterns that keep showing up in AI&#8217;s history. We&apos;ll see how technological, societal and geopolitical factors keep us falling into the same traps over and over when it comes to AI development. We&apos;ll look at technologies that felt cutting edge in their era, but which are now relegated to the history books. And we&apos;ll see what the legacy of previous AI summers has been, and what that might mean for today&apos;s AI era. AI&#8217;s history doesn&#8217;t repeat itself exactly, but it definitely rhymes.</abstract>
                <slug>pycon-sweden-2025-74315-ai-is-having-its-moment-again</slug>
                <track></track>
                
                <persons>
                    <person id='82783'>Jodie Burchell</person>
                </persons>
                <language>en</language>
                <description>This keynote will connect the cycles of AI&#8217;s past to the challenges and opportunities we face today. By drawing lessons from past AI hype cycles, we can gain perspective on how to navigate the current wave of AI with more clarity, context, and realism.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/X3PLGX/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/X3PLGX/feedback/</feedback_url>
            </event>
            <event guid='7dc3b3da-542c-50b3-8d20-ad651d09b988' id='81079' code='EQZQ9P'>
                <room>Auditorium</room>
                <title>The Magic of Self: How Python inserts self into methods</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Chances are that you&#8217;ve noticed that Python magically inserts &#8220;self&#8221; into methods for you. What you might not know is that the power behind this magic is the well-defined descriptor protocol. In fact, descriptors power many of the magical things in Python, from simple properties to lazy-loading attributes on database models.

In this talk, I will explain the magic of self by introducing you to the descriptor protocol. I will show you how this protocol powers the insertion of self and what else you can do with it. By the end, you will have a solid understanding of descriptors and know enough to start implementing descriptors of your own.</abstract>
                <slug>pycon-sweden-2025-81079-the-magic-of-self-how-python-inserts-self-into-methods</slug>
                <track></track>
                
                <persons>
                    <person id='82531'>Sebastiaan Zeeff</person>
                </persons>
                <language>en</language>
                <description>This talk explores the &quot;magic&quot; behind Python&apos;s automatic insertion of self into methods. While beginners are told &quot;don&apos;t worry, it just happens&quot; and experienced developers stop noticing it, there&apos;s fascinating machinery underneath.

I will start my talk by showing the automatic insertion of `self` in action. I will show you that we get an argument &quot;for free&quot; when calling a method: despite only passing a single argument, our method actually receives two values! 

After showing you the Magic of Self in action, we will discuss why this happens. No, it&apos;s not because we named one of the parameters `self` when we defined the method. No, it&apos;s not even the fact that we defined a function within the body of a class. In fact, the magic happens when we access the method.

As it turns out, accessing attributes (including those that are bound to methods) isn&apos;t as simple as it looks at a glance. We can actually influence what happens when we access attributes by implementing something called a descriptor. That&apos;s why I will continue by introducing you to the descriptor protocol and showing you how to implement a descriptor of your own.

Now that we know how descriptors work, we&apos;re finally ready to understand the magic of self. To understand it, we now turn our attention to functions and observe that all functions are, in fact, such descriptors.

I will conclude my talk by providing a few examples of other descriptors that you may find in Python and the standard library.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/EQZQ9P/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/EQZQ9P/feedback/</feedback_url>
            </event>
            <event guid='1d80d6cd-d429-5dda-b893-c39b0fda7f56' id='83326' code='EMCDDD'>
                <room>Auditorium</room>
                <title>Trust and the success of Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>Why has Python become the most used programming language in the world?
Is it the syntax, with indentation as block markers? Is it the lists and the
dicts and the comprehensions? Is it some specific packages like Numpy or
Django?

It certainly isn&apos;t the execution speed, though that is improving a bit.

While some popularity comes from the factors above, my take is that trust
plays a major role in the rise of Python. I will explain what I mean in the
talk.</abstract>
                <slug>pycon-sweden-2025-83326-trust-and-the-success-of-python</slug>
                <track></track>
                
                <persons>
                    <person id='84702'>Jacob Hall&#233;n</person>
                </persons>
                <language>en</language>
                <description>Why has Python become the most used programming language in the world?
Is it the syntax, with indentation as block markers? Is it the lists and the
dicts and the comprehensions? Is it some specific packages like Numpy or
Django?

It certainly isn&apos;t the execution speed, though that is improving a bit.

While some popularity comes from the factors above, my take is that trust
plays a major role in the rise of Python. I will explain what I mean in the
talk.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/EMCDDD/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/EMCDDD/feedback/</feedback_url>
            </event>
            <event guid='ec70f5a7-782b-5536-a9db-9bd3571fa69b' id='79838' code='HRR98Q'>
                <room>Auditorium</room>
                <title>Architecting Enterprise AI Agents: Secure, Governed, and Interoperable</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>00:30</duration>
                <abstract>Everyone is building &quot;Chat with your data&quot; applications, but moving them from a simple prototype to a secure, reliable enterprise-grade service is a monumental challenge. How does an agent navigate a labyrinth of hundreds of datasets to find the right one for a user&apos;s query? How does it integrate a growing ecosystem of specialized data tools alongside those datasets? And critically, how do you ensure it respects user permissions and interacts with other systems safely? 

This talk presents a practical blueprint for building robust AI agents in a large enterprise environment. We will demonstrate a solution that allows users to chat with structured data to get answers, insights, and visualizations. Crucially, we will dive deep into the architecture that enables the agent to dynamically discover the most relevant datasets and tools for a given task, all while inheriting and restricting permissions based on the end-user&apos;s identity, preventing unauthorized data access. You will learn how to build a controllable, interoperable, and observable ecosystem of agents using standard protocols for dynamic tool discovery and governed communication.</abstract>
                <slug>pycon-sweden-2025-79838-architecting-enterprise-ai-agents-secure-governed-and-interoperable</slug>
                <track></track>
                
                <persons>
                    <person id='83435'>Antonino Ingargiola</person><person id='80725'>Irene Donato</person>
                </persons>
                <language>en</language>
                <description>### The Problem: Why Simple Agents Fail in the Enterprise

The initial excitement of building a generative AI agent quickly meets the messy reality of the enterprise environment. There is no single, clean &quot;data layer.&quot; We face a fragmented landscape of technical catalogs, business glossaries, semantic ontologies, and multiple data sources. This presents two core challenges:

1. **Navigating the Data &amp; Tool Maze:** With potentially hundreds of datasets and specialized tools (e.g., for visualization, data quality checks, forecasting), a primary challenge is selection and relevance. How does the agent understand a user&apos;s ambiguous query and identify the appropriate datasets and tools?

2. **The Governance &amp; Security Mandate:** Equally critical is governance. How can an agent act on a user&#8217;s behalf without &#8220;god mode&#8221; access to all data?

### Our Solution: A Multi-Level Governance Architecture

We&apos;ll share a real-world architecture for a structured-data AI agent that works inside a heavily governed environment, built on three pillars:

1. **Secure by Design** - Remove unnecessary autonomy and place explicit guardrails and failsafe mechanisms around critical steps like data retrieval and tool execution.

2. **Delegated Permissions &amp; Authentication** - Users authenticate via SSO and provide the agent with a token. The agent uses this delegated authority to interact with other services. It operates under its own identity (service principal) but forwards the user&apos;s identity so downstream systems can enforce user-specific access rules and masking.

3. **Governed Interoperability &amp; Discovery** - Using Model Context Protocol (MCP) as a universal bridge between AI systems and data sources, the agent dynamically discovers datasets and tools relevant to a query while respecting permissions. Governance is enforced at discovery. Tools are treated as first-class citizens alongside data. This dynamic approach decouples the agent from specific tool implementations, enabling a flexible, maintainable, and scalable ecosystem of reusable capabilities.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/HRR98Q/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/HRR98Q/feedback/</feedback_url>
            </event>
            <event guid='c7313722-40c0-5b52-9b0a-6e3378084f88' id='78359' code='RKXS8D'>
                <room>Auditorium</room>
                <title>A Practical Guide to Testing Django with Pytest, Factory Boy, and Hypothesis</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T13:00:00+01:00</date>
                <start>13:00</start>
                <duration>00:30</duration>
                <abstract>Writing tests is an important part of every Django project. But Django&#8217;s default testing tools can be hard to use, slow, and not flexible enough. In this talk, I will show how to improve your tests using Pytest, Factory Boy, and Hypothesis.

We will start with Pytest, a simpler and more readable way to write tests. Then we&#8217;ll look at Factory Boy, which helps create test data more easily. Finally, we&#8217;ll explore Hypothesis, a tool that generates random test cases to help find hidden bugs.

You will leave this talk with clear examples and useful tips to write better tests in your Django projects using modern tools.</abstract>
                <slug>pycon-sweden-2025-78359-a-practical-guide-to-testing-django-with-pytest-factory-boy-and-hypothesis</slug>
                <track></track>
                
                <persons>
                    <person id='79438'>Kader Miyanyedi</person>
                </persons>
                <language>en</language>
                <description>This talk is for Python developers who want to write better, faster, and more reliable tests using modern Python tools. We&#8217;ll start by looking at what Pytest is and how it can replace Django&#8217;s built-in test runner, offering cleaner syntax, powerful plugins, and flexible fixtures. Next, we&#8217;ll use Factory Boy to create test data in a smarter way avoiding hardcoded values and repetitive setup. Finally, we&#8217;ll introduce Hypothesis to explore property-based testing, which helps discover unexpected bugs by generating test inputs automatically.

You&#8217;ll see how these tools work together in real Django projects, and learn practical patterns that can improve your testing workflow. No deep testing knowledge is required, just basic Django experience and curiosity about better tools.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/RKXS8D/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/RKXS8D/feedback/</feedback_url>
            </event>
            <event guid='a83b4347-495c-5ffb-8013-087a3b3aac92' id='79562' code='FRKBMQ'>
                <room>Auditorium</room>
                <title>Interactive Python Programming</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>00:30</duration>
                <abstract>Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing, and you have great support for this kind of flow in most code editors. What about development with Python? For Python, there&apos;s limitations and lack of tooling support - but I have found ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop some Code Editor features that are specific for Python: evaluating code with visual feedback, modify a running Python app without any app restarts, and also some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful.</abstract>
                <slug>pycon-sweden-2025-79562-interactive-python-programming</slug>
                <track></track>
                
                <persons>
                    <person id='80465'>David Vujic</person>
                </persons>
                <language>en</language>
                <description>Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing, and you have great support for this kind of flow in most code editors. What about development with Python? For Python, there&apos;s limitations and lack of tooling support - but I have found ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop some Code Editor features that are specific for Python: evaluating code with visual feedback, modify a running Python app without any app restarts, and also some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/FRKBMQ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/FRKBMQ/feedback/</feedback_url>
            </event>
            <event guid='59f68c7a-6ea4-5b32-83b7-784c474d3d96' id='79360' code='R9N3MZ'>
                <room>Auditorium</room>
                <title>Building Harry Potter&#8217;s Mirror of Erised with Python and Generative AI</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T14:00:00+01:00</date>
                <start>14:00</start>
                <duration>00:30</duration>
                <abstract>What if you could look into a magical mirror and see your deepest desires, generated by Python and AI? In this talk, we&#8217;ll build Harry Potter&apos;s Mirror of Erised using LLMs and text-to-image models to visualize personal dreams.</abstract>
                <slug>pycon-sweden-2025-79360-building-harry-potter-s-mirror-of-erised-with-python-and-generative-ai</slug>
                <track></track>
                
                <persons>
                    <person id='80291'>&#214;zge &#199;inko</person>
                </persons>
                <language>en</language>
                <description>What if the Mirror of Erised from Harry Potter actually existed and you could look into it and see your deepest desires visualized? What if you could build it using Python?

In this talk, I&#8217;ll introduce a creative, AI-powered project that transforms a user&apos;s personal hopes and dreams into a visual representation using NLP and image generation. The user writes freely about what they long for. A large language model (LLM) analyzes the text to extract emotional tone, symbols, and core themes. Then, this interpretation is converted into a visual prompt for a text-to-image model, which generates an image.

The final image is dynamically displayed behind the user&apos;s webcam feed, turning their screen into a personalized, digital &#8220;Mirror of Erised.&#8221;

I&#8217;ll walk through the full technical pipeline: from prompt engineering and emotion detection to visual generation and building the interactive UI with Python. This talk combines storytelling with code and aims to inspire developers to explore how Python and AI can bring deeply personal, emotional, and magical experiences to life.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/R9N3MZ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/R9N3MZ/feedback/</feedback_url>
            </event>
            <event guid='eb8b0a66-05c2-54c0-9dde-b3b132546559' id='78168' code='8ASAP7'>
                <room>Auditorium</room>
                <title>Shrinking Infrastructure: Task Queues on PostgreSQL</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T15:00:00+01:00</date>
                <start>15:00</start>
                <duration>00:30</duration>
                <abstract>Most Python teams already run PostgreSQL&#8212;but when it comes to background jobs, they often add Redis, RabbitMQ, or Celery on top. pgqueuer takes a different approach: it turns Postgres itself into a complete task queue.

At its core, pgqueuer uses simple tables to capture jobs and their metadata. Workers safely lease jobs with FOR UPDATE SKIP LOCKED, a Postgres feature that enables concurrent consumers without collisions. Idle workers wake instantly on new jobs via LISTEN/NOTIFY, while a fallback polling loop ensures progress even if notifications are lost.

On top of this foundation, pgqueuer adds the pieces needed in production: exactly-once dequeueing, heartbeats and cancellation for long-running tasks, and retry semantics for failure recovery. A built-in CLI dashboard provides live insight into throughput, latency, and error counts&#8212;no extra services required.

This talk walks through pgqueuer&#8217;s design and shows how PostgreSQL features can form a reliable, observable job system. Attendees will leave with a understanding of how to run production-ready background jobs directly on the database they already trust.</abstract>
                <slug>pycon-sweden-2025-78168-shrinking-infrastructure-task-queues-on-postgresql</slug>
                <track></track>
                
                <persons>
                    <person id='79240'>Jan Bj&#248;rge</person>
                </persons>
                <language>en</language>
                <description>1 &#183; Queue tables and job flow

We start by outlining the core tables: how jobs are stored, tracked through states, and enriched with metadata like priority and timestamps. This sets the stage for understanding how pgqueuer manages work safely inside Postgres.

2 &#183; Concurrency and coordination

Next, we&#8217;ll dive into the mechanics: workers leasing jobs with FOR UPDATE SKIP LOCKED, and why this pattern allows safe parallel processing without global locks. We&#8217;ll then look at LISTEN/NOTIFY for instant wake-ups, and why a lightweight polling fallback is still necessary when notifications fail.

3 &#183; Reliability and observability

We&#8217;ll explore how retries, heartbeats, and cancellation keep the system robust under load and failures. Finally, we&#8217;ll step into the CLI dashboard to see live throughput and error stats&#8212;giving operators immediate visibility without extra tooling.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/8ASAP7/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/8ASAP7/feedback/</feedback_url>
            </event>
            <event guid='701f4746-27b1-59e4-92c3-faf29de4d61d' id='80990' code='Z39XBR'>
                <room>Auditorium</room>
                <title>Extending SQL Databases with Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T15:30:00+01:00</date>
                <start>15:30</start>
                <duration>00:30</duration>
                <abstract>What if your database could run Python code inside SQL? In this talk, we&#8217;ll explore how to extend popular databases using Python, without needing to write a line of C.

We&#8217;ll cover three systems&#8212;SQLite, DuckDB, and PostgreSQL&#8212;and show how Python can be used in each to build custom SQL functions, accelerate data workflows, and prototype analytical logic. Each database offers a unique integration path:
- SQLite and DuckDB allow you to register Python functions directly into SQL via sqlite3.create_function, making it easy to inject business logic or custom transformations.
- PostgreSQL offers PL/Python, a full-featured procedural language for writing SQL functions in Python. We&#8217;ll also touch on advanced use cases, including embedding the Python interpreter directly into a PostgreSQL extension for deeper integration.

By the end of this talk, you&#8217;ll understand the capabilities, limitations, and gotchas of Python-powered extensions in each system&#8212;and how to choose the right tool depending on your use case, whether you&#8217;re analyzing data, building pipelines, or hacking on your own database.</abstract>
                <slug>pycon-sweden-2025-80990-extending-sql-databases-with-python</slug>
                <track></track>
                
                <persons>
                    <person id='82459'>Florents Tselai</person>
                </persons>
                <language>en</language>
                <description>1. Introduction (3 min)
	&#8226;	Who this talk is for: devs, data engineers, extension hackers
	&#8226;	Motivation: why embed Python in databases?
	&#8226;	Overview of the 3 systems (SQLite, DuckDB, PostgreSQL)

2. SQLite &amp; DuckDB: Python Functions via sqlite3.create_function (7 min)
	&#8226;	How sqlite3.create_function() works in SQLite
	&#8226;	Example: creating a simple text-processing SQL function in Python
	&#8226;	Use cases: rapid prototyping, lightweight data pipelines

3. PostgreSQL with PL/Python (6 min)
	&#8226;	Enabling and using the PL/Python extension
	&#8226;	Writing SQL functions in Python
	&#8226;	Pros and limitations (e.g., sandboxing, permissions, virtualenvs)

4. Advanced: Embedding Python into PostgreSQL Extensions (7 min)
	&#8226;	Writing PostgreSQL extensions in C that embed Python
	&#8226;	Use cases: integrating ML models, custom procedural logic
	&#8226;	Short demo or diagram: C + Python working inside Postgres

5. Trade-offs and Comparison (3 min)
	&#8226;	Performance, deployment, complexity, ecosystem
	&#8226;	When to use which approach

6. Q&amp;A (4 min)
	&#8226;	Invite questions and deeper discussion from the audience</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/Z39XBR/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/Z39XBR/feedback/</feedback_url>
            </event>
            <event guid='e15ac7b2-0a9d-5963-b6fa-40f0512a5e2f' id='81341' code='ZEQ9RX'>
                <room>Auditorium</room>
                <title>Designing Exceptions as an API: Hierarchies, Interfaces, and Error Codes</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-30T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>Exceptions are often treated as an afterthought&#8212;until logs fill with cryptic stack traces and developers resort to except Exception: everywhere. In this talk, we&#8217;ll treat exceptions as a first-class API surface.

I&#8217;ll show how to design a clear exception hierarchy that distinguishes between user/validation errors, infrastructure failures, and unexpected bugs. We&#8217;ll explore how to define a lightweight interface (e.g. a status_code and optional metadata) so exceptions become predictable and machine-readable. Finally, we&#8217;ll see how stable domain error codes (like app.form.create.invalid_image_input) unlock better logging, monitoring, and user feedback.

Attendees will leave with a practical pattern they can apply to any Python project&#8212;web service, CLI, or library. This isn&#8217;t just about catching errors: it&#8217;s about designing recoverable, observable, and maintainable systems where exceptions aren&#8217;t noise but meaningful signals.</abstract>
                <slug>pycon-sweden-2025-81341-designing-exceptions-as-an-api-hierarchies-interfaces-and-error-codes</slug>
                <track></track>
                
                <persons>
                    <person id='82772'>Nikita Churikov</person>
                </persons>
                <language>en</language>
                <description>Outline: 
The problem (3 min): messy, ad-hoc exception handling.
Hierarchies (8 min): designing categories (UserError, InfraError, Bug) and how they map to real-world failures.

Interfaces (8 min): duck-typed properties (status_code, retryable, context) for consistent handling across your codebase.
Domain codes (7 min): creating human- and machine-friendly error identifiers, integrating them into logs/metrics.
Best practices (4 min): wrapping 3rd-party errors, raise ... from ..., documenting error contracts.


Audience:
Intermediate Python developers who build or maintain applications, libraries, or services and want clearer, more reliable error handling.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/ZEQ9RX/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/ZEQ9RX/feedback/</feedback_url>
            </event>
            <event guid='724dd03c-b6be-5f40-b6bc-909053a7b325' id='74312' code='SX7N7V'>
                <room>Auditorium</room>
                <title>The serendipity factor: How community turns accidents into opportunities</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-10-30T16:40:00+01:00</date>
                <start>16:40</start>
                <duration>01:00</duration>
                <abstract>Sometimes the best things in life happen by accident. You think you&#8217;re just tinkering with code, and suddenly, you&#8217;ve stumbled into a path you never planned on. In my case, that path somehow led from late-night coding sessions for university to becoming a CPython core developer. But I didn&#8217;t get there alone.

This is a story about the Python community, the mentors, friends, and random emails that nudged me forward at just the right times. From navigating university to that one message that completely changed my direction, every step had someone in the community being there and encouraging me.

We&#8217;ll explore what contributing to Python actually teaches you - the technical lessons, sure, but also the more surprising non-technical ones.

Ultimately, it is a story about how communities can catch people at just the right moment, and how each of us has the power to be that pivotal person for someone else. Because in the end, the real magic of open source isn&apos;t in the code we write, it&apos;s in the friendships we make, and all the unexpected fun that comes with them.</abstract>
                <slug>pycon-sweden-2025-74312-the-serendipity-factor-how-community-turns-accidents-into-opportunities</slug>
                <track></track>
                
                <persons>
                    <person id='79802'>Lysandros Nikolaou</person>
                </persons>
                <language>en</language>
                <description>TBD</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/SX7N7V/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/SX7N7V/feedback/</feedback_url>
            </event>
            <event guid='d9b971ff-44b3-54f4-858d-78be56484766' id='81718' code='VMT3WX'>
                <room>Auditorium</room>
                <title>Closing - Day 1</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-30T17:45:00+01:00</date>
                <start>17:45</start>
                <duration>00:15</duration>
                <abstract>Clasing Remarks Day 1</abstract>
                <slug>pycon-sweden-2025-81718-closing-day-1</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Clasing Remarks Day 1</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/VMT3WX/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/VMT3WX/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Tutorial Room' guid='6dd08886-880c-5072-a3fb-7f39df900af5'>
            <event guid='0c8658af-f02e-5c7b-8641-393dd649564b' id='81026' code='DQSCFX'>
                <room>Tutorial Room</room>
                <title>What We Can Learn from Exemplary Python Documentation (SEE DESCRIPTION FOR PREPARATION)</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-10-30T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:30</duration>
                <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. &#128209;&#10024;</abstract>
                <slug>pycon-sweden-2025-81026-what-we-can-learn-from-exemplary-python-documentation-see-description-for-preparation</slug>
                <track></track>
                
                <persons>
                    <person id='82496'>Christian Heitzmann</person>
                </persons>
                <language>en</language>
                <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):

pip install --upgrade pip setuptools
pip install jupyterlite-pyodide-kernel
pip install jupyterlite-sphinx
pip install matplotlib
pip install numpy
pip install pandas
pip install pydata-sphinx-theme
pip install sphinx-book-theme
pip install sphinx-copybutton
pip install sphinx-gallery
pip install sphinxcontrib-kroki

----------------------------------------------------------------------------------------------------

If you&#8217;ve attended PyCon Sweden last year, you might have seen my talk &#8220;Documenting Python Code&#8221;, 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.

Building 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:

Sphinx documentation generator
&#8226; use reStructuredText as a markup language
&#8226; simplify docstrings with the NumPy and Google format
&#8226; generate function and method documentation with sphinx-apidoc

How to
&#8226; include code snippets as examples and display them in environment-specific tabs
&#8226; adopt themes and implement appealing styles
&#8226; use admonitions to highlight important content
&#8226; write sophisticated mathematical formulas
&#8226; create versatile diagrams with Kroki
&#8226; generate interactive HTML documentation with embedded notebooks

Comparison: AsciiDoc vs. Sphinx
&#8226; explore their strengths and limitations for multi-language projects
&#8226; see how AsciiDoc can document APIs by including tagged source code snippets

This 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.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/DQSCFX/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/DQSCFX/feedback/</feedback_url>
            </event>
            <event guid='f99f7781-df8a-59a4-be90-bd7cfde5de53' id='81404' code='ZU8GRN'>
                <room>Tutorial Room</room>
                <title>Version Everything: From Chaos to Order in Reproducible Python Projects</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-10-30T13:00:00+01:00</date>
                <start>13:00</start>
                <duration>01:30</duration>
                <abstract>Your analysis works perfectly on your laptop. Three weeks later, it breaks on the server. Your colleague can&apos;t run your code nor reproduce your results. The client&apos;s environment throws mysterious errors. Sound familiar?

This hands-on workshop teaches you to build modern reproducible workflows using a holistic framework that addresses real challenges teams face when sharing code, collaborating on research, or deploying data pipelines. 

You&apos;ll gain practical experience on:
* Modern tooling to manage Python environments and dependencies
* Version control your code and data
* Use configuration files to store your parameters
* Containerize your application for easy deployment
* Best practices for team collaboration

The workshop is ideal for data scientists, researchers, and Python developers with intermediate experience who are tired of &quot;works on my machine&quot; syndrome. You&#8217;ll gain hands-on experience with modern tools and practices that make Python workflows reproducible, maintainable, and easy to share, all while applying them to simply data science tasks.</abstract>
                <slug>pycon-sweden-2025-81404-version-everything-from-chaos-to-order-in-reproducible-python-projects</slug>
                <track></track>
                
                <persons>
                    <person id='82884'>Aris Nivorlis</person><person id='82887'>Nikos Chatzis</person>
                </persons>
                <language>en</language>
                <description>This interactive 90-minute workshop provides hands-on experience building reproducible workflows using modern Python tools. Through practical exercises, you&apos;ll transform a typical &quot;script chaos&quot; project into a fully reproducible pipeline applicable to any data-driven Python discipline.

What We&apos;ll Build Together: Starting with a working but messy data analysis project, we&apos;ll systematically add reproducibility layers. You&apos;ll set up dependency management, use git to version control the code, use DVC to version control the data and outputs, use configuration files to store the parameters and lastly containerize everything with Docker. Each module includes guided coding exercises where you&apos;ll apply concepts immediately. 

Key Modules:
1. Modern Dependency Management (20 min): Hands-on with uv/pixi, creating lock files, managing Python versions
2. Code &amp; Configuration Versioning (20 min): Git for version control of the source code
3. Data Pipeline Versioning (20 min): DVC setup, pipeline definitions, experiment tracking
4. Hidden Reproducibility Challenges (10 min): Randomness and human error
5. Production Deployment (20 min): Docker for Python, artifact registries, deployment reproducibility

This workshop focuses on the tools and practices that make models and analyses reproducible and well-documented. The underlying methods will be introduced only briefly for context, while most of the time will be devoted to practical, hands-on work with the tooling.

Prerequisites:
* A laptop (admin root privileges are needed to install the necessary tooling)
* Basic knowledge of Python syntax
The necessary tooling can be installed during the workshop.

Installation of tooling
- uv (https://docs.astral.sh/uv/getting-started/installation/)
- git (https://git-scm.com/install)
- DVC (https://dvc.org/doc/install)
- Podman (https://podman.io/docs/installation)

Repos
https://github.com/anivorlis/pycon-workshop-uv
https://github.com/anivorlis/pycon-workshop-dvc
https://github.com/anivorlis/pycon-workshop-challenge</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/ZU8GRN/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/ZU8GRN/feedback/</feedback_url>
            </event>
            <event guid='7beaaadc-3168-5f19-9fb9-1cc785d59e2d' id='79169' code='ZW8BUA'>
                <room>Tutorial Room</room>
                <title>Building Privacy-Focused Vector Search Applications: Hands-On Guide to Gen AI</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-10-30T15:00:00+01:00</date>
                <start>15:00</start>
                <duration>01:30</duration>
                <abstract>Most of the applications are being powered by Generative AI. Some of the key proponents of Generative AI stem from concepts like RAG, Vector search and embeddings. This tutorial covers these core concepts on Vector search and is complete guide to help guide you from 0 to 1 in Vector Search with open source tools, libraries in Python understanding not only the core meaning of these terms but also hands on projects. 

A special focus of this tutorial is to also learn how to build privacy focused applications. A lot of times user send data to LLM cloud providers like OpenAI, raising privacy concerns. This tutorial will also emphasise on an alternative and privacy focused way to build AI applications by running LLMs locally with Ollama that keep everything local on your computer. This approach allows to avoid sending sensitive information to external servers. The tutorial also highlights LangChain&apos;s ability to create versatile AI agents capable of handling tasks autonomously by creating embeddings for the data. So come learn how can you build the next gen, privacy focused Vector search application powered by Local LLMs, open source vector databases while learning the key concepts of Generative AI such as Vector search, embeddings and practical use cases with an end to end example.</abstract>
                <slug>pycon-sweden-2025-79169-building-privacy-focused-vector-search-applications-hands-on-guide-to-gen-ai</slug>
                <track></track>
                
                <persons>
                    <person id='80123'>Shivay Lamba</person><person id='80141'>Gaurav Pandey</person><person id='84706'>Kishor Deshpande</person>
                </persons>
                <language>en</language>
                <description>Detailed insights into generating embeddings with tools like Ollama and demonstrating how LangChain agents can perform tasks such as document summarisation and API interactions, all while maintaining data privacy in a Python application</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/ZW8BUA/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/ZW8BUA/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2025-10-31' start='2025-10-31T04:00:00+01:00' end='2025-11-01T03:59:00+01:00'>
        <room name='Auditorium' guid='8a48a4a8-5435-565e-8190-5d685663200b'>
            <event guid='3317f26b-ee8b-53a6-b4c1-0735e57f42f4' id='74313' code='VERK9X'>
                <room>Auditorium</room>
                <title>The Fraud Keynote (&#8230;Or Maybe Not)</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-10-31T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>I have not built packages with millions of downloads. I haven&#8217;t contributed to CPython or shipped massive production projects. I am not a CEO, CTO, founder, or member of any tech board or committee.

Does that make this a &#8220;fraud&#8221; keynote? Maybe. Or maybe it&#8217;s an exploration of the uniquely valuable, often underestimated ways we can contribute to tech.

In this talk, I&#8217;ll share my journey with Python, the Elastic community, and the wider tech ecosystem. Together, we&#8217;ll explore:
* Finding a unique perspective or niche in tech, and owning it
* How curiosity, experimentation, and play can be great tools for learning.
* Imposter syndrome, overachieving, burnout, and aiming for the &#8220;slope of enlightenment&#8221; (and even the &#8220;plateau of sustainability&#8221;) over polished perfection.
* Ways to contribute meaningfully to your community, inspire others, and create impact.

Expect some career journey highlights and lessons earned, a few demo snippets of unconventional python projects (like Spotify and Harry Potter?), and some perspective on priorities vs inner peace.</abstract>
                <slug>pycon-sweden-2025-74313-the-fraud-keynote-or-maybe-not</slug>
                <track></track>
                
                <persons>
                    <person id='79470'>Iulia Feroli</person>
                </persons>
                <language>en</language>
                <description>TBD</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/VERK9X/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/VERK9X/feedback/</feedback_url>
            </event>
            <event guid='376b966c-0fca-5f4b-b505-da4460cb620d' id='81066' code='CZZGT3'>
                <room>Auditorium</room>
                <title>Empowering Geospatial Workflows with Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Geospatial research projects often involve large, complex datasets, and the analysis frequently needs to be repeated, which can be time-consuming and error-prone. This makes automation, reproducibility, and scalability essential. Traditional Geographic Information System (GIS) software provides tools to support automation, but they can be difficult to maintain, hard to share, challenging to learn, not always free, and difficult to integrate with other data systems.

While many GIS platforms (e.g., ArcGIS and QGIS) include Python scripting, using Python standalone allows combining different libraries and methodological approaches, developing web-based GIS applications, and creating workflows that are efficient, flexible, and capable of handling hundreds of spatial data formats.

Packages such as GeoPandas, Shapely, Rasterio, and GDAL replace manual GIS steps with clear, scriptable workflows. These workflows can be version-controlled, parameterized, and shared across projects or organizations. Python allows geospatial specialists not only to automate tasks like data cleaning and map-making, but also to integrate spatial analysis with areas such as machine learning, web applications, and cloud platforms.

This work includes examples from real projects, such as cleaning shapefiles, fixing projections, and comparing multiple layers of data. While these tasks can also be performed using traditional GIS software, using the appropriate Python libraries provides faster, more reliable, and more reproducible solutions.</abstract>
                <slug>pycon-sweden-2025-81066-empowering-geospatial-workflows-with-python</slug>
                <track></track>
                
                <persons>
                    <person id='82518'>ELENI TOKMAKTSI</person>
                </persons>
                <language>en</language>
                <description>In this talk, we will showcase how Python can be used to automate everyday spatial analysis tasks, using real examples from the professional field of environmental and infrastructure mapping. We will demonstrate lines of scripts utilizing basic python libraries for geospatial analysis that support the quality of geospatial data and compare spatial layers to gain useful insights.

The talk begins with an introduction to the main formats used in geospatial data and some fundamental geospatial concepts. Aftwerwards, we will discuss on common challenges encountered when working with data in traditional GIS software, and how Python provides cleaner, more scalable solutions.

Whether run independently or integrated with existing GIS software, Python scripts can save time, reduce errors, and improve data quality. Attendees will leave with actionable insights and inspiration to create their own GIS tools using Python libraries.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/CZZGT3/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/CZZGT3/feedback/</feedback_url>
            </event>
            <event guid='70cea453-98c1-577b-8acf-ce43ac941386' id='81044' code='MYK8DB'>
                <room>Auditorium</room>
                <title>Quantum Computing in Python: Why Qiskit Matters for Developers</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>Quantum computing is moving from theory to practice&#8212;and Python is at the center of this shift. In this talk, we&#8217;ll explore Qiskit, open-source quantum SDK, and show how Python developers can already start shaping the future of computing. You&#8217;ll learn what quantum computing is, where it stands today, and why it matters for the Python community.</abstract>
                <slug>pycon-sweden-2025-81044-quantum-computing-in-python-why-qiskit-matters-for-developers</slug>
                <track></track>
                
                <persons>
                    <person id='82506'>Anna Elisabeth Kazakova Lindegren</person>
                </persons>
                <language>en</language>
                <description>Quantum computing is often seen as complex and distant, but in reality it&#8217;s becoming a practical field where Python is the gateway language. This talk introduces the core ideas of quantum computing and demonstrates how they are implemented through Qiskit, the leading open-source quantum SDK.

I will cover:

Why quantum computing matters and how it differs from classical computing.

The role of Python and Qiskit in making quantum accessible.

Concrete examples of applications in optimization, AI, finance, and Health Care and Life Sciences.

The current state of quantum hardware and software&#8212;and what&#8217;s next. On the example of IBM&apos;s road map.

Why developers and organizations need to prepare now for a quantum future.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/MYK8DB/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/MYK8DB/feedback/</feedback_url>
            </event>
            <event guid='b15d0333-9cf2-518d-b9d2-1906a451b2e1' id='80935' code='HMPNFQ'>
                <room>Auditorium</room>
                <title>18 Years of Falling Objects: Lessons from Maintaining Physics Library Pymunk</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>00:30</duration>
                <abstract>In 2007, when Python 2.5 was new and the first iPhone hadn&apos;t yet reached Sweden, Pymunk was born! Now, 18 years later, it has officially come of age. This is the story about the 2D physics library Pymunk, told by its creator. 

With Pymunk&apos;s creation and evolution as a backdrop, I will share my thoughts and insights into maintaining a mildly successful open source library long term. We will explore a history that includes PyWeek-winning games, 100+ research papers on everything from COVID-19 to moral philosophy and mypy bugs.

And don&apos;t worry, you don&apos;t need to know the GJK collision algorithm, or even Newton&apos;s laws of motion, to follow along!</abstract>
                <slug>pycon-sweden-2025-80935-18-years-of-falling-objects-lessons-from-maintaining-physics-library-pymunk</slug>
                <track></track>
                
                <persons>
                    <person id='82446'>Victor Blomqvist</person>
                </persons>
                <language>en</language>
                <description>Pymunk was created to easily let me write a game with 2D physics for the PyWeek 5 game competition. The game itself wasn&apos;t very successful, but Pymunk has since grown into an established library used in for example games, education and research, with 5 million total downloads and 1,000 stars on GitHub.

During Pymunk&apos;s 18 years many things have happened, and I plan to cover some of the more impactful and memorable of them. Partly key technical &quot;happenings&quot; (Python 2-to-3 anyone?), but the main focus will be on the less technical side of Pymunk&apos;s development.

This session is for anyone interested in open source, software longevity, or just a good story. No deep math or expert-level Python skills are required.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/HMPNFQ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/HMPNFQ/feedback/</feedback_url>
            </event>
            <event guid='3a24974c-b3fb-5a35-ba17-2bfd33466f97' id='81969' code='NUZXMZ'>
                <room>Auditorium</room>
                <title>Embeddings - LLMs - vector/semantic search - GenAI - RAG - agents - MCP (buzzword bingo)</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T13:00:00+01:00</date>
                <start>13:00</start>
                <duration>00:30</duration>
                <abstract>With all the technologies floating around the tech space these days it almost sounds like a buzzwords bingo.
This talk will go over all these concepts to explain the differences and purpose of all these technologies. We&#8217;ll cover everything from explaining embeddings and different vector search strategies, to the difference between RAG and agents, what the role of MCP is, and how it all ties together.</abstract>
                <slug>pycon-sweden-2025-81969-embeddings-llms-vector-semantic-search-genai-rag-agents-mcp-buzzword-bingo</slug>
                <track></track>
                
                <persons>
                    <person id='79470'>Iulia Feroli</person>
                </persons>
                <language>en</language>
                <description>TBD</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/NUZXMZ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/NUZXMZ/feedback/</feedback_url>
            </event>
            <event guid='954cb060-d90e-53f0-8162-28fc6f303b49' id='82978' code='YEA33H'>
                <room>Auditorium</room>
                <title>Agents need good developer experience too</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>00:30</duration>
                <abstract>Developer experience isn&#8217;t just for humans anymore. As AI-powered coding agents becomes a part of many developers&apos; &quot;team&quot;, they&apos;re running into the same friction points that frustrate us: slow iteration cycles, confusing APIs and cryptic error messages.

This talk explores how good DX helps both people and AI agents write better software faster, and some key principles that have turned out to both delight humans and keep agents on track.</abstract>
                <slug>pycon-sweden-2025-82978-agents-need-good-developer-experience-too</slug>
                <track></track>
                
                <persons>
                    <person id='82368'>Elias Freider</person>
                </persons>
                <language>en</language>
                <description>So what does &#8220;agent-friendly DX&#8221; actually look like in practice? 
At Modal, we set out to make cloud infrastructure feel like writing ordinary Python scripts: quick to iterate on, easy to test, and intuitive when things go wrong. A guiding principle was to delight developers who use our Python SDK. Along came AI powered coding agents, and it turns out some of our choices made these agents very efficient users of the SDK too! 
We&#8217;ll walk through a few design choices that turned out to matter just as much for machines as for humans, and share what we&#8217;ve learned about building SDKs that work well for both. If you care about APIs, infrastructure, or the future of programming, this talk will give you a fresh lens on what &#8220;good DX&#8221; means when the developer on the other side isn&#8217;t always human.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/YEA33H/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/YEA33H/feedback/</feedback_url>
            </event>
            <event guid='aa7be6c3-c2e5-5e52-ade4-8acffe02dad4' id='78500' code='U7ATWN'>
                <room>Auditorium</room>
                <title>Gamified User Journeys with Pygame</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T14:00:00+01:00</date>
                <start>14:00</start>
                <duration>00:30</duration>
                <abstract>What if you could see your users&#8217; journeys&#8212;not as charts and funnels, but as characters navigating a world?
In this talk, we&#8217;ll use real user behavior data, combined with Pygame, spring simulations, and particle systems, to bring those journeys to life&#8212;turning abstract clickstreams into a gamified, interactive experience.</abstract>
                <slug>pycon-sweden-2025-78500-gamified-user-journeys-with-pygame</slug>
                <track></track>
                
                <persons>
                    <person id='79550'>Eric Rishm&#252;ller</person>
                </persons>
                <language>en</language>
                <description>When this idea first took shape, I was entering a new chapter in life. Recently married and about to become a father. In the heat of it all, I thought it was a good idea to start experimenting with spring simulations and particle systems.
These were topics I&#8217;d long avoided, but during PyconSE 2024, a colleague shared an idea that stuck: what if we could visualize how users interact with our web, not just as data points, but as living, moving entities?
Armed with Pygame, some basic physics, math, and a stream of real user behavior data, I built a playful and unconventional way to display our customer journey&#8212;one that&#8217;s more alive, more visual, and maybe even a little fun.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/U7ATWN/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/U7ATWN/feedback/</feedback_url>
            </event>
            <event guid='0b90f4ff-1840-5a7c-b423-0f2170295f9b' id='78833' code='PQNNPP'>
                <room>Auditorium</room>
                <title>Providing a Python library &#8212; the whole shebang</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T15:00:00+01:00</date>
                <start>15:00</start>
                <duration>00:30</duration>
                <abstract>Providing a cross platform Python library has traditionally been considered tricky, especially if it contains any native code components. This need not be so. If you design things properly and use modern tooling, providing libraries can be surprisingly simple. In this talk we go through the full build setup of a library starting from native code compilation all the way through uploading the resulting wheel to PyPI.</abstract>
                <slug>pycon-sweden-2025-78833-providing-a-python-library-the-whole-shebang</slug>
                <track></track>
                
                <persons>
                    <person id='79795'>Jussi Pakkanen</person>
                </persons>
                <language>en</language>
                <description>First we look at the general problems one typically faces when creating Python dependencies with native components. Once that is settled we examine the fundamentals of the library we aim to provide. This includes both build setup for the library as well as the design to make the end result as easily usable from Python (or, in fact, from any scripting language). Once we have the library working we can do some performance measurements to verify that the end result is working as expected. Finally we examine the tooling needed to create fully compliant PyPI packages.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/PQNNPP/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/PQNNPP/feedback/</feedback_url>
            </event>
            <event guid='d01ccf7f-04dd-52e6-92f9-1a70041d0201' id='83243' code='9GH3SQ'>
                <room>Auditorium</room>
                <title>Mastodon and Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-10-31T15:30:00+01:00</date>
                <start>15:30</start>
                <duration>00:30</duration>
                <abstract>A talk about Fediverse and Mastodon networks.  What they are, how to join and how to integrate with python.</abstract>
                <slug>pycon-sweden-2025-83243-mastodon-and-python</slug>
                <track></track>
                
                <persons>
                    <person id='84647'>Helio Loureiro</person>
                </persons>
                <language>en</language>
                <description>As free software alternative to business social media networks, that push you propaganda - like it or not - there is the fediverse.  And within the fediverse, the Mastodon.

This talk will show the interconnection between these federated universe and walk through how to use with python.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/9GH3SQ/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/9GH3SQ/feedback/</feedback_url>
            </event>
            <event guid='85d130cb-aca6-5562-951d-140406162c90' id='83340' code='9LNXZY'>
                <room>Auditorium</room>
                <title>The Python Quiz!</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-31T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>How good do you know Python? 
Regardless of your python experience and job title, join us for a fun live Quiz.

There will be prizes for the winners!</abstract>
                <slug>pycon-sweden-2025-83340-the-python-quiz</slug>
                <track></track>
                
                <persons>
                    <person id='82884'>Aris Nivorlis</person>
                </persons>
                <language>en</language>
                <description>The Python Quiz!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/9LNXZY/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/9LNXZY/feedback/</feedback_url>
            </event>
            <event guid='e9a097f3-735b-58d4-936b-f2f917e7caaf' id='74314' code='YN87EW'>
                <room>Auditorium</room>
                <title>Python in the age of Agents</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2025-10-31T16:40:00+01:00</date>
                <start>16:40</start>
                <duration>01:00</duration>
                <abstract>Python is gaining ground in AI - it is now the language of both AI engineering and the language of agents. But is it losing ground as the language of programmers? Python made its name as the programming language that minimizes the impedance mismatch with natural language. However, with coding agents, it is now possible to go from natural language to working Python code. Where do we go from here?

I will place the evolution of coding agents in the history of programming language development. We will see that LLMs are more than just compilers that translate natural language into programs. I will also talk about the return of the waterfall lifecycle development process. 

I will also talk about the effect of agents on developers. How are coding agents being received by developers? I will talk about three types of developers: those who supercharge their coding with agents, those who feel threatened by them, and those who weren&#8217;t developers but now are developers. 

Finally, I will talk about developing agents. From model context protocol to application context protocol. Building AI systems has never been easier or more fun.</abstract>
                <slug>pycon-sweden-2025-74314-python-in-the-age-of-agents</slug>
                <track></track>
                
                <persons>
                    <person id='79471'>Jim Dowling</person>
                </persons>
                <language>en</language>
                <description>Python is gaining ground in AI - it is now the language of both AI engineering and the language of agents. But is it losing ground as the language of programmers? Python made its name as the programming language that minimizes the impedance mismatch with natural language. However, with coding agents, it is now possible to go from natural language to working Python code. Where do we go from here?

I will place the evolution of coding agents in the history of programming language development. We will see that LLMs are more than just compilers that translate natural language into programs. I will also talk about the return of the waterfall lifecycle development process. 

I will also talk about the effect of agents on developers. How are coding agents being received by developers? I will talk about three types of developers: those who supercharge their coding with agents, those who feel threatened by them, and those who weren&#8217;t developers but now are developers. 

Finally, I will talk about developing agents. From model context protocol to application context protocol. Building AI systems has never been easier or more fun.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/YN87EW/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/YN87EW/feedback/</feedback_url>
            </event>
            <event guid='f0d00261-7fe4-5a75-990f-cc7f1cc4ef62' id='81722' code='F7EFGU'>
                <room>Auditorium</room>
                <title>Lighting Talks</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-31T17:45:00+01:00</date>
                <start>17:45</start>
                <duration>00:30</duration>
                <abstract>TBD</abstract>
                <slug>pycon-sweden-2025-81722-lighting-talks</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>TBD</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/F7EFGU/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/F7EFGU/feedback/</feedback_url>
            </event>
            <event guid='1e536815-20f2-52ba-a50e-e466d2279032' id='81719' code='WDHJRB'>
                <room>Auditorium</room>
                <title>Closing - Day 2</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-31T18:15:00+01:00</date>
                <start>18:15</start>
                <duration>00:15</duration>
                <abstract>Clasing Remarks Day 2</abstract>
                <slug>pycon-sweden-2025-81719-closing-day-2</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Clasing Remarks Day 2</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/WDHJRB/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/WDHJRB/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Tutorial Room' guid='6dd08886-880c-5072-a3fb-7f39df900af5'>
            <event guid='1662519f-c7a5-5f81-a2f6-608948cbdc3a' id='81444' code='7ZJVH7'>
                <room>Tutorial Room</room>
                <title>Building Production-Ready AI Agents: The 4Ds for Scalable Python Systems</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-10-31T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:30</duration>
                <abstract>Most AI agent tutorials end with a working demo, but production systems require fundamentally different design patterns. This hands-on workshop teaches the 4Ds framework for building AI agents that actually scale: Distributed, mostly Deterministic, Durable, and Debuggable.

You&apos;ll start by running a typical &quot;demo-ware&quot; document classifier that breaks under real-world conditions&#8212;rate limits, network failures, memory constraints, and concurrent requests. Then we&apos;ll systematically rebuild it using production patterns.

Distributed: Decompose AI workflows into parallelizable units using Hatchet&apos;s task orchestration. Transform sequential document processing into concurrent operations that scale horizontally.

mostly Deterministic: Constrain LLM outputs using Pydantic schemas and structured prompts. Build predictable fallback mechanisms for low-confidence results, turning non-deterministic AI into reliable system components.

Durable: Implement automatic retry logic and stateful checkpoints that survive failures without losing progress. Your workflows recover gracefully from API timeouts, service restarts, and infrastructure issues.

Debuggable: Add comprehensive observability through structured logging, distributed tracing, and real-time metrics. Watch your AI agents execute with full visibility into performance bottlenecks and failure patterns.

Each principle builds on practical Python code you&apos;ll run locally against cloud infrastructure. By the workshop&apos;s end, you&apos;ll have a complete production-ready document classification system processing hundreds of documents in parallel, with automatic recovery and full observability.

This is an infrastructure-focused training for Python developers who need to deploy AI agents that actually work in production. You&apos;ll leave with patterns immediately applicable to context/RAG systems, document processing pipelines, and multi-step AI workflows.

Prerequisites: Python 3.11+, basic asyncio knowledge, laptop with internet access.</abstract>
                <slug>pycon-sweden-2025-81444-building-production-ready-ai-agents-the-4ds-for-scalable-python-systems</slug>
                <track></track>
                
                <persons>
                    <person id='83078'>Gabriel Ruttner</person>
                </persons>
                <language>en</language>
                <description>Setup (10 min): Install Hatchet SDK, configure local environment against hosted infrastructure, verify connectivity.

The Problem (15 min): Run a &quot;typical tutorial&quot; document classifier that works until it doesn&apos;t. Experience rate limiting, network failures, and resource contention. Discuss why demo-ware fails: no parallelization, no error recovery, no observability.

Distributed Processing (15 min): Transform sequential processing into parallel task execution. Write Hatchet workflows that fan-out document classification across workers, then fan-in results. Process 100 documents in parallel, observing throughput improvements.

Durable Execution (15 min): Add automatic retries, timeouts, and stateful checkpoints. Simulate infrastructure failures and watch workflows resume from the last successful step without data loss. Experience how durability prevents expensive recomputation.

Deterministic Behavior (15 min): Replace unpredictable LLM outputs with structured schemas using Pydantic validation. Implement confidence thresholds and automatic fallbacks. See how constraints reduce debugging time and improve reliability.

Debuggable Systems (15 min): Instrument workflows with structured logging, metrics, and distributed tracing. Use Hatchet&apos;s dashboard to identify bottlenecks, track success rates, and diagnose failures across execution graphs.

Production Integration (5 min): Review complete example integrating all patterns. Discuss deployment strategies and monitoring best practices.

Target Audience: Python developers building AI applications who need reliable, scalable infrastructure patterns. Especially valuable for teams transitioning from prototypes to production.

Interactive Elements: Live coding with dashboard feedback, simulated failure scenarios, real-time parallel execution metrics, complete working system to take home.

Takeaways: Production-ready code patterns, infrastructure best practices, and immediately applicable solutions for AI workflow scaling challenges every Python developer eventually faces.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/7ZJVH7/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/7ZJVH7/feedback/</feedback_url>
            </event>
            <event guid='c98d76c8-a7f0-51d3-9a11-7435e0c43cdd' id='81724' code='SSVHYH'>
                <room>Tutorial Room</room>
                <title>Connecting IoT Devices with LavinMQ &#8211; Hands-On Workshop</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2025-10-31T13:00:00+01:00</date>
                <start>13:00</start>
                <duration>01:30</duration>
                <abstract>This workshop will introduce you to LavinMQ, a fast and lightweight message broker, and demonstrate its application in IoT systems. You will learn how to connect IoT devices to the LavinMQ instance, publish messages, process messages with consumers, and scale their consumers reliably.</abstract>
                <slug>pycon-sweden-2025-81724-connecting-iot-devices-with-lavinmq-hands-on-workshop</slug>
                <track></track>
                
                <persons>
                    <person id='84144'>Christina Dahl&#233;n</person><person id='83323'>Erica Weistrand</person>
                </persons>
                <language>en</language>
                <description>In this workshop you will learn how to connect an IoT device to publish messages. Understand what LavinMQ is and why it&#8217;s valuable in IoT environments. Create a LavinMQ instance on CloudAMQP. Write a consumer to process messages. Scale consumers and test reliability. Lovisa will not be the one holding it. It will be Christina Dahl&#233;n and Erica Weistrand.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/SSVHYH/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/SSVHYH/feedback/</feedback_url>
            </event>
            <event guid='324fa9e6-57bc-5103-bf10-8b5c45b6efbd' id='81747' code='LMW9LS'>
                <room>Tutorial Room</room>
                <title>Job Fair</title>
                <subtitle></subtitle>
                <type>Organization</type>
                <date>2025-10-31T15:00:00+01:00</date>
                <start>15:00</start>
                <duration>01:00</duration>
                <abstract>Are you searching for a job?
Our lovely Sponsors are hiring. Join this session to learn about new opportunities!</abstract>
                <slug>pycon-sweden-2025-81747-job-fair</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Are you searching for a job?
Our lovely Sponsors are hiring. Join this session to learn about new opportunities!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.com/pycon-sweden-2025/talk/LMW9LS/</url>
                <feedback_url>https://pretalx.com/pycon-sweden-2025/talk/LMW9LS/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
