<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2025.2.2. -->
<schedule>
    <generator name="pretalx" version="2025.2.2" />
    <version>0.7</version>
    <conference>
        <title>PyCon Portugal 2026</title>
        <acronym>pycon-portugal-2026</acronym>
        <start>2026-09-03</start>
        <end>2026-09-05</end>
        <days>3</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://pretalx.evolutio.pt/</base_url>
        <logo>https://pretalx.evolutio.pt//media/pycon-portugal-2026-2025/img/logo-pycon2026_0VS55CW.svg</logo>
        <time_zone_name>UTC</time_zone_name>
        
        
    </conference>
    <day index='1' date='2026-09-03' start='2026-09-03T04:00:00+00:00' end='2026-09-04T03:59:00+00:00'>
        <room name='Auditorium' guid='a70562d5-3472-5683-bdaf-7843aaffbd30'>
            <event guid='335a5b27-d040-57e8-9f74-1455bc48f70f' id='2166'>
                <room>Auditorium</room>
                <title>Opening session</title>
                <subtitle></subtitle>
                <type>Other</type>
                <date>2026-09-03T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>Opening session with morning announcements</abstract>
                <slug>pycon-portugal-2026-2166-opening-session</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Opening session with morning announcements</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/Q8EAER/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/Q8EAER/feedback/</feedback_url>
            </event>
            <event guid='fe57c024-1fd8-5586-aaf8-3feb5fdda73d' id='2097'>
                <room>Auditorium</room>
                <title>Keynote: Becoming a code curator: developing engineering taste in the age of generative agents</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2026-09-03T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>01:00</duration>
                <abstract>In the era of agentic AI, our role as developers is no longer just about code creation but it&#8217;s about code curation. The blank page is dead, but AI-slop is rising. Discover how to use architectural guardrails to force AI to code with your taste, not its training data.</abstract>
                <slug>pycon-portugal-2026-2097-keynote-becoming-a-code-curator-developing-engineering-taste-in-the-age-of-generative-agents</slug>
                <track></track>
                
                <persons>
                    <person id='1544'>Mai Gimenez</person>
                </persons>
                <language>en</language>
                <description>In 2026, the daunting fear of the proverbial blank page has vanished. We have agents writing lines of code faster than we can read them, and our task is shifting from developers to curators. 
But there is a catch: while agents are masters of syntax, they are strangers to taste. They can generate functionally &quot;correct&quot; code that is architecturally hollow. If we aren&apos;t careful, the high-velocity output of the agents will wash away the Pythonic principles of elegance and maintainability we&#8217;ve spent decades refining replacing it with unmaintainable AI slop.
To thrive in this timeline of agentic code development, we must promote ourselves from developers to code curators. In this talk, we will explore the three pillars of the curator&#8217;s craft:

Developing a curator&apos;s nose: how to  identify the synthetic smell of agentic output, from the verbosity tax to the obsolete echoes where agents default to old python idioms instead of model standards.
Developing a curator&apos;s eye: Python is one of the most used languages because, among so many other things, its commitment to simplicity. We&#8217;ll look at how taste will help us integrate cutting-edge features where an agent would fall back to legacy bloat and inefficient patterns.
Developing a curator&apos;s hand: we must provide with the precise guidance required to build architectures that withstand the test of time. We&#8217;ll discuss practical strategies like context injection and architectural guardrails  to force the agents to code following the standards of your codebase not their training data
In an era of infinite generation, our value is no longer found in the lines we write, but in the systems we compose. We are no longer just authors of code; we are the guardians of the Pythonic craft.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/NLGFRP/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/NLGFRP/feedback/</feedback_url>
            </event>
            <event guid='c16cf95c-5832-55ba-9b15-7475cf12f072' id='1931'>
                <room>Auditorium</room>
                <title>No More Spreadsheets! Building PyLadiesCon Infrastructure with Python and Django</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T10:30:00+00:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>In 2025, PyLadiesCon team said no to spreadsheets and instead started building our conference infrastructure: an open source web app for managing various aspects of our conference. Learn more our challenges in managing the online PyLadiesCon conference, and how we&apos;re solving our problems with Python and Django.</abstract>
                <slug>pycon-portugal-2026-1931-no-more-spreadsheets-building-pyladiescon-infrastructure-with-python-and-django</slug>
                <track></track>
                
                <persons>
                    <person id='189'>Mariatta</person>
                </persons>
                <language>en</language>
                <description>PyLadiesCon is an online conference for the Global PyLadies community. It is one of a kind conference with programming spans 24 hours and offering talks and contents in multiple languages. Run entirely by volunteers, we face unique challenges specific to the nature of our conference.

One of the ways we have been managing the various aspects of PyLadiesCon is by using spreadsheets. Spreadsheets for volunteer sign ups, spreadsheets for program scheduling, spreadsheets for sponsorship. Any information you want about the conference, we have a spreadsheet for that.

While spreadsheets are great for capturing data, they come with drawbacks when it comes to online collaboration with various team members, causing frustrations and confusion among our team of volunteers.

In 2025, PyLadiesCon team said no to spreadsheets and instead started building our conference infrastructure: an open source web app for managing various aspects of our conference. Learn more our challenges in managing the online PyLadiesCon conference, and how we&apos;re solving our problems with Python and Django.  Contribute to the project, and support the PyLadies community.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KS9EPZ/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KS9EPZ/feedback/</feedback_url>
            </event>
            <event guid='8a627301-0964-5674-8fc9-61bdf3ba36ed' id='2157'>
                <room>Auditorium</room>
                <title>What&apos;s new in Python 3.14 &amp; 3.15</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T11:30:00+00:00</date>
                <start>11:30</start>
                <duration>00:30</duration>
                <abstract>Come and hear about some of the exciting things now available in Python 3.14, and also the new stuff coming in Python 3.15 later this year.</abstract>
                <slug>pycon-portugal-2026-2157-what-s-new-in-python-3-14-3-15</slug>
                <track></track>
                
                <persons>
                    <person id='1584'>Hugo van Kemenade</person>
                </persons>
                <language>en</language>
                <description>Python 3.14 is the latest version of your favourite programming language. Come and hear about some of the exciting things available when you upgrade. I&apos;ll talk about some of the even newer things set for release in Python 3.15 this October. And I&apos;ll also tell about the release cycle and how you can help us test out the pre-releases.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/QPBCXP/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/QPBCXP/feedback/</feedback_url>
            </event>
            <event guid='5edfabe0-567c-5afb-9a67-c6d9342e13ce' id='2120'>
                <room>Auditorium</room>
                <title>strong ref, weakref and garbage collector walks into a bar</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T12:00:00+00:00</date>
                <start>12:00</start>
                <duration>00:30</duration>
                <abstract>In Python, objects live as long as something is holding on to them&#8212;and sometimes that&#8217;s way longer than you expect. This talk explores how references, the garbage collector, and weak references interact to determine object lifetimes, with real-world examples like `lru_cache` quietly keeping objects alive.</abstract>
                <slug>pycon-portugal-2026-2120-strong-ref-weakref-and-garbage-collector-walks-into-a-bar</slug>
                <track></track>
                
                <persons>
                    <person id='1313'>Yulia Markelova</person>
                </persons>
                <language>en</language>
                <description>This talk explores how Python manages object lifetimes through references, and why objects sometimes remain in memory longer than expected. While Python&#8217;s memory model is often described as simple, its real behavior &#8212; especially in the presence of caching and reference cycles &#8212; can lead to surprising and hard-to-debug issues.

The talk is structured as a narrative in three parts: strong references, weak references, and the garbage collector. First, we take a look at Python&#8217;s object model and reference counting, using simple, visual  examples to demonstrate how references work. Next, we introduce weak references and show how they differ from regular references, including practical use cases and common misconceptions. Finally, we examine the garbage collector and explain why it is needed in Python on top of reference counting.

The concepts are grounded in a real-world debugging story involving `functools.lru_cache`, where a small optimization led to unexpected memory growth.

The goal of this talk is to provide a clear and practical mental model of Python&#8217;s memory behavior, helping developers understand not just how things work, but why seemingly correct code can lead to subtle memory issues.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KDZQJR/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KDZQJR/feedback/</feedback_url>
            </event>
            <event guid='6491b07b-efee-5c07-a7a2-4c4cdf642741' id='2148'>
                <room>Auditorium</room>
                <title>From Pixels to Plastic: Multi-Agent Python Pipelines for 3D-Printed Repair</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T12:30:00+00:00</date>
                <start>12:30</start>
                <duration>00:30</duration>
                <abstract>A snapped fridge handle. A missing washing-machine knob. A bracket that broke off your scooter. The replacement part costs three pounds and ships in two weeks, or you throw the whole thing away.

This talk is about teaching Python to fix it instead.

This talk walks through an open-source Python pipeline that takes a photo of a broken object and produces a 3D-printable patch automatically. Seven specialised agents handle calibration, segmentation, measurement, thickness estimation, mesh generation, validation, and printing. Each agent runs multiple competing computer-vision strategies, then uses an LLM to choose the most trustworthy result through a consensus protocol. The validated mesh streams straight to a BambuLab printer over MQTT, and a finished patch comes off the bed by the time the talk ends.

The whole system is built on Python, using frameworks such as FastAPI, OpenCV, Shapely, trimesh, SAM, Depth Anything, and a Three.js front end, plus an LLM acting as the decision engine inside every agent. You&apos;ll see how far Python&apos;s ecosystem reaches when the output has to obey physics, and where the interesting failures live.</abstract>
                <slug>pycon-portugal-2026-2148-from-pixels-to-plastic-multi-agent-python-pipelines-for-3d-printed-repair</slug>
                <track></track>
                
                <persons>
                    <person id='1576'>Brain Aboze</person>
                </persons>
                <language>en</language>
                <description>Most &quot;AI for the physical world&quot; coverage in 2026 is about robots and autonomous vehicles. This talk is about something smaller and stranger: getting a Python program to look at a broken object and print the missing piece.

The core problem: natural language and even photos are ambiguous, but geometry is not. A wall thickness of 0.1mm instead of 1.0mm is not a minor error. It is an unprintable model and wasted filament. &quot;Generate and hope&quot; doesn&apos;t work when the output has to fit in your hand.

I&apos;ll walk through the system end-to-end: a real, open-source, seven-agent pipeline.

1. The repair scenario. Real before-and-after objects passed around the audience. Repair is a more honest test of physical AI than from-scratch generation because there is a ground truth, the original part, and a literal pass/fail question: does the new piece fit?

2. Seven agents, one pattern. A walk through the pipeline: Calibration, Segmentation, Measurement, Thickness, Mesh, Validation, and Print. The same architectural pattern repeats at every stage. Each agent runs multiple computer-vision strategies, then hands all candidate results to an LLM that picks the best one, or blends them, and explains its reasoning.

3. The consensus protocol. A close look at the calibration and thickness agents, where consensus matters most. Calibration runs ArUco markers, HEIF depth, reference-line detection, WebXR, and a vision fallback in parallel. Thickness estimation combines LiDAR, multi-view stereo from short videos, side-photo geometry, and monocular depth from Depth Anything. The LLM sees each candidate with its confidence score, flags implausible values, and produces one authoritative result with an explained rationale.

4. Segmentation, measurement, mesh. SAM handles segmentation from point prompts, with the LLM assessing mask quality and suggesting better click points. OpenCV contour analysis handles measurement, while the LLM arbitrates between competing measurements. Shapely and trimesh generate the patch mesh, with the LLM assessing printability and suggesting thickness adjustments before anything goes near the printer.

5. Validation and the live print. The validation agent cross-checks the pipeline results, verifies the mesh, and makes a final go/no-go judgment. Then bambulabs api over MQTT/FTP streams the STL to the printer on stage. Print status flows back into the system in real time.

6. What this teaches us about Python in the wild. The transferable patterns are multi-strategy execution, LLM arbitration, structured outputs, and continuous validation. They work for any AI system where outputs must satisfy hard constraints: medical imaging, financial document generation, robotic control, and scientific simulation. Python is more capable here than people realise, and the under-appreciated libraries that make it possible, including Shapely, trimesh, SAM via transformers, Depth Anything, and bambulabs_api, deserve a wider audience.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/ZJGACA/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/ZJGACA/feedback/</feedback_url>
            </event>
            <event guid='e2c4daaf-92cb-538d-95d3-910404ecc988' id='2123'>
                <room>Auditorium</room>
                <title>The illusion of sequential execution in PySpark</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T14:00:00+00:00</date>
                <start>14:00</start>
                <duration>00:30</duration>
                <abstract>Have you ever looked at a PySpark pipeline and assumed it would run top-to-bottom? You&#8217;d be surprised&#8230;it doesn&#8217;t. In reality, Spark builds and optimizes execution plans, and this mismatch can lead to subtle, production-grade bugs.
In this talk, I&#8217;ll walk through a real-world example where reading and updating the same tables produced inconsistent results in production. We&#8217;ll see why this happens, what Spark actually executes under the hood, and why code that looks correct can behave unexpectedly.
Join this session and you&#8217;ll learn practical design principles to make pipelines predictable: introducing explicit materializations, using declarative patterns, or imposing physical separation between sources and targets.</abstract>
                <slug>pycon-portugal-2026-2123-the-illusion-of-sequential-execution-in-pyspark</slug>
                <track></track>
                
                <persons>
                    <person id='1561'>Pier Paolo La Pastina</person>
                </persons>
                <language>en</language>
                <description>PySpark code often looks like it runs sequentially, but Spark does not execute pipelines line by line. Instead, it builds and optimizes execution plans, and this mismatch can lead to bugs and misunderstandings.

In this talk, I will present a real-world issue involving a pipeline that reads from and writes to the same tables. While the code appears straightforward, the final action triggers a separate execution plan that re-reads one of the inputs after it has been updated, producing inconsistent results. This behavior is counterintuitive because dataframes are logical abstractions: they do not hold data unless explicitly materialized, and each action can recompute the entire pipeline.

Starting from this example, I will explore some design principles that can systematically avoid this kind of issue. First, one can include explicit materializations after reading from sources, in order to save input data in a well-defined state. Another possibility is designing simple, atomic jobs with a single target table or even a single action, and then combine them sequentially by means of an orchestrator. Finally, if the underlying data platform has multiple layers, one can impose that every job reads from one layer and writes to the next, in order to physically separate sources and targets.

The talk will include code examples and is aimed at data engineers with some experience in PySpark who want to build cleaner and more reliable pipelines.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GU9KWG/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GU9KWG/feedback/</feedback_url>
            </event>
            <event guid='5b2b498d-1cee-5699-a63a-c0782d944339' id='2173'>
                <room>Auditorium</room>
                <title>Your Software Mirrors Your Conversations. Your Conversations Just Went Private.</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>00:30</duration>
                <abstract>We like to treat software architecture as a technical discipline, so when an architecture rots we go looking for technical causes. But every decayed system I&apos;ve ever seen had a perfectly good plan behind it. The mess didn&apos;t come from the code. It came from how the people building it talked to each other, or stopped talking to each other. That&apos;s Conway&apos;s Law, and it just got a plot twist: a growing share of those conversations now happen with AI assistants instead of with teammates. 
This talk follows one fictional organization across three eras of its life, on a single network graph of people, teams, services, and code that evolves on screen, to find out what all those private conversations are doing to your software.</abstract>
                <slug>pycon-portugal-2026-2173-your-software-mirrors-your-conversations-your-conversations-just-went-private</slug>
                <track></track>
                
                <persons>
                    <person id='925'>Juan Caraballo</person>
                </persons>
                <language>en</language>
                <description>The story follows one fictional organization, stitched together from things I lived through, across three eras of its life: the early monolith, the reorg into &quot;autonomous teams&quot; that nobody thought all the way through, and the arrival of LLM assistants. The whole arc plays out on a single network graph of people, teams, services, and code that evolves on screen as the company changes, so you can watch the architecture respond to the conversations, and stop responding when the conversations stop.

Along the way: how well-intentioned autonomy can manufacture a distributed monolith; what actually happens to a codebase when every developer&apos;s closest collaborator becomes a model; what the industry&apos;s own data says about feeling faster versus being faster; and why AI makes Conway&apos;s Law bite harder, not softer. And because this isn&apos;t a doom talk, the way out is here too, grounded in Diana Montalion&apos;s Learning Systems Thinking.

You&apos;ll leave with a new lens to view your own codebase, a sharper question to ask about every system your team ships, two gut checks for your team&apos;s AI adoption, and a handful of practices you can pilot without waiting for anyone to approve a reorg.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KNX8NQ/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KNX8NQ/feedback/</feedback_url>
            </event>
            <event guid='c920c973-a639-5c22-83df-4a97c86acf72' id='2124'>
                <room>Auditorium</room>
                <title>Running Companies with Python and Open Source ERP</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T15:30:00+00:00</date>
                <start>15:30</start>
                <duration>00:30</duration>
                <abstract>Python is running companies worldwide &#8212; through Odoo, an open-source ERP where business logic is just Python code. Come see how Python&apos;s expressiveness and modularity power the decisions that keep businesses moving.</abstract>
                <slug>pycon-portugal-2026-2124-running-companies-with-python-and-open-source-erp</slug>
                <track></track>
                
                <persons>
                    <person id='1562'>Daniel Reis</person>
                </persons>
                <language>en</language>
                <description>Ask a Python developer what Python is used for, and you&apos;ll hear the usual answers: data science, machine learning, infrastructure automation, web backends. Rarely does anyone mention running the day-to-day operations of a business. Yet that&apos;s exactly what Odoo makes possible &#8212; and it does so with Python at its core.
Odoo is a fully open-source suite of business applications &#8212; from accounting and inventory to sales and HR &#8212; built entirely in Python. Unlike traditional ERP systems that lock businesses into rigid, proprietary logic, Odoo exposes its business rules, workflows, and data models as Python code. This means Python developers are suddenly first-class citizens in domains historically dominated by consultants, spreadsheets, and black-box software: invoicing runs, stock movements, manufacturing orders, payroll calculations. And because Odoo is open source, the entire stack is inspectable, forkable, and extensible &#8212; there are no hidden rules governing your business.
What makes this possible is Odoo&apos;s layered, modular architecture. Business logic is organised into composable Python modules &#8212; each one a clean layer over the last &#8212; so that a small, focused change can reshape how an entire business process behaves without touching anything else. This is not just good software design; it is what allows Python developers to reason about, extend, and own business processes the same way they would any other codebase.
We&apos;ll open with a grounded look at what an ERP actually does &#8212; the key functional domains that keep a company running and why they are hard to model in software. From there, we explore how Odoo&apos;s framework architecture is designed to meet those demands: its layered module system, and how Python&apos;s expressive syntax and dynamic nature make it uniquely suited to capturing complex, ever-changing business logic. We&apos;ll also look at Python&apos;s role as a universal connector &#8212; how it bridges Odoo to the wider world of APIs, data pipelines, and external systems. The talk closes with a look at the open-source ecosystem around Odoo and what this expanding frontier means for Python developers.
No prior knowledge of ERP or business software is assumed &#8212; just curiosity about where Python shows up next.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/CAPM8Z/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/CAPM8Z/feedback/</feedback_url>
            </event>
            <event guid='a23f46df-d63a-5573-9e0b-df5c5152fe30' id='2162'>
                <room>Auditorium</room>
                <title>To be announced!</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T16:00:00+00:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>TBA</abstract>
                <slug>pycon-portugal-2026-2162-to-be-announced</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>TBA</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/PSPA9E/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/PSPA9E/feedback/</feedback_url>
            </event>
            <event guid='fd6c2354-826d-50e1-9dca-4345aa298614' id='2159'>
                <room>Auditorium</room>
                <title>Lightning talks &#9889;&#65039; Thursday</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-03T16:30:00+00:00</date>
                <start>16:30</start>
                <duration>00:30</duration>
                <abstract>Enjoy Thursday&apos;s lightning talks! Short talks about everything by everyone.</abstract>
                <slug>pycon-portugal-2026-2159-lightning-talks-thursday</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Lightning talks are 5 minute talks that anyone participating at the conference can submit. If that talk gets selected, you will have the chance to jump into the main stage and show us your project, your ideas, something you have learned, something you are proud of that&apos;s helping and contributing to our conference and community, or something else!

Lightning talks last a maximum of 5 minutes. You can use less time, but not more. This time limit is strictly enforced!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/R8B8RB/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/R8B8RB/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2026-09-04' start='2026-09-04T04:00:00+00:00' end='2026-09-05T03:59:00+00:00'>
        <room name='Auditorium' guid='a70562d5-3472-5683-bdaf-7843aaffbd30'>
            <event guid='d4e01c9e-775a-54bd-8830-3002c9df4ea9' id='2167'>
                <room>Auditorium</room>
                <title>Morning announcements</title>
                <subtitle></subtitle>
                <type>Other</type>
                <date>2026-09-04T09:15:00+00:00</date>
                <start>09:15</start>
                <duration>00:15</duration>
                <abstract>Morning announcements</abstract>
                <slug>pycon-portugal-2026-2167-morning-announcements</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Morning announcements</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GLLJKG/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GLLJKG/feedback/</feedback_url>
            </event>
            <event guid='ec0e0cbf-95ec-59d1-b60a-4a2429224cd6' id='2156'>
                <room>Auditorium</room>
                <title>Keynote: Most of your AI output is Slop (and how to optimise it)</title>
                <subtitle></subtitle>
                <type>Keynote</type>
                <date>2026-09-04T09:30:00+00:00</date>
                <start>09:30</start>
                <duration>01:00</duration>
                <abstract>Most of us now talk to our computers like we did in the 60s, through a terminal. The difference is what is on the other side. Along the way, we stopped writing code by hand.
This talk is about what that costs and what it buys. Treating AI systems with awe hides what they can&apos;t do and hands us back plausible slop. Named precisely, as a tool that drafts, reviews, searches, or automates a specific chore, it becomes something that can be tested, questioned, measured, and optimised.</abstract>
                <slug>pycon-portugal-2026-2156-keynote-most-of-your-ai-output-is-slop-and-how-to-optimise-it</slug>
                <track></track>
                <logo>/media/pycon-portugal-2026/submissions/FDLXS9/PydanticAtomico2026-0043_PrLGB63.webp</logo>
                <persons>
                    <person id='1435'>La&#237;s Carvalho</person>
                </persons>
                <language>en</language>
                <description>Most of us have adopted AI tools without the surrounding guidance on how to coerce models into making something good and useful. The speed of development grew exponentially, to the point where we now interact with computers like we did in the 1960s, through a terminal. This talk is about how to concretely take your everyday prompt and make it better, from slop to a workflow that can be measured and improved far beyond your local environment. We&apos;ll cover gold standard practices such as context, guardrails, optimisation, and evaluation frameworks, the things that let you take advantage of AI tooling to the maximum, rather than being tied to reviewing every line it produces, increasing both speed and trustworthiness.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/FDLXS9/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/FDLXS9/feedback/</feedback_url>
            </event>
            <event guid='5d729171-ecae-5786-a4de-b2d02000c2fe' id='2112'>
                <room>Auditorium</room>
                <title>Building a Thriving Ecosystem: The Role of Communities in Growth and Inclusion</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T10:30:00+00:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>The global tech ecosystem continues to grow, yet challenges like limited mentorship, a lack of role models, and fragmented community support hinder progress, especially for underrepresented groups. PyLadies offers a powerful model for bridging these gaps. This talk explores how PyLadies chapters worldwide foster technical growth, increase mentorship opportunities, and drive collaboration to create a more inclusive and sustainable global tech community.
We can contribute to the growth of the global tech ecosystem by leveraging the PyLadies model of an inclusive and sustainable community.</abstract>
                <slug>pycon-portugal-2026-2112-building-a-thriving-ecosystem-the-role-of-communities-in-growth-and-inclusion</slug>
                <track></track>
                
                <persons>
                    <person id='1123'>Gertrude Abagale</person>
                </persons>
                <language>en</language>
                <description>The strength of any tech ecosystem lies in its ability to grow, support, and sustain its members. However, many aspiring technologists from underrepresented backgrounds struggle to find mentorship, role models, and opportunities to thrive. PyLadies, a global network dedicated to increasing women&apos;s participation in the Python community, presents a proven model for addressing these challenges.
This talk will explore the impact of community-driven initiatives on the tech ecosystem, using PyLadies as a case study. We&apos;ll break down the discussion into three key sections:
Understanding the Challenges:
The barriers to entry and growth in tech for underrepresented groups
The role of mentorship and community in shaping successful careers

The PyLadies Model:
How PyLadies chapters empower individuals through mentorship, technical training, and networking
Success stories from PyLadies communities around the world

Scaling the Impact:
How local communities and organizations can adopt similar models to foster technical growth
Actionable steps for individuals and companies to contribute to a more inclusive and sustainable tech ecosystem
Through real-world examples, practical strategies, and interactive discussions, this talk aims to inspire attendees to take action, whether by starting or supporting PyLadies chapters, mentoring newcomers, or advocating for stronger community engagement.
By the end of the session, participants will leave with a clear understanding of how they can contribute to strengthening the global tech ecosystem and why investing in community-driven initiatives like PyLadies is key to sustainable growth.


OUTLINE
Introduction (2 mins)
Introduction
What inspired this talk( the importance of support systems in tech)
Overview of what to expect

Understanding the Challenges (8mins)
A. Barriers for Underrepresented Groups
Lack of access to mentorship, role models, and opportunities
Imposter syndrome and systemic bias
Financial, geographical, and cultural constraints
B. The Role of Community and Mentorship
Why peer support matters
How mentorship can transform career journeys
Audience interaction: &quot;Who here has been positively impacted by a tech community?&quot;

The PyLadies Model (8mins)
A. What is PyLadies?
Mission, history, and global reach
Core activities: workshops, meetups, mentorship, speaker support
B. Empowerment Through Community
Technical training and exposure
Networking and visibility for women in Python
Community-led leadership development
C. Success Stories
Highlight stories from PyLadies chapters around the world
Testimonials

Scaling the Impact (8mins)
A. Adopting the Model Locally
How any community can replicate PyLadies&apos; success
Partnering with schools, companies, and global organizations
B. Individual &amp; Organizational Action Steps
Starting or supporting a PyLadies chapter
Mentoring newcomers or junior developers
Advocating for inclusive hiring and speaker lineups
Supporting infrastructure: funding, venues, visibility

Call to Action (4mins)
Recap of key takeaways
Share a personal reflection on the power of community
Call to action:
Join/support PyLadies
Become a mentor
Create inclusive spaces in your local tech communities
Q&amp;A</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/HH87TE/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/HH87TE/feedback/</feedback_url>
            </event>
            <event guid='084c9fd4-296c-5fcc-ba61-e0d88665cfce' id='2008'>
                <room>Auditorium</room>
                <title>Small Language Models: Privacy-First AI with Python...  Why local models are replacing massive inference stacks</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T11:30:00+00:00</date>
                <start>11:30</start>
                <duration>00:30</duration>
                <abstract>Large language models dominate the AI conversation, but many real-world applications don&#8217;t need massive infrastructure or external APIs. This talk shows how Python developers can run Small Language Models (SLMs) locally using tools like Hugging Face Transformers, bitsandbytes, and lightweight RAG pipelines to build privacy-first AI systems that are faster, cheaper, and easier to deploy.</abstract>
                <slug>pycon-portugal-2026-2008-small-language-models-privacy-first-ai-with-python-why-local-models-are-replacing-massive-inference-stacks</slug>
                <track></track>
                
                <persons>
                    <person id='1498'>Anthonette Adanyin</person>
                </persons>
                <language>en</language>
                <description>For years, AI progress has been associated with larger and larger models. However, in many production environments, massive language models introduce serious engineering challenges: high latency, expensive infrastructure, and sensitive data being sent to external APIs.

In practice, many NLP tasks do not require a 70B-parameter model.

Small Language Models (SLMs), typically in the 1B&#8211;7B parameter range, are becoming a powerful alternative. When combined with quantization techniques and efficient Python tooling, these models can run on modest hardware while still delivering strong performance for specialised tasks.

This talk explores how Python developers can design privacy-first AI systems using compact models and local infrastructure.

Using the Python ecosystem, including Hugging Face Transformers, bitsandbytes quantization, and lightweight retrieval pipelines, we will walk through how to fine-tune and deploy an SLM for domain-specific tasks. The talk will also demonstrate a local-first Retrieval-Augmented Generation (RAG) pipeline, where sensitive documents remain entirely within an organisation&#8217;s infrastructure.

We will compare compact models against larger hosted models for targeted NLP tasks and discuss the trade-offs between model size, latency, cost, and deployment complexity.

The goal is not to replace large models entirely, but to show when smaller models are the more practical engineering choice.

Structure of the talk:
&#8226; Why model size is not always the best metric for capability
&#8226; Running SLMs locally with Python and quantization techniques
&#8226; Building a local-first RAG pipeline for private document retrieval
&#8226; Benchmarking accuracy, latency, and infrastructure cost
&#8226; When to choose small models vs large hosted models

By the end of the talk, attendees will understand how to build efficient, privacy-preserving AI systems using the Python ecosystem without relying entirely on large cloud-hosted models.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/9KEBYY/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/9KEBYY/feedback/</feedback_url>
            </event>
            <event guid='01f87b81-bd1b-5b2b-a34c-b15b433a3e08' id='2107'>
                <room>Auditorium</room>
                <title>Building Resilient Python APIs for Systems That Can&apos;t Afford to Fail</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T12:00:00+00:00</date>
                <start>12:00</start>
                <duration>00:30</duration>
                <abstract>Python developers are building APIs that expose industrial control systems (PLCs and sensor networks via Modbus or OPC-UA) to the internet, often with basic authentication and outdated dependencies. When code controls power grids, water systems, or manufacturing processes, a compromised API or a typosquatted package is not just a data leak, it can disrupt operations.

Because of this, the way these APIs are built introduces security concerns that are not always visible during development. Many of these applications depend on third-party packages, which creates exposure to supply chain risks.

Attackers use techniques such as typosquatting, publishing malicious packages with names similar to widely used libraries (such as reqeusts instead of requests). Once installed, these packages can access environment variables, API keys, or system interfaces. Outdated dependencies introduce additional risk, as libraries such as requests or urllib3 may contain known weaknesses, including credential leakage during redirects or improper SSL validation.

These patterns come from web development, where their impact is often limited to data exposure. When the same code is used in systems connected to infrastructure that controls physical processes, the consequences change. Weak API design or a compromised dependency can affect system behavior, not just stored data.

This difference creates a gap between how Python applications are commonly built and what is expected in these environments. Small decisions in Python API design can reduce risk in systems where software directly affects physical processes.

This talk shows Python developers how to secure these integrations through safer API design, careful handling of dependencies, and decisions that improve system resilience without requiring deep security expertise.</abstract>
                <slug>pycon-portugal-2026-2107-building-resilient-python-apis-for-systems-that-can-t-afford-to-fail</slug>
                <track></track>
                <logo>/media/pycon-portugal-2026/submissions/YETWYL/python-critical__1EJRWiO.png</logo>
                <persons>
                    <person id='1553'>Natalia Riveros N&#250;&#241;ez</person>
                </persons>
                <language>en</language>
                <description>This talk looks at how Python APIs connect industrial control systems such as PLCs and sensor networks to external systems. These integrations are often built using familiar patterns, but the risks change when software affects physical processes.

Here, the session starts with how Python is used in these environments and then moves to common issues in API design and dependency use, including typosquatting and outdated libraries. From there, it explains how problems that seem minor in web applications can affect system behavior in industrial settings.

Based on this, the talk ends with practical ways developers can write safer APIs and handle dependencies more carefully, without adding unnecessary complexity.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/YETWYL/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/YETWYL/feedback/</feedback_url>
            </event>
            <event guid='d0752879-0145-54e3-bdc4-4915dd3f54ec' id='2145'>
                <room>Auditorium</room>
                <title>Predicting the future with machine learning and Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T12:30:00+00:00</date>
                <start>12:30</start>
                <duration>00:30</duration>
                <abstract>Forecasting is one of the most important and frequent problems in machine learning.

- How many customers will visit a store next Friday?
- How many products will a factory sell three months from now?
- How many tourists will visit a city next summer?

In this talk, you will learn how to solve these types of problems with machine learning in Python.

The talk will start with a brief introduction to the necessary machine learning concepts, then explain how to transform a time series problem into a machine learning problem. It will focus on concepts that are not only essential for this approach, but for time series modelling in general.</abstract>
                <slug>pycon-portugal-2026-2145-predicting-the-future-with-machine-learning-and-python</slug>
                <track></track>
                
                <persons>
                    <person id='1574'>Juan Castillo del R&#237;o</person>
                </persons>
                <language>en</language>
                <description>Time series problems can be tackled with specialized models, but in practice, many real-world solutions rely on reframing forecasting tasks as supervised machine learning problems. In this talk, we&#8217;ll focus on this approach, since many of its core ideas also underpin time series&#8211;specific models. This makes it the best introduction to time series modelling.

We&#8217;ll start by reviewing the essential supervised machine learning concepts needed when working with time-dependent data. From there, we&#8217;ll see how to transform a time series problem into a supervised machine learning problem by carefully designing inputs and targets.

Finally, we&#8217;ll focus on a critical aspect: evaluation. We&#8217;ll discuss how to validate machine learning models in general, and how time dependence fundamentally changes validation strategies in the context of time series.

By the end of the talk, attendees familiar with machine learning will know how to apply their skills to time series problems, while those newer to ML will gain a solid conceptual foundation for understanding how modern time series models work under the hood.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/99JTVH/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/99JTVH/feedback/</feedback_url>
            </event>
            <event guid='ec3cb107-20fe-5d72-b6af-559a95151903' id='1964'>
                <room>Auditorium</room>
                <title>Building Multi-Tenant SaaS Applications with Django</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T14:00:00+00:00</date>
                <start>14:00</start>
                <duration>00:30</duration>
                <abstract>Learn how to build scalable multi-tenant SaaS applications with Django. This talk explains tenant isolation, schema-based architectures, and authentication strategies, with practical lessons from building real Django project</abstract>
                <slug>pycon-portugal-2026-1964-building-multi-tenant-saas-applications-with-django</slug>
                <track></track>
                
                <persons>
                    <person id='1373'>Brian Oginga</person>
                </persons>
                <language>en</language>
                <description>Many SaaS applications must serve multiple organizations while keeping their data isolated and secure. Django provides powerful tools to build such systems, but designing a clean and scalable multi-tenant architecture can be challenging.

In this talk, I will walk through practical approaches to building multi-tenant SaaS applications using Django.

First, I will introduce the concept of multi-tenancy and the common architectural approaches used in SaaS platforms. Then I will demonstrate how Django can support schema-based and shared-database tenant models.

The talk will cover:

&#8226; Understanding multi-tenant architectures
&#8226; Schema-based vs shared-database approaches
&#8226; Authentication and permissions in multi-tenant systems
&#8226; Handling migrations and tenant onboarding
&#8226; Lessons learned from building real Django projects

This session focuses on practical implementation and real-world lessons. Attendees will leave with a clear understanding of how to design and implement multi-tenant applications using Django.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/SSLMWK/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/SSLMWK/feedback/</feedback_url>
            </event>
            <event guid='bc6f3e84-d4d3-53e5-a7fb-933361ce2317' id='1923'>
                <room>Auditorium</room>
                <title>Now available: A pythoneer&apos;s guide to IaC with Pulumi</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>00:30</duration>
                <abstract>Why keep managing your cloud with rigid HCL when you can use Python?
Python + Pulumi bridges the gap between dev and devOps with the same language.</abstract>
                <slug>pycon-portugal-2026-1923-now-available-a-pythoneer-s-guide-to-iac-with-pulumi</slug>
                <track></track>
                
                <persons>
                    <person id='1461'>Marcos Manuel Ortega Gonz&#225;lez</person>
                </persons>
                <language>en</language>
                <description>Why keep managing your cloud with rigid HCL when you can use the power of Python?
Traditional Infrastructure as Code (IaC) tools forced us developers to use domain-specific languages that lack the ecosystem, tooling and best practices we love.

Let&apos;s see how Python + Pulumi bridge the gap between dev and devOps without language switching, while discussing how recent Terraform changes make now maybe the perfect time to adopt a truly code-first, open-source approach.

This session is a live-coding, hands-on, no slides, dive into IaC and Pulumi IaC, an OSS tool that treats infrastructure as a first-class code citizen, not just a config file. We&apos;ll deploy and manage a Google Cloud environment, demonstrating how Python&apos;s great ecosystem allows better abstraction, loop management, and testing than HCL or YAML.

- Limitation of traditional DSL in complex environments.
- Python features, tools and best practices transfered to Pulumi.
- Migrating from Terraform to Pulumi + Python.
- Using Pulumi with Python for Google Cloud.

Audience: Pythoneers, pythonistas, cloud architects/engineers, experienced TF devOps, devs looking to grow into platform engineers before AI takes our jobs and dooms us all maybe? &#128558;</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/89C3AY/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/89C3AY/feedback/</feedback_url>
            </event>
            <event guid='9b42a1e3-7e67-56ac-832b-60366f8a34fb' id='2049'>
                <room>Auditorium</room>
                <title>Implementing Data Quality Control with Python</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T15:30:00+00:00</date>
                <start>15:30</start>
                <duration>00:30</duration>
                <abstract>In this talk about Data Quality, I will explore its main concepts, technologies, and strategies, besides presenting a benchmark of Python solutions and a use case applying Airflow to execute Data Quality validations</abstract>
                <slug>pycon-portugal-2026-2049-implementing-data-quality-control-with-python</slug>
                <track></track>
                
                <persons>
                    <person id='1516'>Rafael Ara&#250;jo</person>
                </persons>
                <language>en</language>
                <description>Data Quality is growing in importance and visibility as companies understand the strategic value of it inside the Data Governance field. In this talk, I will explore the impact of implementing Data Quality routines in data pipelines and the available techniques and technologies, applying Python to do so. This lecture will be divided into four sessions, starting with the presentation of Data Quality&apos;s main concepts, then presenting three use cases, a benchmark of data quality tools, and, finally, a use case using Airflow to implement data quality validations.

Structure planned:
- Presenting myself (2 minutes)
- Why Data Quality is so relevant? (3 minutes)
- Data Quality main concepts (3 minutes)
- Three use cases of Data Quality (5 minutes)
- A benchmark for Python tools (7 minutes)
- A use case with Airflow (7 minutes)
- Questions (3 minutes)</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/FYSCHQ/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/FYSCHQ/feedback/</feedback_url>
            </event>
            <event guid='85e1205e-1151-5996-9b3d-4731bad3a44d' id='2165'>
                <room>Auditorium</room>
                <title>To be announced!</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T16:00:00+00:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>TBA</abstract>
                <slug>pycon-portugal-2026-2165-to-be-announced</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>TBA</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KFV3DT/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/KFV3DT/feedback/</feedback_url>
            </event>
            <event guid='ec905539-dd9b-5e58-b54d-9dcaeb816ed0' id='2158'>
                <room>Auditorium</room>
                <title>Lightning talks &#9889;&#65039; Friday</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2026-09-04T16:30:00+00:00</date>
                <start>16:30</start>
                <duration>00:30</duration>
                <abstract>Enjoy Friday&apos;s lightning talks! Short talks about everything by everyone.</abstract>
                <slug>pycon-portugal-2026-2158-lightning-talks-friday</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Lightning talks are 5 minute talks that anyone participating at the conference can submit. If that talk gets selected, you will have the chance to jump into the main stage and show us your project, your ideas, something you have learned, something you are proud of that&apos;s helping and contributing to our conference and community, or something else!

Lightning talks last a maximum of 5 minutes. You can use less time, but not more. This time limit is strictly enforced!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GN7EQA/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/GN7EQA/feedback/</feedback_url>
            </event>
            <event guid='d6992354-a081-5315-8b6f-6c046a0ffd78' id='2168'>
                <room>Auditorium</room>
                <title>Closing session</title>
                <subtitle></subtitle>
                <type>Other</type>
                <date>2026-09-04T17:00:00+00:00</date>
                <start>17:00</start>
                <duration>00:15</duration>
                <abstract>Closing session</abstract>
                <slug>pycon-portugal-2026-2168-closing-session</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>Closing session</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/ZA7PPP/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/ZA7PPP/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='3' date='2026-09-05' start='2026-09-05T04:00:00+00:00' end='2026-09-06T03:59:00+00:00'>
        <room name='Workshop Room A' guid='3dda8a38-7da2-539c-a091-beca6e2f558e'>
            <event guid='1d84f2dc-0e72-5631-be7e-d4013d7dc937' id='2141'>
                <room>Workshop Room A</room>
                <title>This Agent Will Judge Your Bias!</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T09:00:00+00:00</date>
                <start>09:00</start>
                <duration>02:00</duration>
                <abstract>AI doesn&#8217;t just reflect society&#8212;it amplifies its contradictions. From viral &#8220;bikini&#8221; image manipulation trends(!) in generative tools to hiring systems that systematically disadvantage women* in tech, we see the same pattern: erasure in one place, hypervisibility in another. In this hands-on workshop, we build AI agents with LangChain and LangGraph to detect and surface gender bias in real text systems&#8212;turning critique into code, and visibility into a technical feature.</abstract>
                <slug>pycon-portugal-2026-2141-this-agent-will-judge-your-bias</slug>
                <track></track>
                
                <persons>
                    <person id='1571'>Hilal I&#351;&#305;k</person><person id='1585'>Anastasia Mikheeva</person>
                </persons>
                <language>en</language>
                <description>We start by examining real-world examples of bias in tech and AI outputs, then move directly into building AI agents using LangChain and LangGraph. Participants will design and implement a pipeline that detects gender bias in text, classifies its severity, and generates more inclusive rewrites.
The focus is practical: turning bias from an abstract concept into something observable, measurable, and actionable through working AI agents.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/CY3LNP/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/CY3LNP/feedback/</feedback_url>
            </event>
            <event guid='91c0fe17-6ffb-56f6-92f8-ae6d0ef9f06f' id='2113'>
                <room>Workshop Room A</room>
                <title>Audit and evaluate AI generated Python code</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T11:30:00+00:00</date>
                <start>11:30</start>
                <duration>02:00</duration>
                <abstract>These may be the most important skills to keep your job or to find a new one in the future! 

AI-generated code is a powerful tool, but it should never be blindly trusted. This intensive workshop, &quot;Audit and evaluate AI generated Python code,&quot; teaches you the critical skills you need to stay relevant in the future.</abstract>
                <slug>pycon-portugal-2026-2113-audit-and-evaluate-ai-generated-python-code</slug>
                <track></track>
                
                <persons>
                    <person id='339'>Cheuk Ting Ho</person>
                </persons>
                <language>en</language>
                <description>These may be the most important skills to keep your job or to find a new one in the future!

AI-generated code is a powerful tool, but it should never be blindly trusted. This intensive workshop, &quot;Audit and evaluate AI generated Python code,&quot; teaches you the critical skills you need to stay relevant in the future: how to ensure AI-generated code is secure, functional, and aligns with your standards. 

We will go beyond basic reviews with a four-step, hands-on approach. You will learn how to: 
Perform Functional Verification using tools like pytest and hypothesis for property-based testing; 
Conduct Security &amp; Dependency Audits with static analysis tools; 
Execute an Adversarial Review by attacking your own program; and 
Achieve Architectural Alignment using ruff and type checking with ty. 

Finally, we will cover how to measure and document the performance of your AI prompts using evaluation metrics. You&#8217;ll leave this workshop prepared to take control of code that AI produces in your Python projects, and learn how to turn this code into quality code.

This workshop is specifically designed for developers who have already begun incorporating AI into their workflow to generate code and are looking to refine their auditing process.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/BBWJAV/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/BBWJAV/feedback/</feedback_url>
            </event>
            <event guid='8dd59f5f-84f1-5fd5-b3a4-781409f7388b' id='2132'>
                <room>Workshop Room A</room>
                <title>SQLAlchemy ORM: Building a Production-Grade Commodity Pricing API Without Raw SQL</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>02:00</duration>
                <abstract>Managing a database and keeping application data in sync can become complex as Python applications grow. In this hands-on workshop, you&#8217;ll learn how to use SQLAlchemy ORM to structure database interactions and build clean, maintainable Python APIs. We will use a commodity pricing API as a practical example to demonstrate how real-world systems are designed.

We&#8217;ll cover how SQLAlchemy&#8217;s Object Relational Mapper (ORM) replaces scattered raw SQL with structured Python models, making database operations more consistent and easier to manage. Participants will learn how to define ORM classes, model relationships, and work with efficient query patterns.

We will also explore SQLAlchemy&#8217;s asyncio extension to show how modern Python applications interact with databases asynchronously.

Participants will leave with practical experience building a working API and a clear understanding of how to structure database-backed Python applications using SQLAlchemy ORM.</abstract>
                <slug>pycon-portugal-2026-2132-sqlalchemy-orm-building-a-production-grade-commodity-pricing-api-without-raw-sql</slug>
                <track></track>
                
                <persons>
                    <person id='1566'>David Asem</person>
                </persons>
                <language>en</language>
                <description>Managing a database and keeping application data in sync with the database can be tricky as Python applications grow in complexity. In many systems, raw SQL scattered across the codebase leads to tight coupling, reduced maintainability, and inconsistent data handling.

In this hands-on workshop, you&#8217;ll learn how to use SQLAlchemy ORM to simplify database interactions and structure clean, maintainable Python APIs. We will build a commodity pricing API as a practical example to demonstrate how ORM-based design works in real applications.

We&#8217;ll cover how SQLAlchemy&#8217;s Object Relational Mapper (ORM) system helps replace raw SQL with structured Python models, making database operations more readable and easier to maintain. Participants will learn how to define ORM classes that represent database tables, manage relationships between models, and work with efficient querying techniques.

We will also explore relationship-loading strategies to understand how query behavior affects performance in real systems, and how to apply SQLAlchemy&#8217;s asyncio extension in modern Python services.

By the end of this tutorial, participants will walk out having learned how to:

    1. Use SQLAlchemy ORM to perform database operations in Python without relying on raw SQL
    2. Design and implement ORM models that map directly to relational database tables
    3.Manage database sessions and transactions correctly in real Python applications
    4.Model relationships between entities and apply different relationship-loading strategies to control query behavior and performance
    5. Use SQLAlchemy&#8217;s asyncio extension to build asynchronous database-backed Python services
    6. Structure a complete API workflow using SQLAlchemy ORM (using a commodity pricing API as a practical example)</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/AKDPNX/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/AKDPNX/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Workshop Room B' guid='163d9376-ca4f-58bf-98eb-dae0c2ac4846'>
            <event guid='9fd7f014-43eb-5208-9a72-806c1aafc6ab' id='1970'>
                <room>Workshop Room B</room>
                <title>Process, Analyze, and Transform Python Code with ASTs</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T09:00:00+00:00</date>
                <start>09:00</start>
                <duration>02:00</duration>
                <abstract>Come learn how to use the Python standard library&#8217;s `ast` module to parse and analyze code. Using just the standard library, we will implement a couple of code analysis checks from scratch, giving you the skills and confidence to use ASTs in your own projects.</abstract>
                <slug>pycon-portugal-2026-1970-process-analyze-and-transform-python-code-with-asts</slug>
                <track></track>
                <logo>/media/pycon-portugal-2026/submissions/TJN7DC/animation-try-except-nes_fp2StFe.webp</logo>
                <persons>
                    <person id='402'>Stefanie Molin</person>
                </persons>
                <language>en</language>
                <description>You&#8217;ve likely used a tool like `black`, `flake8`, or `ruff` to lint or format your code, or a tool like `sphinx` to document it, but you probably do not know how they accomplish their tasks. These tools and many more use **Abstract Syntax Trees (ASTs)** to analyze and extract information from Python code. An AST is a representation of your code&apos;s structure that enables you to access and manipulate its different components, which is what makes it possible to automate tasks like code migrations, linting, and docstring extraction.

In this workshop, you&#8217;ll learn how to use the Python standard library&#8217;s `ast` module to parse and analyze code. Using just the standard library, we will implement a couple of common checks from scratch, which will give you an idea of how these tools work and help you build the skills and confidence to use ASTs in your own projects.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/TJN7DC/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/TJN7DC/feedback/</feedback_url>
            </event>
            <event guid='7759b386-66f0-5984-9f53-b9d25c7b79a7' id='2171'>
                <room>Workshop Room B</room>
                <title>Code Smarter with Functional Python</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T11:30:00+00:00</date>
                <start>11:30</start>
                <duration>02:00</duration>
                <abstract>What if we approached Python problems differently? This hands-on workshop introduces Functional Programming as a problem-solving mindset: break complexity into small functions, control side effects, compose reusable pieces, and build predictable systems. Learn practical Functional Programming techniques in Python.</abstract>
                <slug>pycon-portugal-2026-2171-code-smarter-with-functional-python</slug>
                <track></track>
                <logo>/media/pycon-portugal-2026/submissions/PSKUPQ/FunctionalProgrammingInPy_r09kx9f.png</logo>
                <persons>
                    <person id='1587'>Mohnish Awade</person>
                </persons>
                <language>en</language>
                <description>Functional programming helps in understanding, designing, and composing your code. This hands-on workshop introduces Functional Programming in Python as a practical approach to breaking complex problems into small, predictable, reusable, and composable functions.
Starting with first-class functions, higher-order functions, closures, and decorators, we explore the core principles of functional programming including pure functions, immutability, referential transparency, side-effect management, declarative programming, lazy evaluation, iterators, generators, and recursion. Participants will then discover powerful techniques such as function composition, pipelines, functional chaining, currying, partial application, memoization, caching, and dynamic programming.
Through 20+ code examples we will explore functional design patterns. We will also explore Functional Programming vs. Object-Oriented Programming and when the two approaches can work together effectively.
The goal is simple: learn to break down complexity, compose better solutions, reduce unnecessary state and side effects, and design code that is easier for us to understand, test, and evolve.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/PSKUPQ/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/PSKUPQ/feedback/</feedback_url>
            </event>
            <event guid='80ef68bb-9fe4-54e9-a9b0-ab9e8cabb61b' id='2169'>
                <room>Workshop Room B</room>
                <title>To be announced!</title>
                <subtitle></subtitle>
                <type>Workshop</type>
                <date>2026-09-05T14:30:00+00:00</date>
                <start>14:30</start>
                <duration>02:00</duration>
                <abstract>TBA</abstract>
                <slug>pycon-portugal-2026-2169-to-be-announced</slug>
                <track></track>
                
                <persons>
                    
                </persons>
                <language>en</language>
                <description>TBA</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/S9BHKB/</url>
                <feedback_url>https://pretalx.evolutio.pt/pycon-portugal-2026/talk/S9BHKB/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
