{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://pretalx.com/pycon-sweden-2025/schedule/", "version": "1.5", "base_url": "https://pretalx.com", "conference": {"acronym": "pycon-sweden-2025", "title": "PyCon Sweden 2025", "start": "2025-10-30", "end": "2025-10-31", "daysCount": 2, "timeslot_duration": "00:05", "time_zone_name": "Europe/Stockholm", "colors": {"primary": "#34589e"}, "rooms": [{"name": "Auditorium", "slug": "4826-auditorium", "guid": "8a48a4a8-5435-565e-8190-5d685663200b", "description": "Main Conference Room", "capacity": null}, {"name": "Tutorial Room", "slug": "4827-tutorial-room", "guid": "6dd08886-880c-5072-a3fb-7f39df900af5", "description": "First Floor. Room C6", "capacity": null}], "tracks": [{"name": "Lightning talk", "slug": "5958-lightning-talk", "color": "#5B8E7D"}, {"name": "Keynote", "slug": "5959-keynote", "color": "#5B8E7D"}, {"name": "PyCon Sweden", "slug": "5960-pycon-sweden", "color": "#5B8E7D"}, {"name": "Education and professional development", "slug": "5961-education-and-professional-development", "color": "#F4A259"}, {"name": "Software Engineering, DevOps, Testing, and Security", "slug": "5962-software-engineering-devops-testing-and-security", "color": "#BC4B51"}, {"name": "Data Science, AI, and Machine Learning", "slug": "5963-data-science-ai-and-machine-learning", "color": "#669BBC"}, {"name": "Web development, applications, and database technologies", "slug": "5964-web-development-applications-and-database-technologies", "color": "#F4A259"}, {"name": "Scientific and High-Performance Computing", "slug": "5965-scientific-and-high-performance-computing", "color": "#BC4B51"}], "days": [{"index": 1, "date": "2025-10-30", "day_start": "2025-10-30T04:00:00+01:00", "day_end": "2025-10-31T03:59:00+01:00", "rooms": {"Auditorium": [{"guid": "b74586a7-bb6b-5c8a-9ac1-f07d85f6935c", "code": "L7GZBW", "id": 81721, "logo": null, "date": "2025-10-30T08:00:00+01:00", "start": "08:00", "duration": "00:45", "room": "Auditorium", "slug": "pycon-sweden-2025-81721-registration", "url": "https://pretalx.com/pycon-sweden-2025/talk/L7GZBW/", "title": "Registration", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "TBD", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/L7GZBW/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/L7GZBW/", "attachments": []}, {"guid": "a9c2730b-5239-5c49-81d6-44e64c8fa4cb", "code": "Y7YTQQ", "id": 81720, "logo": null, "date": "2025-10-30T08:45:00+01:00", "start": "08:45", "duration": "00:15", "room": "Auditorium", "slug": "pycon-sweden-2025-81720-opening-session", "url": "https://pretalx.com/pycon-sweden-2025/talk/Y7YTQQ/", "title": "Opening Session", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "Welcome to PyCon Sweden 2025!", "description": "Welcome to PyCon Sweden 2025!", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/Y7YTQQ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/Y7YTQQ/", "attachments": []}, {"guid": "7e1dd753-fc1b-52d7-91e7-4f05448c7cf8", "code": "X3PLGX", "id": 74315, "logo": null, "date": "2025-10-30T09:00:00+01:00", "start": "09:00", "duration": "01:00", "room": "Auditorium", "slug": "pycon-sweden-2025-74315-ai-is-having-its-moment-again", "url": "https://pretalx.com/pycon-sweden-2025/talk/X3PLGX/", "title": "AI is having its moment ... again", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "The current hype around AI can feel like something totally new, but it\u2019s not the first time we\u2019ve 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.\r\n\r\nThis talk takes a step back from the hype to explore the patterns that keep showing up in AI\u2019s history. We'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'll look at technologies that felt cutting edge in their era, but which are now relegated to the history books. And we'll see what the legacy of previous AI summers has been, and what that might mean for today's AI era. AI\u2019s history doesn\u2019t repeat itself exactly, but it definitely rhymes.", "description": "This keynote will connect the cycles of AI\u2019s 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PXQBU9", "name": "Jodie Burchell", "avatar": "https://pretalx.com/media/avatars/PXQBU9_wMHvbcZ.webp", "biography": "Dr. Jodie Burchell is the Developer Advocate in Data Science at JetBrains, and was previously a Lead Data Scientist at Verve Group Europe. She completed a PhD in clinical psychology and a postdoc in biostatistics, before leaving academia for a data science career. She has worked for 9 years as a data scientist in both Australia and Germany, developing a range of products including recommendation systems, analysis platforms, search engine improvements and audience profiling. She has held a broad range of responsibilities in her career, doing everything from data analytics to maintaining machine learning solutions in production.", "public_name": "Jodie Burchell", "guid": "0ec4c438-8397-5ec8-a7a9-878e41ac3473", "url": "https://pretalx.com/pycon-sweden-2025/speaker/PXQBU9/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/X3PLGX/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/X3PLGX/", "attachments": []}, {"guid": "7dc3b3da-542c-50b3-8d20-ad651d09b988", "code": "EQZQ9P", "id": 81079, "logo": null, "date": "2025-10-30T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81079-the-magic-of-self-how-python-inserts-self-into-methods", "url": "https://pretalx.com/pycon-sweden-2025/talk/EQZQ9P/", "title": "The Magic of Self: How Python inserts self into methods", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Chances are that you\u2019ve noticed that Python magically inserts \u201cself\u201d 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.\r\n\r\nIn 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.", "description": "This talk explores the \"magic\" behind Python's automatic insertion of self into methods. While beginners are told \"don't worry, it just happens\" and experienced developers stop noticing it, there's fascinating machinery underneath.\r\n\r\nI will start my talk by showing the automatic insertion of `self` in action. I will show you that we get an argument \"for free\" when calling a method: despite only passing a single argument, our method actually receives two values! \r\n\r\nAfter showing you the Magic of Self in action, we will discuss why this happens. No, it's not because we named one of the parameters `self` when we defined the method. No, it'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.\r\n\r\nAs it turns out, accessing attributes (including those that are bound to methods) isn'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's why I will continue by introducing you to the descriptor protocol and showing you how to implement a descriptor of your own.\r\n\r\nNow that we know how descriptors work, we'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.\r\n\r\nI will conclude my talk by providing a few examples of other descriptors that you may find in Python and the standard library.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UPWXFZ", "name": "Sebastiaan Zeeff", "avatar": "https://pretalx.com/media/avatars/UPWXFZ_gxgAL7g.webp", "biography": "Sebastiaan is a Python enthusiast who enjoys thinking about good software design and engineering. He is a fellow of the EuroPython Society and the Python Software Foundation, works for the Sopra Steria Pythoneers, and frequently speaks at conferences around the world.", "public_name": "Sebastiaan Zeeff", "guid": "696063f8-b3c0-5311-b7e1-9a276f096fb1", "url": "https://pretalx.com/pycon-sweden-2025/speaker/UPWXFZ/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/EQZQ9P/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/EQZQ9P/", "attachments": []}, {"guid": "1d80d6cd-d429-5dda-b893-c39b0fda7f56", "code": "EMCDDD", "id": 83326, "logo": null, "date": "2025-10-30T11:00:00+01:00", "start": "11:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-83326-trust-and-the-success-of-python", "url": "https://pretalx.com/pycon-sweden-2025/talk/EMCDDD/", "title": "Trust and the success of Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Why has Python become the most used programming language in the world?\r\nIs it the syntax, with indentation as block markers? Is it the lists and the\r\ndicts and the comprehensions? Is it some specific packages like Numpy or\r\nDjango?\r\n\r\nIt certainly isn't the execution speed, though that is improving a bit.\r\n\r\nWhile some popularity comes from the factors above, my take is that trust\r\nplays a major role in the rise of Python. I will explain what I mean in the\r\ntalk.", "description": "Why has Python become the most used programming language in the world?\r\nIs it the syntax, with indentation as block markers? Is it the lists and the\r\ndicts and the comprehensions? Is it some specific packages like Numpy or\r\nDjango?\r\n\r\nIt certainly isn't the execution speed, though that is improving a bit.\r\n\r\nWhile some popularity comes from the factors above, my take is that trust\r\nplays a major role in the rise of Python. I will explain what I mean in the\r\ntalk.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GTS8KP", "name": "Jacob Hall\u00e9n", "avatar": "https://pretalx.com/media/avatars/GTS8KP_5pC89hx.webp", "biography": "Jacob has been an active member of the Python community for over 25 years. He teaches Python and Machine Learning, runs a Python based accounting system as an SaaS and writes his own Python scripts for his restaurant Ternan on Vr\u00e5ng\u00f6 in the Gothenburg southern archipelago.\r\nHe was involved in the **PyPy** project from the start and he has been active in the organization of **Europython** for many years, starting with being the head organizer in 2004 and 2005. He is a fellow of the PSF and the Europython society. Most of the year, he lives on **Styrs\u00f6** in the southern archipelago of Gothenburg.", "public_name": "Jacob Hall\u00e9n", "guid": "0495e574-c4ee-5f76-9f84-a27c501cb84c", "url": "https://pretalx.com/pycon-sweden-2025/speaker/GTS8KP/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/EMCDDD/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/EMCDDD/", "attachments": []}, {"guid": "ec70f5a7-782b-5536-a9db-9bd3571fa69b", "code": "HRR98Q", "id": 79838, "logo": null, "date": "2025-10-30T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-79838-architecting-enterprise-ai-agents-secure-governed-and-interoperable", "url": "https://pretalx.com/pycon-sweden-2025/talk/HRR98Q/", "title": "Architecting Enterprise AI Agents: Secure, Governed, and Interoperable", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Everyone is building \"Chat with your data\" 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'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? \r\n\r\nThis 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'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.", "description": "### The Problem: Why Simple Agents Fail in the Enterprise\r\n\r\nThe initial excitement of building a generative AI agent quickly meets the messy reality of the enterprise environment. There is no single, clean \"data layer.\" We face a fragmented landscape of technical catalogs, business glossaries, semantic ontologies, and multiple data sources. This presents two core challenges:\r\n\r\n1. **Navigating the Data & 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's ambiguous query and identify the appropriate datasets and tools?\r\n\r\n2. **The Governance & Security Mandate:** Equally critical is governance. How can an agent act on a user\u2019s behalf without \u201cgod mode\u201d access to all data?\r\n\r\n### Our Solution: A Multi-Level Governance Architecture\r\n\r\nWe'll share a real-world architecture for a structured-data AI agent that works inside a heavily governed environment, built on three pillars:\r\n\r\n1. **Secure by Design** - Remove unnecessary autonomy and place explicit guardrails and failsafe mechanisms around critical steps like data retrieval and tool execution.\r\n\r\n2. **Delegated Permissions & 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's identity so downstream systems can enforce user-specific access rules and masking.\r\n\r\n3. **Governed Interoperability & 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UTFFXA", "name": "Antonino Ingargiola", "avatar": "https://pretalx.com/media/avatars/UTFFXA_lDL7yfA.webp", "biography": "Antonino Ingargiola is currently Principal AI Architect at Agile Lab where he oversees AI initiatives and projects in large enterprises. Previously was co-founder and CTO @ smartFAB a startup offering an advanced analytics solution for the manufacturing industry. In the past he worked as associated scientist at UCLA (California, USA) combining Machine Learning and biophysics. Antonino holds a Ph.D. in Information Technology and MD in Electronics Engineering both from Politecnico di Milano (Italy).", "public_name": "Antonino Ingargiola", "guid": "f99f1e54-755e-5bcd-a486-d4866b102a78", "url": "https://pretalx.com/pycon-sweden-2025/speaker/UTFFXA/"}, {"code": "Z87LT8", "name": "Irene Donato", "avatar": "https://pretalx.com/media/avatars/Z87LT8_vsCs4OW.webp", "biography": "Irene Donato is Lead Data Scientist at Agile Lab, working on the development and application of machine learning models. With an academic background that includes postdoctoral research at the University of Alberta and Aix-Marseille Universit\u00e9, she transitioned to industry, where she has led data science projects and teams.\r\n\r\nIrene enjoys bridging the gap between deep research and practical application. She is passionate about making complex topics accessible to the developer community.", "public_name": "Irene Donato", "guid": "3abf1d64-a395-5881-8307-9743cae448d6", "url": "https://pretalx.com/pycon-sweden-2025/speaker/Z87LT8/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/HRR98Q/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/HRR98Q/", "attachments": []}, {"guid": "c7313722-40c0-5b52-9b0a-6e3378084f88", "code": "RKXS8D", "id": 78359, "logo": null, "date": "2025-10-30T13:00:00+01:00", "start": "13:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-78359-a-practical-guide-to-testing-django-with-pytest-factory-boy-and-hypothesis", "url": "https://pretalx.com/pycon-sweden-2025/talk/RKXS8D/", "title": "A Practical Guide to Testing Django with Pytest, Factory Boy, and Hypothesis", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Writing tests is an important part of every Django project. But Django\u2019s 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.\r\n\r\nWe will start with Pytest, a simpler and more readable way to write tests. Then we\u2019ll look at Factory Boy, which helps create test data more easily. Finally, we\u2019ll explore Hypothesis, a tool that generates random test cases to help find hidden bugs.\r\n\r\nYou will leave this talk with clear examples and useful tips to write better tests in your Django projects using modern tools.", "description": "This talk is for Python developers who want to write better, faster, and more reliable tests using modern Python tools. We\u2019ll start by looking at what Pytest is and how it can replace Django\u2019s built-in test runner, offering cleaner syntax, powerful plugins, and flexible fixtures. Next, we\u2019ll use Factory Boy to create test data in a smarter way avoiding hardcoded values and repetitive setup. Finally, we\u2019ll introduce Hypothesis to explore property-based testing, which helps discover unexpected bugs by generating test inputs automatically.\r\n\r\nYou\u2019ll 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "A7CZGF", "name": "Kader Miyanyedi", "avatar": "https://pretalx.com/media/avatars/A7CZGF_5fseYOj.webp", "biography": "I have been working as a backend developer for 4 years, primarily using Python and Django to build web applications and APIs. I enjoy sharing my knowledge by writing articles on Medium and other platforms, focusing on Python. Passionate about clean code and continuous learning, I aim to help the community by delivering clear and practical talks.", "public_name": "Kader Miyanyedi", "guid": "b90dd8ea-fb32-5672-8e70-07794f4c4878", "url": "https://pretalx.com/pycon-sweden-2025/speaker/A7CZGF/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/RKXS8D/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/RKXS8D/", "attachments": []}, {"guid": "a83b4347-495c-5ffb-8013-087a3b3aac92", "code": "FRKBMQ", "id": 79562, "logo": null, "date": "2025-10-30T13:30:00+01:00", "start": "13:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-79562-interactive-python-programming", "url": "https://pretalx.com/pycon-sweden-2025/talk/FRKBMQ/", "title": "Interactive Python Programming", "subtitle": "", "track": null, "type": "Talk", "language": "en", "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'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": "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'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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VLHGQG", "name": "David Vujic", "avatar": "https://pretalx.com/media/avatars/VLHGQG_GNioiwa.webp", "biography": "My name is David and I'm a software developer. Colleagues and friends may know me as an early adopter of agile ideas and test driven development. I am passionate about things like that, and share the things I learn to the community and the people I work with. My favorite programming languages are Python and Clojure. On my spare time I practice outdoor Parkour & contribute to Open Source. I'm the maintainer of the Python tools for the Polylith Architecture.", "public_name": "David Vujic", "guid": "8340a5e5-4f48-50c5-8763-596aa68afb3f", "url": "https://pretalx.com/pycon-sweden-2025/speaker/VLHGQG/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/FRKBMQ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/FRKBMQ/", "attachments": []}, {"guid": "59f68c7a-6ea4-5b32-83b7-784c474d3d96", "code": "R9N3MZ", "id": 79360, "logo": null, "date": "2025-10-30T14:00:00+01:00", "start": "14:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-79360-building-harry-potter-s-mirror-of-erised-with-python-and-generative-ai", "url": "https://pretalx.com/pycon-sweden-2025/talk/R9N3MZ/", "title": "Building Harry Potter\u2019s Mirror of Erised with Python and Generative AI", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What if you could look into a magical mirror and see your deepest desires, generated by Python and AI? In this talk, we\u2019ll build Harry Potter's Mirror of Erised using LLMs and text-to-image models to visualize personal dreams.", "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?\r\n\r\nIn this talk, I\u2019ll introduce a creative, AI-powered project that transforms a user'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.\r\n\r\nThe final image is dynamically displayed behind the user's webcam feed, turning their screen into a personalized, digital \u201cMirror of Erised.\u201d\r\n\r\nI\u2019ll 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RZSNJL", "name": "\u00d6zge \u00c7inko", "avatar": "https://pretalx.com/media/avatars/RZSNJL_3fU5ucc.webp", "biography": "I'm \u00d6zge, a curious soul with a computer engineering degree and a heart full of ideas. I'm currently shaping the future as an AI Research Engineer at Huawei. I work in AI research, but I\u2019m just as passionate about blending creativity with code. Whether it\u2019s turning emotions into visuals, building fictional chatbots, or crafting data stories, I love making tech feel personal. I write, build, explore, and sometimes get beautifully lost in too many ideas, but always with Python by my side.", "public_name": "\u00d6zge \u00c7inko", "guid": "6e2de6f1-1b81-54f7-a6c2-934b29a3a2da", "url": "https://pretalx.com/pycon-sweden-2025/speaker/RZSNJL/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/R9N3MZ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/R9N3MZ/", "attachments": []}, {"guid": "eb8b0a66-05c2-54c0-9dde-b3b132546559", "code": "8ASAP7", "id": 78168, "logo": null, "date": "2025-10-30T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-78168-shrinking-infrastructure-task-queues-on-postgresql", "url": "https://pretalx.com/pycon-sweden-2025/talk/8ASAP7/", "title": "Shrinking Infrastructure: Task Queues on PostgreSQL", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Most Python teams already run PostgreSQL\u2014but 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.\r\n\r\nAt 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.\r\n\r\nOn 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\u2014no extra services required.\r\n\r\nThis talk walks through pgqueuer\u2019s 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.", "description": "1 \u00b7 Queue tables and job flow\r\n\r\nWe 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.\r\n\r\n2 \u00b7 Concurrency and coordination\r\n\r\nNext, we\u2019ll dive into the mechanics: workers leasing jobs with FOR UPDATE SKIP LOCKED, and why this pattern allows safe parallel processing without global locks. We\u2019ll then look at LISTEN/NOTIFY for instant wake-ups, and why a lightweight polling fallback is still necessary when notifications fail.\r\n\r\n3 \u00b7 Reliability and observability\r\n\r\nWe\u2019ll explore how retries, heartbeats, and cancellation keep the system robust under load and failures. Finally, we\u2019ll step into the CLI dashboard to see live throughput and error stats\u2014giving operators immediate visibility without extra tooling.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GRKGYS", "name": "Jan Bj\u00f8rge", "avatar": "https://pretalx.com/media/avatars/GRKGYS_RR7EBEX.webp", "biography": "Jan Bj\u00f8rge (JeyBee) is a Norwegian software engineer with a master\u2019s degree in Cybernetics (University of Stavanger, 2015) and a decade of Python experience. He began as a field telecoms engineer before moving into software, eventually becoming Tech Lead at conversational-AI firm boost.ai.\r\n\r\nAfter a short period as Principal Analyst at Equinor, delivering data-intensive tooling for subsurface modelling, JB joined Pio in 2024 as Senior Software Engineer. At Pio he works on the backend that powers the company\u2019s automated storage-and-retrieval warehouse platform, exposing APIs that connect e-commerce stores, shipping providers and ERP systems to AutoStore robotics.\r\n\r\nOutside work he maintains **pgqueuer**\u2014a PostgreSQL-native task queue and scheduler created on his own time.", "public_name": "Jan Bj\u00f8rge", "guid": "18d40551-3861-598e-81b7-b83e7001b746", "url": "https://pretalx.com/pycon-sweden-2025/speaker/GRKGYS/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/8ASAP7/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/8ASAP7/", "attachments": []}, {"guid": "701f4746-27b1-59e4-92c3-faf29de4d61d", "code": "Z39XBR", "id": 80990, "logo": null, "date": "2025-10-30T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-80990-extending-sql-databases-with-python", "url": "https://pretalx.com/pycon-sweden-2025/talk/Z39XBR/", "title": "Extending SQL Databases with Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What if your database could run Python code inside SQL? In this talk, we\u2019ll explore how to extend popular databases using Python, without needing to write a line of C.\r\n\r\nWe\u2019ll cover three systems\u2014SQLite, DuckDB, and PostgreSQL\u2014and 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:\r\n- 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.\r\n- PostgreSQL offers PL/Python, a full-featured procedural language for writing SQL functions in Python. We\u2019ll also touch on advanced use cases, including embedding the Python interpreter directly into a PostgreSQL extension for deeper integration.\r\n\r\nBy the end of this talk, you\u2019ll understand the capabilities, limitations, and gotchas of Python-powered extensions in each system\u2014and how to choose the right tool depending on your use case, whether you\u2019re analyzing data, building pipelines, or hacking on your own database.", "description": "1. Introduction (3 min)\r\n\t\u2022\tWho this talk is for: devs, data engineers, extension hackers\r\n\t\u2022\tMotivation: why embed Python in databases?\r\n\t\u2022\tOverview of the 3 systems (SQLite, DuckDB, PostgreSQL)\r\n\r\n2. SQLite & DuckDB: Python Functions via sqlite3.create_function (7 min)\r\n\t\u2022\tHow sqlite3.create_function() works in SQLite\r\n\t\u2022\tExample: creating a simple text-processing SQL function in Python\r\n\t\u2022\tUse cases: rapid prototyping, lightweight data pipelines\r\n\r\n3. PostgreSQL with PL/Python (6 min)\r\n\t\u2022\tEnabling and using the PL/Python extension\r\n\t\u2022\tWriting SQL functions in Python\r\n\t\u2022\tPros and limitations (e.g., sandboxing, permissions, virtualenvs)\r\n\r\n4. Advanced: Embedding Python into PostgreSQL Extensions (7 min)\r\n\t\u2022\tWriting PostgreSQL extensions in C that embed Python\r\n\t\u2022\tUse cases: integrating ML models, custom procedural logic\r\n\t\u2022\tShort demo or diagram: C + Python working inside Postgres\r\n\r\n5. Trade-offs and Comparison (3 min)\r\n\t\u2022\tPerformance, deployment, complexity, ecosystem\r\n\t\u2022\tWhen to use which approach\r\n\r\n6. Q&A (4 min)\r\n\t\u2022\tInvite questions and deeper discussion from the audience", "recording_license": "", "do_not_record": false, "persons": [{"code": "XDWEBT", "name": "Florents Tselai", "avatar": "https://pretalx.com/media/avatars/XDWEBT_6CA6Hm6.webp", "biography": "Florents (Flo) Tselai is a data generalist and open-source developer with deep expertise in database internals and extension development. He is a core PostgreSQL contributor and the author of multiple database extensions. His work spans AI, data management, web scraping, and civic tech. He is also the creator of diofanti.org, a public platform for tracking government spending in Greece.\r\ngithub.com/Florents-Tselai", "public_name": "Florents Tselai", "guid": "2c903c21-a986-5e38-b2be-7bd31c795c68", "url": "https://pretalx.com/pycon-sweden-2025/speaker/XDWEBT/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/Z39XBR/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/Z39XBR/", "attachments": []}, {"guid": "e15ac7b2-0a9d-5963-b6fa-40f0512a5e2f", "code": "ZEQ9RX", "id": 81341, "logo": null, "date": "2025-10-30T16:00:00+01:00", "start": "16:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81341-designing-exceptions-as-an-api-hierarchies-interfaces-and-error-codes", "url": "https://pretalx.com/pycon-sweden-2025/talk/ZEQ9RX/", "title": "Designing Exceptions as an API: Hierarchies, Interfaces, and Error Codes", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Exceptions are often treated as an afterthought\u2014until logs fill with cryptic stack traces and developers resort to except Exception: everywhere. In this talk, we\u2019ll treat exceptions as a first-class API surface.\r\n\r\nI\u2019ll show how to design a clear exception hierarchy that distinguishes between user/validation errors, infrastructure failures, and unexpected bugs. We\u2019ll explore how to define a lightweight interface (e.g. a status_code and optional metadata) so exceptions become predictable and machine-readable. Finally, we\u2019ll see how stable domain error codes (like app.form.create.invalid_image_input) unlock better logging, monitoring, and user feedback.\r\n\r\nAttendees will leave with a practical pattern they can apply to any Python project\u2014web service, CLI, or library. This isn\u2019t just about catching errors: it\u2019s about designing recoverable, observable, and maintainable systems where exceptions aren\u2019t noise but meaningful signals.", "description": "Outline: \r\nThe problem (3 min): messy, ad-hoc exception handling.\r\nHierarchies (8 min): designing categories (UserError, InfraError, Bug) and how they map to real-world failures.\r\n\r\nInterfaces (8 min): duck-typed properties (status_code, retryable, context) for consistent handling across your codebase.\r\nDomain codes (7 min): creating human- and machine-friendly error identifiers, integrating them into logs/metrics.\r\nBest practices (4 min): wrapping 3rd-party errors, raise ... from ..., documenting error contracts.\r\n\r\n\r\nAudience:\r\nIntermediate Python developers who build or maintain applications, libraries, or services and want clearer, more reliable error handling.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3K7MTH", "name": "Nikita Churikov", "avatar": "https://pretalx.com/media/avatars/3K7MTH_kNQwL2o.webp", "biography": "Nikita Churikov is a Python developer at SciLifeLab in Stockholm with a background in applied mathematics and experience in machine learning projects. He is particularly passionate about deploying models and building reliable data pipelines. Currently, he works on a scientific hosting platform for life science researchers and contributes to PyCon Sweden as part of the organizing team. His interests include clean architecture and sustainable engineering practices that scale from hobby projects to production systems.", "public_name": "Nikita Churikov", "guid": "8f7097e5-7997-51dc-85e5-ea8126b01ff5", "url": "https://pretalx.com/pycon-sweden-2025/speaker/3K7MTH/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/ZEQ9RX/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/ZEQ9RX/", "attachments": []}, {"guid": "724dd03c-b6be-5f40-b6bc-909053a7b325", "code": "SX7N7V", "id": 74312, "logo": null, "date": "2025-10-30T16:40:00+01:00", "start": "16:40", "duration": "01:00", "room": "Auditorium", "slug": "pycon-sweden-2025-74312-the-serendipity-factor-how-community-turns-accidents-into-opportunities", "url": "https://pretalx.com/pycon-sweden-2025/talk/SX7N7V/", "title": "The serendipity factor: How community turns accidents into opportunities", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "Sometimes the best things in life happen by accident. You think you\u2019re just tinkering with code, and suddenly, you\u2019ve 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\u2019t get there alone.\r\n\r\nThis 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.\r\n\r\nWe\u2019ll explore what contributing to Python actually teaches you - the technical lessons, sure, but also the more surprising non-technical ones.\r\n\r\nUltimately, 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't in the code we write, it's in the friendships we make, and all the unexpected fun that comes with them.", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [{"code": "FRXXAQ", "name": "Lysandros Nikolaou", "avatar": "https://pretalx.com/media/avatars/FRXXAQ_cBQDaZd.webp", "biography": "Lysandros works as a Senior Software Engineer at Quansight Labs, where he spends most of his time on CPython and the PyData ecosystem. He is a CPython core developer, specializing in the parser, the tokenizer and the REPL. He recently worked on supercharging f-strings in Python 3.12, the new REPL for Python 3.13 and introducing fast string ufuncs in NumPy 2.0. Currently, he's mostly dealing with improving support for free-threaded Python in the PyData ecosystem.", "public_name": "Lysandros Nikolaou", "guid": "5a4a540a-d2b4-57a3-941f-e916aefb78f2", "url": "https://pretalx.com/pycon-sweden-2025/speaker/FRXXAQ/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/SX7N7V/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/SX7N7V/", "attachments": []}, {"guid": "d9b971ff-44b3-54f4-858d-78be56484766", "code": "VMT3WX", "id": 81718, "logo": null, "date": "2025-10-30T17:45:00+01:00", "start": "17:45", "duration": "00:15", "room": "Auditorium", "slug": "pycon-sweden-2025-81718-closing-day-1", "url": "https://pretalx.com/pycon-sweden-2025/talk/VMT3WX/", "title": "Closing - Day 1", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "Clasing Remarks Day 1", "description": "Clasing Remarks Day 1", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/VMT3WX/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/VMT3WX/", "attachments": []}], "Tutorial Room": [{"guid": "0c8658af-f02e-5c7b-8641-393dd649564b", "code": "DQSCFX", "id": 81026, "logo": null, "date": "2025-10-30T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Tutorial Room", "slug": "pycon-sweden-2025-81026-what-we-can-learn-from-exemplary-python-documentation-see-description-for-preparation", "url": "https://pretalx.com/pycon-sweden-2025/talk/DQSCFX/", "title": "What We Can Learn from Exemplary Python Documentation (SEE DESCRIPTION FOR PREPARATION)", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Let us build on examples from NumPy, pandas, and Matplotlib to explore techniques and tools with the Sphinx documentation generator. Learn how to implement styles, include advanced elements, and overcome challenges in creating clear, maintainable docs. \ud83d\udcd1\u2728", "description": "PLEASE PREPARE A FRESH PYTHON PROJECT BEFORE THE WORKSHOP (PREFERABLY USING PYCHARM OR AT LEAST AN IDE YOU ARE EXPERIENCED WITH; JUPYTER NOTEBOOKS DO **NOT** WORK):\r\n\r\npip install --upgrade pip setuptools\r\npip install jupyterlite-pyodide-kernel\r\npip install jupyterlite-sphinx\r\npip install matplotlib\r\npip install numpy\r\npip install pandas\r\npip install pydata-sphinx-theme\r\npip install sphinx-book-theme\r\npip install sphinx-copybutton\r\npip install sphinx-gallery\r\npip install sphinxcontrib-kroki\r\n\r\n----------------------------------------------------------------------------------------------------\r\n\r\nIf you\u2019ve attended PyCon Sweden last year, you might have seen my talk \u201cDocumenting Python Code\u201d, where I introduced attendees to the basics of Python documentation. This year, I will expand on that foundation by looking at what can be learned from exemplary Python documentation.\r\n\r\nBuilding on renowned examples from popular Python libraries such as NumPy, pandas, and Matplotlib, this workshop will delve into techniques and tools that help streamline documentation creation while improving clarity and usability. The topics covered include:\r\n\r\nSphinx documentation generator\r\n\u2022 use reStructuredText as a markup language\r\n\u2022 simplify docstrings with the NumPy and Google format\r\n\u2022 generate function and method documentation with sphinx-apidoc\r\n\r\nHow to\r\n\u2022 include code snippets as examples and display them in environment-specific tabs\r\n\u2022 adopt themes and implement appealing styles\r\n\u2022 use admonitions to highlight important content\r\n\u2022 write sophisticated mathematical formulas\r\n\u2022 create versatile diagrams with Kroki\r\n\u2022 generate interactive HTML documentation with embedded notebooks\r\n\r\nComparison: AsciiDoc vs. Sphinx\r\n\u2022 explore their strengths and limitations for multi-language projects\r\n\u2022 see how AsciiDoc can document APIs by including tagged source code snippets\r\n\r\nThis workshop provides practical insights and examples to help developers, technical writers, and maintainers create better documentation and improve their workflows. Whether you are just starting out or refining an established project, this session will provide actionable techniques to overcome common challenges and take your documentation to the next level.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VGYMKY", "name": "Christian Heitzmann", "avatar": "https://pretalx.com/media/avatars/VGYMKY_mjyajQp.webp", "biography": "Christian Heitzmann, MSc ETH CSE, is the founder and owner of SimplexaCode AG, based in Lucerne, Switzerland. He is a certified software developer in Java and Python, holding teaching diplomas in both Computer Science and Mathematics, as well as a CAS in Machine Learning. With over 20 years of experience in software development and 12 years of teaching Java, Python, mathematics, and algorithms, Christian is also a regular contributor to IT journals, sharing his expertise in the field.", "public_name": "Christian Heitzmann", "guid": "1f499cb4-1862-5e59-bb43-834cf68954e1", "url": "https://pretalx.com/pycon-sweden-2025/speaker/VGYMKY/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/DQSCFX/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/DQSCFX/", "attachments": []}, {"guid": "f99f7781-df8a-59a4-be90-bd7cfde5de53", "code": "ZU8GRN", "id": 81404, "logo": null, "date": "2025-10-30T13:00:00+01:00", "start": "13:00", "duration": "01:30", "room": "Tutorial Room", "slug": "pycon-sweden-2025-81404-version-everything-from-chaos-to-order-in-reproducible-python-projects", "url": "https://pretalx.com/pycon-sweden-2025/talk/ZU8GRN/", "title": "Version Everything: From Chaos to Order in Reproducible Python Projects", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Your analysis works perfectly on your laptop. Three weeks later, it breaks on the server. Your colleague can't run your code nor reproduce your results. The client's environment throws mysterious errors. Sound familiar?\r\n\r\nThis 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. \r\n\r\nYou'll gain practical experience on:\r\n* Modern tooling to manage Python environments and dependencies\r\n* Version control your code and data\r\n* Use configuration files to store your parameters\r\n* Containerize your application for easy deployment\r\n* Best practices for team collaboration\r\n\r\nThe workshop is ideal for data scientists, researchers, and Python developers with intermediate experience who are tired of \"works on my machine\" syndrome. You\u2019ll 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.", "description": "This interactive 90-minute workshop provides hands-on experience building reproducible workflows using modern Python tools. Through practical exercises, you'll transform a typical \"script chaos\" project into a fully reproducible pipeline applicable to any data-driven Python discipline.\r\n\r\nWhat We'll Build Together: Starting with a working but messy data analysis project, we'll systematically add reproducibility layers. You'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'll apply concepts immediately. \r\n\r\nKey Modules:\r\n1. Modern Dependency Management (20 min): Hands-on with uv/pixi, creating lock files, managing Python versions\r\n2. Code & Configuration Versioning (20 min): Git for version control of the source code\r\n3. Data Pipeline Versioning (20 min): DVC setup, pipeline definitions, experiment tracking\r\n4. Hidden Reproducibility Challenges (10 min): Randomness and human error\r\n5. Production Deployment (20 min): Docker for Python, artifact registries, deployment reproducibility\r\n\r\nThis 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.\r\n\r\nPrerequisites:\r\n* A laptop (admin root privileges are needed to install the necessary tooling)\r\n* Basic knowledge of Python syntax\r\nThe necessary tooling can be installed during the workshop.\r\n\r\nInstallation of tooling\r\n- uv (https://docs.astral.sh/uv/getting-started/installation/)\r\n- git (https://git-scm.com/install)\r\n- DVC (https://dvc.org/doc/install)\r\n- Podman (https://podman.io/docs/installation)\r\n\r\nRepos\r\nhttps://github.com/anivorlis/pycon-workshop-uv\r\nhttps://github.com/anivorlis/pycon-workshop-dvc\r\nhttps://github.com/anivorlis/pycon-workshop-challenge", "recording_license": "", "do_not_record": false, "persons": [{"code": "SUEWGL", "name": "Aris Nivorlis", "avatar": "https://pretalx.com/media/avatars/SUEWGL_Mu6Rtbp.webp", "biography": "Aris Nivorlis is a researcher geophysicist and data steward at Deltares, where he uses data and tooling to answer complex questions about the subsurface.\r\n\r\nHe is passionate about promoting good practices in data management and scientific coding, helping teams build sustainable and reproducible workflows.\r\n\r\nOutside of work, Aris is actively involved in the European Python community, contributing to the organization and support of conferences and community initiatives.\r\n\r\nWhen he's not at his computer, you\u2019ll likely find him dancing salsa.", "public_name": "Aris Nivorlis", "guid": "116c3e0c-cb81-5c63-a452-da04fd915146", "url": "https://pretalx.com/pycon-sweden-2025/speaker/SUEWGL/"}, {"code": "DEEZDX", "name": "Nikos Chatzis", "avatar": "https://pretalx.com/media/avatars/DEEZDX_xeOt8PJ.webp", "biography": "Dr. Nikos Chatzis is a Geologist with a Master\u2019s Degree and a PhD in Applied Geophysics and Seismology from the Aristotle University of Thessaloniki. His research focuses on the processing and analysis of geophysical signals, and he has extensive experience using Python and other programming languages for data modeling and interpretation.", "public_name": "Nikos Chatzis", "guid": "da2564e2-e715-56ae-9d18-ceaa7437a32f", "url": "https://pretalx.com/pycon-sweden-2025/speaker/DEEZDX/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/ZU8GRN/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/ZU8GRN/", "attachments": []}, {"guid": "7beaaadc-3168-5f19-9fb9-1cc785d59e2d", "code": "ZW8BUA", "id": 79169, "logo": null, "date": "2025-10-30T15:00:00+01:00", "start": "15:00", "duration": "01:30", "room": "Tutorial Room", "slug": "pycon-sweden-2025-79169-building-privacy-focused-vector-search-applications-hands-on-guide-to-gen-ai", "url": "https://pretalx.com/pycon-sweden-2025/talk/ZW8BUA/", "title": "Building Privacy-Focused Vector Search Applications: Hands-On Guide to Gen AI", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "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. \r\n\r\nA 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'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.", "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", "recording_license": "", "do_not_record": false, "persons": [{"code": "T9TYF8", "name": "Shivay Lamba", "avatar": "https://pretalx.com/media/avatars/T9TYF8_CicE6jc.webp", "biography": "Shivay Lamba is a software developer specializing in DevOps, Machine Learning and Full Stack Development.\r\n\r\nHe is an Open Source Enthusiast and has been part of various programs like Google Code In and Google Summer of Code as a Mentor and has also been a MLH Fellow. \r\nHe is actively involved in community work as well. He is a TensorflowJS SIG member, Mentor in OpenMined and CNCF Service Mesh Community, SODA Foundation and has given talks at various conferences like Github Satellite, Voice Global, Fossasia Tech Summit, TensorflowJS Show & Tell.", "public_name": "Shivay Lamba", "guid": "0d6dfb22-c9de-5333-bb26-c87eaf2b7223", "url": "https://pretalx.com/pycon-sweden-2025/speaker/T9TYF8/"}, {"code": "8T888Y", "name": "Gaurav Pandey", "avatar": "https://pretalx.com/media/avatars/8T888Y_QAmfjto.webp", "biography": "Software Engineer", "public_name": "Gaurav Pandey", "guid": "b2abea90-aaee-59f8-95c3-1734424be5ba", "url": "https://pretalx.com/pycon-sweden-2025/speaker/8T888Y/"}, {"code": "JVYGRT", "name": "Kishor Deshpande", "avatar": null, "biography": null, "public_name": "Kishor Deshpande", "guid": "aa8d7c8f-edee-5a71-b8e4-c617685c1442", "url": "https://pretalx.com/pycon-sweden-2025/speaker/JVYGRT/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/ZW8BUA/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/ZW8BUA/", "attachments": []}]}}, {"index": 2, "date": "2025-10-31", "day_start": "2025-10-31T04:00:00+01:00", "day_end": "2025-11-01T03:59:00+01:00", "rooms": {"Auditorium": [{"guid": "3317f26b-ee8b-53a6-b4c1-0735e57f42f4", "code": "VERK9X", "id": 74313, "logo": null, "date": "2025-10-31T09:00:00+01:00", "start": "09:00", "duration": "01:00", "room": "Auditorium", "slug": "pycon-sweden-2025-74313-the-fraud-keynote-or-maybe-not", "url": "https://pretalx.com/pycon-sweden-2025/talk/VERK9X/", "title": "The Fraud Keynote (\u2026Or Maybe Not)", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "I have not built packages with millions of downloads. I haven\u2019t contributed to CPython or shipped massive production projects. I am not a CEO, CTO, founder, or member of any tech board or committee.\r\n\r\nDoes that make this a \u201cfraud\u201d keynote? Maybe. Or maybe it\u2019s an exploration of the uniquely valuable, often underestimated ways we can contribute to tech.\r\n\r\nIn this talk, I\u2019ll share my journey with Python, the Elastic community, and the wider tech ecosystem. Together, we\u2019ll explore:\r\n* Finding a unique perspective or niche in tech, and owning it\r\n* How curiosity, experimentation, and play can be great tools for learning.\r\n* Imposter syndrome, overachieving, burnout, and aiming for the \u201cslope of enlightenment\u201d (and even the \u201cplateau of sustainability\u201d) over polished perfection.\r\n* Ways to contribute meaningfully to your community, inspire others, and create impact.\r\n\r\nExpect 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.", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [{"code": "M93JSK", "name": "Iulia Feroli", "avatar": "https://pretalx.com/media/avatars/M93JSK_il7Q6sB.webp", "biography": "Iulia Feroli is a Senior Developer Advocate at Elastic, where she helps developers and data scientists unlock the power of search, machine learning, and generative AI. With a background spanning cloud architecture at Microsoft and AI/ML solutions at Dataiku, she brings a unique perspective on bridging technical depth with accessibility. At Elastic, she focuses on sharing practical insights through talks, demos, and videos. Passionate about making AI approachable, Iulia speaks worldwide on how to turn complex concepts into tools developers can use every day.", "public_name": "Iulia Feroli", "guid": "0caf14b7-7d30-5b4d-84fb-3dda8412df9c", "url": "https://pretalx.com/pycon-sweden-2025/speaker/M93JSK/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/VERK9X/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/VERK9X/", "attachments": []}, {"guid": "376b966c-0fca-5f4b-b505-da4460cb620d", "code": "CZZGT3", "id": 81066, "logo": null, "date": "2025-10-31T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81066-empowering-geospatial-workflows-with-python", "url": "https://pretalx.com/pycon-sweden-2025/talk/CZZGT3/", "title": "Empowering Geospatial Workflows with Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "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.\r\n\r\nWhile 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.\r\n\r\nPackages 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.\r\n\r\nThis 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.", "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.\r\n\r\nThe 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.\r\n\r\nWhether 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AEFAYE", "name": "ELENI TOKMAKTSI", "avatar": "https://pretalx.com/media/avatars/AEFAYE_ScQeEyB.webp", "biography": "My name is Eleni Tokmaktsi, I hold a master\u2019s degree in applied geophysics and currently work as a geospatial data engineer in kartECO company.\r\n\r\nOver the years, I\u2019ve worked with data in many forms\u2014from collection to processing and analysis\u2014using tools such as Python and MATLAB. I\u2019ve tackled a range of challenges, from remote sensing to subsurface imaging, and what drives me most is understanding the problem that needs to be solved.\r\n\r\nFor the past two years, my focus has been on geospatial data, building custom GIS tools and automating workflows to support decision-making.", "public_name": "ELENI TOKMAKTSI", "guid": "b2fdbfdf-1084-564f-ac59-bcdb07adb227", "url": "https://pretalx.com/pycon-sweden-2025/speaker/AEFAYE/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/CZZGT3/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/CZZGT3/", "attachments": []}, {"guid": "70cea453-98c1-577b-8acf-ce43ac941386", "code": "MYK8DB", "id": 81044, "logo": null, "date": "2025-10-31T11:00:00+01:00", "start": "11:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81044-quantum-computing-in-python-why-qiskit-matters-for-developers", "url": "https://pretalx.com/pycon-sweden-2025/talk/MYK8DB/", "title": "Quantum Computing in Python: Why Qiskit Matters for Developers", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Quantum computing is moving from theory to practice\u2014and Python is at the center of this shift. In this talk, we\u2019ll explore Qiskit, open-source quantum SDK, and show how Python developers can already start shaping the future of computing. You\u2019ll learn what quantum computing is, where it stands today, and why it matters for the Python community.", "description": "Quantum computing is often seen as complex and distant, but in reality it\u2019s 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.\r\n\r\nI will cover:\r\n\r\nWhy quantum computing matters and how it differs from classical computing.\r\n\r\nThe role of Python and Qiskit in making quantum accessible.\r\n\r\nConcrete examples of applications in optimization, AI, finance, and Health Care and Life Sciences.\r\n\r\nThe current state of quantum hardware and software\u2014and what\u2019s next. On the example of IBM's road map.\r\n\r\nWhy developers and organizations need to prepare now for a quantum future.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZESZPX", "name": "Anna Elisabeth Kazakova Lindegren", "avatar": "https://pretalx.com/media/avatars/ZESZPX_mlBWIZF.webp", "biography": "Anna works at the intersection of AI and quantum computing at IBM, helping developers and organizations understand both the opportunities and risks of these new fields. With a background in data science, entrepreneurship, and technology strategy, Anna focuses on making quantum computing accessible through Qiskit and open-source tools. Anna served as a judge for the Nordic Women in Tech Awards 2025, and regularly speaks on how future technologies can create real-world impact.\r\nAnna is an AI Technical Specialist, Quantum Ambassador, and Qiskit Advocate at IBM.", "public_name": "Anna Elisabeth Kazakova Lindegren", "guid": "0741a121-8676-5c33-8d74-0f69ced452de", "url": "https://pretalx.com/pycon-sweden-2025/speaker/ZESZPX/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/MYK8DB/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/MYK8DB/", "attachments": []}, {"guid": "b15d0333-9cf2-518d-b9d2-1906a451b2e1", "code": "HMPNFQ", "id": 80935, "logo": null, "date": "2025-10-31T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-80935-18-years-of-falling-objects-lessons-from-maintaining-physics-library-pymunk", "url": "https://pretalx.com/pycon-sweden-2025/talk/HMPNFQ/", "title": "18 Years of Falling Objects: Lessons from Maintaining Physics Library Pymunk", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In 2007, when Python 2.5 was new and the first iPhone hadn'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. \r\n\r\nWith Pymunk'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.\r\n\r\nAnd don't worry, you don't need to know the GJK collision algorithm, or even Newton's laws of motion, to follow along!", "description": "Pymunk was created to easily let me write a game with 2D physics for the PyWeek 5 game competition. The game itself wasn'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.\r\n\r\nDuring Pymunk's 18 years many things have happened, and I plan to cover some of the more impactful and memorable of them. Partly key technical \"happenings\" (Python 2-to-3 anyone?), but the main focus will be on the less technical side of Pymunk's development.\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DH9D7H", "name": "Victor Blomqvist", "avatar": "https://pretalx.com/media/avatars/DH9D7H_6ycMb9Q.webp", "biography": "Victor is a Swedish System Architect at fintech MAJORITY by day, Python coder by night. 18 years ago, he wrote the first line of code for Pymunk, which has since become what he believes is the best library to use whenever you need to simulate 2D physics in Python.", "public_name": "Victor Blomqvist", "guid": "6e996518-143e-55f0-8a47-78a9f87e7732", "url": "https://pretalx.com/pycon-sweden-2025/speaker/DH9D7H/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/HMPNFQ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/HMPNFQ/", "attachments": []}, {"guid": "3a24974c-b3fb-5a35-ba17-2bfd33466f97", "code": "NUZXMZ", "id": 81969, "logo": null, "date": "2025-10-31T13:00:00+01:00", "start": "13:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81969-embeddings-llms-vector-semantic-search-genai-rag-agents-mcp-buzzword-bingo", "url": "https://pretalx.com/pycon-sweden-2025/talk/NUZXMZ/", "title": "Embeddings - LLMs - vector/semantic search - GenAI - RAG - agents - MCP (buzzword bingo)", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "With all the technologies floating around the tech space these days it almost sounds like a buzzwords bingo.\r\nThis talk will go over all these concepts to explain the differences and purpose of all these technologies. We\u2019ll 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.", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [{"code": "M93JSK", "name": "Iulia Feroli", "avatar": "https://pretalx.com/media/avatars/M93JSK_il7Q6sB.webp", "biography": "Iulia Feroli is a Senior Developer Advocate at Elastic, where she helps developers and data scientists unlock the power of search, machine learning, and generative AI. With a background spanning cloud architecture at Microsoft and AI/ML solutions at Dataiku, she brings a unique perspective on bridging technical depth with accessibility. At Elastic, she focuses on sharing practical insights through talks, demos, and videos. Passionate about making AI approachable, Iulia speaks worldwide on how to turn complex concepts into tools developers can use every day.", "public_name": "Iulia Feroli", "guid": "0caf14b7-7d30-5b4d-84fb-3dda8412df9c", "url": "https://pretalx.com/pycon-sweden-2025/speaker/M93JSK/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/NUZXMZ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/NUZXMZ/", "attachments": []}, {"guid": "954cb060-d90e-53f0-8162-28fc6f303b49", "code": "YEA33H", "id": 82978, "logo": null, "date": "2025-10-31T13:30:00+01:00", "start": "13:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-82978-agents-need-good-developer-experience-too", "url": "https://pretalx.com/pycon-sweden-2025/talk/YEA33H/", "title": "Agents need good developer experience too", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Developer experience isn\u2019t just for humans anymore. As AI-powered coding agents becomes a part of many developers' \"team\", they're running into the same friction points that frustrate us: slow iteration cycles, confusing APIs and cryptic error messages.\r\n\r\nThis 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.", "description": "So what does \u201cagent-friendly DX\u201d actually look like in practice? \r\nAt 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! \r\nWe\u2019ll walk through a few design choices that turned out to matter just as much for machines as for humans, and share what we\u2019ve 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 \u201cgood DX\u201d means when the developer on the other side isn\u2019t always human.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BJSN8F", "name": "Elias Freider", "avatar": "https://pretalx.com/media/avatars/BJSN8F_DijJvIL.webp", "biography": "Elias works as a software developer at Modal (https://modal.com/). \r\nAlways looking for ways to make software for *other* software developers just *click*.\r\nOriginal co-author of the [Luigi](https://github.com/spotify/luigi) workflow orchestration engine, and many other internal tools for data teams over the years.", "public_name": "Elias Freider", "guid": "e0324094-05a2-52c8-8efa-d703158663f9", "url": "https://pretalx.com/pycon-sweden-2025/speaker/BJSN8F/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/YEA33H/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/YEA33H/", "attachments": []}, {"guid": "aa7be6c3-c2e5-5e52-ade4-8acffe02dad4", "code": "U7ATWN", "id": 78500, "logo": null, "date": "2025-10-31T14:00:00+01:00", "start": "14:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-78500-gamified-user-journeys-with-pygame", "url": "https://pretalx.com/pycon-sweden-2025/talk/U7ATWN/", "title": "Gamified User Journeys with Pygame", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What if you could see your users\u2019 journeys\u2014not as charts and funnels, but as characters navigating a world?\r\nIn this talk, we\u2019ll use real user behavior data, combined with Pygame, spring simulations, and particle systems, to bring those journeys to life\u2014turning abstract clickstreams into a gamified, interactive experience.", "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.\r\nThese were topics I\u2019d 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?\r\nArmed 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\u2014one that\u2019s more alive, more visual, and maybe even a little fun.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HZERC3", "name": "Eric Rishm\u00fcller", "avatar": "https://pretalx.com/media/avatars/HZERC3_pZu4OCD.webp", "biography": "Lead Data Engineer with 7 years of experience working in the data universe.", "public_name": "Eric Rishm\u00fcller", "guid": "1a304439-cd54-59b7-95e2-9bb787bfff1a", "url": "https://pretalx.com/pycon-sweden-2025/speaker/HZERC3/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/U7ATWN/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/U7ATWN/", "attachments": []}, {"guid": "0b90f4ff-1840-5a7c-b423-0f2170295f9b", "code": "PQNNPP", "id": 78833, "logo": null, "date": "2025-10-31T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-78833-providing-a-python-library-the-whole-shebang", "url": "https://pretalx.com/pycon-sweden-2025/talk/PQNNPP/", "title": "Providing a Python library \u2014 the whole shebang", "subtitle": "", "track": null, "type": "Talk", "language": "en", "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.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JVVEPZ", "name": "Jussi Pakkanen", "avatar": "https://pretalx.com/media/avatars/JVVEPZ_CQl5jan.webp", "biography": "Jussi Pakkanen is the original creator and project lead of the Meson build system, which is used to build many fundamental projects like Mesa, systemd, notable fractions of Gnome and even NumPy and SciPy. During his career he has touched almost all layers of the modern computing stack from the kernel up via core libraries and applications all the way to web services. When not working on computer things, he spends his spare time playing video games, watching bad movies, reading books and sometimes even writing them.", "public_name": "Jussi Pakkanen", "guid": "e05b74a4-6ccb-5c67-856e-e25a4714fe6d", "url": "https://pretalx.com/pycon-sweden-2025/speaker/JVVEPZ/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/PQNNPP/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/PQNNPP/", "attachments": []}, {"guid": "d01ccf7f-04dd-52e6-92f9-1a70041d0201", "code": "9GH3SQ", "id": 83243, "logo": null, "date": "2025-10-31T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-83243-mastodon-and-python", "url": "https://pretalx.com/pycon-sweden-2025/talk/9GH3SQ/", "title": "Mastodon and Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A talk about Fediverse and Mastodon networks.  What they are, how to join and how to integrate with python.", "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.\r\n\r\nThis talk will show the interconnection between these federated universe and walk through how to use with python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DG3LGC", "name": "Helio Loureiro", "avatar": "https://pretalx.com/media/avatars/DG3LGC_pZat9VS.webp", "biography": "Long time board member of PyCon Sweden.  Started with Linux in 1997, then jumped to python 1.2.  Ever since surfing the free software world.", "public_name": "Helio Loureiro", "guid": "ef860cf9-f536-53bc-88d9-78823cb356f3", "url": "https://pretalx.com/pycon-sweden-2025/speaker/DG3LGC/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/9GH3SQ/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/9GH3SQ/", "attachments": []}, {"guid": "85d130cb-aca6-5562-951d-140406162c90", "code": "9LNXZY", "id": 83340, "logo": null, "date": "2025-10-31T16:00:00+01:00", "start": "16:00", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-83340-the-python-quiz", "url": "https://pretalx.com/pycon-sweden-2025/talk/9LNXZY/", "title": "The Python Quiz!", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "How good do you know Python? \r\nRegardless of your python experience and job title, join us for a fun live Quiz.\r\n\r\nThere will be prizes for the winners!", "description": "The Python Quiz!", "recording_license": "", "do_not_record": false, "persons": [{"code": "SUEWGL", "name": "Aris Nivorlis", "avatar": "https://pretalx.com/media/avatars/SUEWGL_Mu6Rtbp.webp", "biography": "Aris Nivorlis is a researcher geophysicist and data steward at Deltares, where he uses data and tooling to answer complex questions about the subsurface.\r\n\r\nHe is passionate about promoting good practices in data management and scientific coding, helping teams build sustainable and reproducible workflows.\r\n\r\nOutside of work, Aris is actively involved in the European Python community, contributing to the organization and support of conferences and community initiatives.\r\n\r\nWhen he's not at his computer, you\u2019ll likely find him dancing salsa.", "public_name": "Aris Nivorlis", "guid": "116c3e0c-cb81-5c63-a452-da04fd915146", "url": "https://pretalx.com/pycon-sweden-2025/speaker/SUEWGL/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/9LNXZY/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/9LNXZY/", "attachments": []}, {"guid": "e9a097f3-735b-58d4-936b-f2f917e7caaf", "code": "YN87EW", "id": 74314, "logo": null, "date": "2025-10-31T16:40:00+01:00", "start": "16:40", "duration": "01:00", "room": "Auditorium", "slug": "pycon-sweden-2025-74314-python-in-the-age-of-agents", "url": "https://pretalx.com/pycon-sweden-2025/talk/YN87EW/", "title": "Python in the age of Agents", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "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?\r\n\r\nI 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. \r\n\r\nI 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\u2019t developers but now are developers. \r\n\r\nFinally, 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": "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?\r\n\r\nI 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. \r\n\r\nI 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\u2019t developers but now are developers. \r\n\r\nFinally, I will talk about developing agents. From model context protocol to application context protocol. Building AI systems has never been easier or more fun.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DBWSDW", "name": "Jim Dowling", "avatar": "https://pretalx.com/media/avatars/DBWSDW_FP9ANWD.webp", "biography": "Jim Dowling is CEO and co-founder of Hopsworks. Previously, he worked at MySQL, as an Associate Professor at KTH, and as a senior researcher at RISE. He is the organizer of the annual feature store summit and he has authored a book for O'Reilly on Building ML Systems with a Feature Store.", "public_name": "Jim Dowling", "guid": "4ffcaec0-f4da-54c6-b8a3-045b1feb09cc", "url": "https://pretalx.com/pycon-sweden-2025/speaker/DBWSDW/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/YN87EW/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/YN87EW/", "attachments": []}, {"guid": "f0d00261-7fe4-5a75-990f-cc7f1cc4ef62", "code": "F7EFGU", "id": 81722, "logo": null, "date": "2025-10-31T17:45:00+01:00", "start": "17:45", "duration": "00:30", "room": "Auditorium", "slug": "pycon-sweden-2025-81722-lighting-talks", "url": "https://pretalx.com/pycon-sweden-2025/talk/F7EFGU/", "title": "Lighting Talks", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "TBD", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/F7EFGU/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/F7EFGU/", "attachments": []}, {"guid": "1e536815-20f2-52ba-a50e-e466d2279032", "code": "WDHJRB", "id": 81719, "logo": null, "date": "2025-10-31T18:15:00+01:00", "start": "18:15", "duration": "00:15", "room": "Auditorium", "slug": "pycon-sweden-2025-81719-closing-day-2", "url": "https://pretalx.com/pycon-sweden-2025/talk/WDHJRB/", "title": "Closing - Day 2", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "Clasing Remarks Day 2", "description": "Clasing Remarks Day 2", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/WDHJRB/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/WDHJRB/", "attachments": []}], "Tutorial Room": [{"guid": "1662519f-c7a5-5f81-a2f6-608948cbdc3a", "code": "7ZJVH7", "id": 81444, "logo": null, "date": "2025-10-31T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Tutorial Room", "slug": "pycon-sweden-2025-81444-building-production-ready-ai-agents-the-4ds-for-scalable-python-systems", "url": "https://pretalx.com/pycon-sweden-2025/talk/7ZJVH7/", "title": "Building Production-Ready AI Agents: The 4Ds for Scalable Python Systems", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "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.\r\n\r\nYou'll start by running a typical \"demo-ware\" document classifier that breaks under real-world conditions\u2014rate limits, network failures, memory constraints, and concurrent requests. Then we'll systematically rebuild it using production patterns.\r\n\r\nDistributed: Decompose AI workflows into parallelizable units using Hatchet's task orchestration. Transform sequential document processing into concurrent operations that scale horizontally.\r\n\r\nmostly 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.\r\n\r\nDurable: 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.\r\n\r\nDebuggable: 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.\r\n\r\nEach principle builds on practical Python code you'll run locally against cloud infrastructure. By the workshop's end, you'll have a complete production-ready document classification system processing hundreds of documents in parallel, with automatic recovery and full observability.\r\n\r\nThis is an infrastructure-focused training for Python developers who need to deploy AI agents that actually work in production. You'll leave with patterns immediately applicable to context/RAG systems, document processing pipelines, and multi-step AI workflows.\r\n\r\nPrerequisites: Python 3.11+, basic asyncio knowledge, laptop with internet access.", "description": "Setup (10 min): Install Hatchet SDK, configure local environment against hosted infrastructure, verify connectivity.\r\n\r\nThe Problem (15 min): Run a \"typical tutorial\" document classifier that works until it doesn't. Experience rate limiting, network failures, and resource contention. Discuss why demo-ware fails: no parallelization, no error recovery, no observability.\r\n\r\nDistributed 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.\r\n\r\nDurable 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.\r\n\r\nDeterministic 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.\r\n\r\nDebuggable Systems (15 min): Instrument workflows with structured logging, metrics, and distributed tracing. Use Hatchet's dashboard to identify bottlenecks, track success rates, and diagnose failures across execution graphs.\r\n\r\nProduction Integration (5 min): Review complete example integrating all patterns. Discuss deployment strategies and monitoring best practices.\r\n\r\nTarget Audience: Python developers building AI applications who need reliable, scalable infrastructure patterns. Especially valuable for teams transitioning from prototypes to production.\r\n\r\nInteractive Elements: Live coding with dashboard feedback, simulated failure scenarios, real-time parallel execution metrics, complete working system to take home.\r\n\r\nTakeaways: Production-ready code patterns, infrastructure best practices, and immediately applicable solutions for AI workflow scaling challenges every Python developer eventually faces.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WWJ3PM", "name": "Gabriel Ruttner", "avatar": null, "biography": null, "public_name": "Gabriel Ruttner", "guid": "6da9c9a1-970e-56e6-9673-c8976ea40706", "url": "https://pretalx.com/pycon-sweden-2025/speaker/WWJ3PM/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/7ZJVH7/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/7ZJVH7/", "attachments": []}, {"guid": "c98d76c8-a7f0-51d3-9a11-7435e0c43cdd", "code": "SSVHYH", "id": 81724, "logo": null, "date": "2025-10-31T13:00:00+01:00", "start": "13:00", "duration": "01:30", "room": "Tutorial Room", "slug": "pycon-sweden-2025-81724-connecting-iot-devices-with-lavinmq-hands-on-workshop", "url": "https://pretalx.com/pycon-sweden-2025/talk/SSVHYH/", "title": "Connecting IoT Devices with LavinMQ \u2013 Hands-On Workshop", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "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.", "description": "In this workshop you will learn how to connect an IoT device to publish messages. Understand what LavinMQ is and why it\u2019s 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\u00e9n and Erica Weistrand.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ELJWS8", "name": "Christina Dahl\u00e9n", "avatar": "https://pretalx.com/media/avatars/ELJWS8_b69guw2.webp", "biography": "I'm Christina Dahl\u00e9n, developer and area lead at 84codes. I specialize in AMQP message brokers and spend most of my time writing code for the LavinMQ project\u2014mainly low-level backend stuff\u2014with a focus on performance and efficiency. I think LavinMQ is a really solid, innovative tool that stands out from what\u2019s available today. It brings something new to the table, and I\u2019d love to see more people explore what it can do and how it can improve the way systems are built. I'm all about sharing knowledge and resources to help others get started and feel confident using these technologies.", "public_name": "Christina Dahl\u00e9n", "guid": "9416d86b-0f4a-5572-b923-ea3e4e51aee6", "url": "https://pretalx.com/pycon-sweden-2025/speaker/ELJWS8/"}, {"code": "JVHJHK", "name": "Erica Weistrand", "avatar": "https://pretalx.com/media/avatars/JVHJHK_35wiwsf.webp", "biography": "Developer", "public_name": "Erica Weistrand", "guid": "16e18db7-2f5c-5148-a8cf-7e9980a3fd4c", "url": "https://pretalx.com/pycon-sweden-2025/speaker/JVHJHK/"}], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/SSVHYH/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/SSVHYH/", "attachments": []}, {"guid": "324fa9e6-57bc-5103-bf10-8b5c45b6efbd", "code": "LMW9LS", "id": 81747, "logo": null, "date": "2025-10-31T15:00:00+01:00", "start": "15:00", "duration": "01:00", "room": "Tutorial Room", "slug": "pycon-sweden-2025-81747-job-fair", "url": "https://pretalx.com/pycon-sweden-2025/talk/LMW9LS/", "title": "Job Fair", "subtitle": "", "track": null, "type": "Organization", "language": "en", "abstract": "Are you searching for a job?\r\nOur lovely Sponsors are hiring. Join this session to learn about new opportunities!", "description": "Are you searching for a job?\r\nOur lovely Sponsors are hiring. Join this session to learn about new opportunities!", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/pycon-sweden-2025/talk/LMW9LS/feedback/", "origin_url": "https://pretalx.com/pycon-sweden-2025/talk/LMW9LS/", "attachments": []}]}}]}}}