{
  "days": {
    "2026-07-13": {
      "events": [
        {
          "code": "CSDM3D",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Announcements",
          "slug": "monday-registration-welcome-tbd-floor",
          "speakers": [],
          "start": "2026-07-13T08:30:00+02:00",
          "title": "Monday Registration & Welcome @ TBD Floor",
          "track": null,
          "tweet": "Welcome to EuroPython 2026! Please notice the registration will happen on the TBD. You can pick up your badges at any time during the conference days!",
          "website_url": "https://ep2026.europython.eu/session/monday-registration-welcome-tbd-floor"
        },
        {
          "code": "GCWCEU",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "getting-out-of-the-testing-hell",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FBQ8LL_IcZmAEu.webp",
              "code": "FBQ8LL",
              "name": "Julien Lenormand",
              "slug": "julien-lenormand",
              "website_url": "https://ep2026.europython.eu/speaker/julien-lenormand"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/RTRPAJ_dN46QeJ.webp",
              "code": "RTRPAJ",
              "name": "GAFFIOT Jonathan",
              "slug": "gaffiot-jonathan",
              "website_url": "https://ep2026.europython.eu/speaker/gaffiot-jonathan"
            }
          ],
          "start": "2026-07-13T09:30:00+02:00",
          "title": "Getting out of the testing hell",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Testing shouldn't hurt. If yours does, come fix it with us, we'll turn a broken test suite into something you can actually trust.",
          "website_url": "https://ep2026.europython.eu/session/getting-out-of-the-testing-hell"
        },
        {
          "code": "NQGSY7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "developing-iot-sensors-with-micropython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CVFFNV_DB0OXgC.webp",
              "code": "CVFFNV",
              "name": "Jon Nordby",
              "slug": "jon-nordby",
              "website_url": "https://ep2026.europython.eu/speaker/jon-nordby"
            }
          ],
          "start": "2026-07-13T09:30:00+02:00",
          "title": "Developing IoT sensors with MicroPython",
          "track": "IoT, Embedded Systems, Hardware Integration",
          "tweet": "Use your Python skills to make physical devices and connect them to the Internet",
          "website_url": "https://ep2026.europython.eu/session/developing-iot-sensors-with-micropython"
        },
        {
          "code": "QWEJWT",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "crafting-your-own-compiler-from-python-logic-to-high-speed-webassembly",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QRQDV3_lAYdS4a.webp",
              "code": "QRQDV3",
              "name": "Ariel Ortiz",
              "slug": "ariel-ortiz",
              "website_url": "https://ep2026.europython.eu/speaker/ariel-ortiz"
            }
          ],
          "start": "2026-07-13T09:30:00+02:00",
          "title": "Crafting Your Own Compiler: From Python Logic to High-Speed WebAssembly",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Stop treating code as a black box! Build a compiler from scratch in Python and master how high-speed WebAssembly actually works.",
          "website_url": "https://ep2026.europython.eu/session/crafting-your-own-compiler-from-python-logic-to-high-speed-webassembly"
        },
        {
          "code": "VYUNHG",
          "duration": 90,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "rust-summit-at-europython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8EGVC9_LbezfQb.webp",
              "code": "8EGVC9",
              "name": "Cheuk Ting Ho",
              "slug": "cheuk-ting-ho",
              "website_url": "https://ep2026.europython.eu/speaker/cheuk-ting-ho"
            }
          ],
          "start": "2026-07-13T09:30:00+02:00",
          "title": "Rust Summit at EuroPython",
          "track": "~ None of these topics",
          "tweet": "Rust in Python: Deep Dive and Experience Sharing. This full-day summit is dedicated to exploring the intersection of Rust and the Python ecosystem.",
          "website_url": "https://ep2026.europython.eu/session/rust-summit-at-europython"
        },
        {
          "code": "WYBHCE",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "cooking-with-asyncio-an-introduction-to-asynchronous-programming",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BLNV7P_wULjbpV.webp",
              "code": "BLNV7P",
              "name": "Rodrigo Gir\u00e3o Serr\u00e3o",
              "slug": "rodrigo-girao-serrao",
              "website_url": "https://ep2026.europython.eu/speaker/rodrigo-girao-serrao"
            }
          ],
          "start": "2026-07-13T09:30:00+02:00",
          "title": "Cooking with asyncio: an introduction to asynchronous programming",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Come cook with asyncio and write a chat app with asynchronous programming!",
          "website_url": "https://ep2026.europython.eu/session/cooking-with-asyncio-an-introduction-to-asynchronous-programming"
        },
        {
          "duration": 15,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-13T11:00:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "GCWCEU",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "getting-out-of-the-testing-hell",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FBQ8LL_IcZmAEu.webp",
              "code": "FBQ8LL",
              "name": "Julien Lenormand",
              "slug": "julien-lenormand",
              "website_url": "https://ep2026.europython.eu/speaker/julien-lenormand"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/RTRPAJ_dN46QeJ.webp",
              "code": "RTRPAJ",
              "name": "GAFFIOT Jonathan",
              "slug": "gaffiot-jonathan",
              "website_url": "https://ep2026.europython.eu/speaker/gaffiot-jonathan"
            }
          ],
          "start": "2026-07-13T11:15:00+02:00",
          "title": "Getting out of the testing hell",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Testing shouldn't hurt. If yours does, come fix it with us, we'll turn a broken test suite into something you can actually trust.",
          "website_url": "https://ep2026.europython.eu/session/getting-out-of-the-testing-hell"
        },
        {
          "code": "NQGSY7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "developing-iot-sensors-with-micropython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CVFFNV_DB0OXgC.webp",
              "code": "CVFFNV",
              "name": "Jon Nordby",
              "slug": "jon-nordby",
              "website_url": "https://ep2026.europython.eu/speaker/jon-nordby"
            }
          ],
          "start": "2026-07-13T11:15:00+02:00",
          "title": "Developing IoT sensors with MicroPython",
          "track": "IoT, Embedded Systems, Hardware Integration",
          "tweet": "Use your Python skills to make physical devices and connect them to the Internet",
          "website_url": "https://ep2026.europython.eu/session/developing-iot-sensors-with-micropython"
        },
        {
          "code": "QWEJWT",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "crafting-your-own-compiler-from-python-logic-to-high-speed-webassembly",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QRQDV3_lAYdS4a.webp",
              "code": "QRQDV3",
              "name": "Ariel Ortiz",
              "slug": "ariel-ortiz",
              "website_url": "https://ep2026.europython.eu/speaker/ariel-ortiz"
            }
          ],
          "start": "2026-07-13T11:15:00+02:00",
          "title": "Crafting Your Own Compiler: From Python Logic to High-Speed WebAssembly",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Stop treating code as a black box! Build a compiler from scratch in Python and master how high-speed WebAssembly actually works.",
          "website_url": "https://ep2026.europython.eu/session/crafting-your-own-compiler-from-python-logic-to-high-speed-webassembly"
        },
        {
          "code": "VYUNHG",
          "duration": 90,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "rust-summit-at-europython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8EGVC9_LbezfQb.webp",
              "code": "8EGVC9",
              "name": "Cheuk Ting Ho",
              "slug": "cheuk-ting-ho",
              "website_url": "https://ep2026.europython.eu/speaker/cheuk-ting-ho"
            }
          ],
          "start": "2026-07-13T11:15:00+02:00",
          "title": "Rust Summit at EuroPython",
          "track": "~ None of these topics",
          "tweet": "Rust in Python: Deep Dive and Experience Sharing. This full-day summit is dedicated to exploring the intersection of Rust and the Python ecosystem.",
          "website_url": "https://ep2026.europython.eu/session/rust-summit-at-europython"
        },
        {
          "code": "WYBHCE",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "cooking-with-asyncio-an-introduction-to-asynchronous-programming",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BLNV7P_wULjbpV.webp",
              "code": "BLNV7P",
              "name": "Rodrigo Gir\u00e3o Serr\u00e3o",
              "slug": "rodrigo-girao-serrao",
              "website_url": "https://ep2026.europython.eu/speaker/rodrigo-girao-serrao"
            }
          ],
          "start": "2026-07-13T11:15:00+02:00",
          "title": "Cooking with asyncio: an introduction to asynchronous programming",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Come cook with asyncio and write a chat app with asynchronous programming!",
          "website_url": "https://ep2026.europython.eu/session/cooking-with-asyncio-an-introduction-to-asynchronous-programming"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-13T12:45:00+02:00",
          "title": "Lunch"
        },
        {
          "code": "JRMSZT",
          "duration": 90,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "code-organization-for-non-engineers",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/A7BNZH_6JZWwf0.webp",
              "code": "A7BNZH",
              "name": "Michael Seifert",
              "slug": "michael-seifert",
              "website_url": "https://ep2026.europython.eu/speaker/michael-seifert"
            }
          ],
          "start": "2026-07-13T13:45:00+02:00",
          "title": "Code organization for non-engineers",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Turn messy Python into maintainable, testable code\u2014learn to refactor, organize, and level up your skills!",
          "website_url": "https://ep2026.europython.eu/session/code-organization-for-non-engineers"
        },
        {
          "code": "NELACW",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "build-a-synthesizer-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/RTG9TS_QWZuhmL.webp",
              "code": "RTG9TS",
              "name": "Sangarshanan",
              "slug": "sangarshanan",
              "website_url": "https://ep2026.europython.eu/speaker/sangarshanan"
            }
          ],
          "start": "2026-07-13T13:45:00+02:00",
          "title": "Build a Synthesizer with Python",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "Build a Synthesizer with Python! we'll discuss how to build the basic components that make up a modern digital synth from scratch using Python",
          "website_url": "https://ep2026.europython.eu/session/build-a-synthesizer-with-python"
        },
        {
          "code": "RARRL7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "fast-python-development-with-uv",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9KSJ3K_0gV51CH.webp",
              "code": "9KSJ3K",
              "name": "Mike M\u00fcller",
              "slug": "mike-muller",
              "website_url": "https://ep2026.europython.eu/speaker/mike-muller"
            }
          ],
          "start": "2026-07-13T13:45:00+02:00",
          "title": "Fast Python Development with uv",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Learn uv \u2014 the fast, modern Python tool for dependencies, environments, and packaging in one CLI.",
          "website_url": "https://ep2026.europython.eu/session/fast-python-development-with-uv"
        },
        {
          "code": "SNKUW7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "deconstructing-the-tenets-of-planet-scale-systems-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/ZWGLVB_o9jGaJx.webp",
              "code": "ZWGLVB",
              "name": "Abhimanyu Singh Shekhawat",
              "slug": "abhimanyu-singh-shekhawat",
              "website_url": "https://ep2026.europython.eu/speaker/abhimanyu-singh-shekhawat"
            }
          ],
          "start": "2026-07-13T13:45:00+02:00",
          "title": "Deconstructing the tenets of Planet Scale Systems with Python",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "A hands on tutorial in Python on how to make planet scale, fault tolerant & reliable systems.",
          "website_url": "https://ep2026.europython.eu/session/deconstructing-the-tenets-of-planet-scale-systems-with-python"
        },
        {
          "code": "VYUNHG",
          "duration": 90,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "rust-summit-at-europython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8EGVC9_LbezfQb.webp",
              "code": "8EGVC9",
              "name": "Cheuk Ting Ho",
              "slug": "cheuk-ting-ho",
              "website_url": "https://ep2026.europython.eu/speaker/cheuk-ting-ho"
            }
          ],
          "start": "2026-07-13T13:45:00+02:00",
          "title": "Rust Summit at EuroPython",
          "track": "~ None of these topics",
          "tweet": "Rust in Python: Deep Dive and Experience Sharing. This full-day summit is dedicated to exploring the intersection of Rust and the Python ecosystem.",
          "website_url": "https://ep2026.europython.eu/session/rust-summit-at-europython"
        },
        {
          "duration": 15,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-13T15:15:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "JRMSZT",
          "duration": 90,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "code-organization-for-non-engineers",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/A7BNZH_6JZWwf0.webp",
              "code": "A7BNZH",
              "name": "Michael Seifert",
              "slug": "michael-seifert",
              "website_url": "https://ep2026.europython.eu/speaker/michael-seifert"
            }
          ],
          "start": "2026-07-13T15:30:00+02:00",
          "title": "Code organization for non-engineers",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Turn messy Python into maintainable, testable code\u2014learn to refactor, organize, and level up your skills!",
          "website_url": "https://ep2026.europython.eu/session/code-organization-for-non-engineers"
        },
        {
          "code": "NELACW",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "build-a-synthesizer-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/RTG9TS_QWZuhmL.webp",
              "code": "RTG9TS",
              "name": "Sangarshanan",
              "slug": "sangarshanan",
              "website_url": "https://ep2026.europython.eu/speaker/sangarshanan"
            }
          ],
          "start": "2026-07-13T15:30:00+02:00",
          "title": "Build a Synthesizer with Python",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "Build a Synthesizer with Python! we'll discuss how to build the basic components that make up a modern digital synth from scratch using Python",
          "website_url": "https://ep2026.europython.eu/session/build-a-synthesizer-with-python"
        },
        {
          "code": "RARRL7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "fast-python-development-with-uv",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9KSJ3K_0gV51CH.webp",
              "code": "9KSJ3K",
              "name": "Mike M\u00fcller",
              "slug": "mike-muller",
              "website_url": "https://ep2026.europython.eu/speaker/mike-muller"
            }
          ],
          "start": "2026-07-13T15:30:00+02:00",
          "title": "Fast Python Development with uv",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Learn uv \u2014 the fast, modern Python tool for dependencies, environments, and packaging in one CLI.",
          "website_url": "https://ep2026.europython.eu/session/fast-python-development-with-uv"
        },
        {
          "code": "SNKUW7",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "deconstructing-the-tenets-of-planet-scale-systems-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/ZWGLVB_o9jGaJx.webp",
              "code": "ZWGLVB",
              "name": "Abhimanyu Singh Shekhawat",
              "slug": "abhimanyu-singh-shekhawat",
              "website_url": "https://ep2026.europython.eu/speaker/abhimanyu-singh-shekhawat"
            }
          ],
          "start": "2026-07-13T15:30:00+02:00",
          "title": "Deconstructing the tenets of Planet Scale Systems with Python",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "A hands on tutorial in Python on how to make planet scale, fault tolerant & reliable systems.",
          "website_url": "https://ep2026.europython.eu/session/deconstructing-the-tenets-of-planet-scale-systems-with-python"
        },
        {
          "code": "VYUNHG",
          "duration": 90,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "rust-summit-at-europython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8EGVC9_LbezfQb.webp",
              "code": "8EGVC9",
              "name": "Cheuk Ting Ho",
              "slug": "cheuk-ting-ho",
              "website_url": "https://ep2026.europython.eu/speaker/cheuk-ting-ho"
            }
          ],
          "start": "2026-07-13T15:30:00+02:00",
          "title": "Rust Summit at EuroPython",
          "track": "~ None of these topics",
          "tweet": "Rust in Python: Deep Dive and Experience Sharing. This full-day summit is dedicated to exploring the intersection of Rust and the Python ecosystem.",
          "website_url": "https://ep2026.europython.eu/session/rust-summit-at-europython"
        }
      ],
      "rooms": [
        "Chamber Hall A (S3A)",
        "Chamber Hall B (S3B)",
        "Conference Hall Complex A (S4A)",
        "Conference Hall Complex B (S4B)",
        "Reception Room F2 (Fishbowl)"
      ]
    },
    "2026-07-14": {
      "events": [
        {
          "code": "EKE78F",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Announcements",
          "slug": "tuesday-registration-welcome-tbd",
          "speakers": [],
          "start": "2026-07-14T08:30:00+02:00",
          "title": "Tuesday Registration & Welcome @ TBD",
          "track": null,
          "tweet": "Welcome to EuroPython 2026! Please notice the registration will happen on the TBD",
          "website_url": "https://ep2026.europython.eu/session/tuesday-registration-welcome-tbd"
        },
        {
          "code": "3FDLUS",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "learn-quantum-computing-with-qilisdk-from-circuits-to-pulse-level-control",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/HCHWDW_nMZadnZ.webp",
              "code": "HCHWDW",
              "name": "Vyron Vasileiadis",
              "slug": "vyron-vasileiadis",
              "website_url": "https://ep2026.europython.eu/speaker/vyron-vasileiadis"
            }
          ],
          "start": "2026-07-14T09:30:00+02:00",
          "title": "Learn Quantum Computing with QiliSDK: From Circuits to Pulse-Level Control",
          "track": "Jupyter and Scientific Python",
          "tweet": "Hands-on quantum computing with QiliSDK: build circuits, run simulations, explore noise, and connect algorithms to pulse-level control.",
          "website_url": "https://ep2026.europython.eu/session/learn-quantum-computing-with-qilisdk-from-circuits-to-pulse-level-control"
        },
        {
          "code": "BTTFFJ",
          "duration": 180,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "web-assembly-summit",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WADEN9_yGxrEFA.webp",
              "code": "WADEN9",
              "name": "Nicholas H.Tollervey",
              "slug": "nicholas-h-tollervey",
              "website_url": "https://ep2026.europython.eu/speaker/nicholas-h-tollervey"
            }
          ],
          "start": "2026-07-14T09:30:00+02:00",
          "title": "Web Assembly Summit",
          "track": "~ None of these topics",
          "tweet": "This Summit brings together maintainers and users of Python with WASM, to discuss the state of this ecosystem, existing challenges, and ongoing work.",
          "website_url": "https://ep2026.europython.eu/session/web-assembly-summit"
        },
        {
          "code": "MENRZG",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "let-s-write-some-decorators",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/VZM8L3_hrGE7DW.webp",
              "code": "VZM8L3",
              "name": "Reuven M. Lerner",
              "slug": "reuven-m-lerner",
              "website_url": "https://ep2026.europython.eu/speaker/reuven-m-lerner"
            }
          ],
          "start": "2026-07-14T09:30:00+02:00",
          "title": "Let's write some decorators!",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Finally understand Python's decorators \u2014 how they work, and how to use them.",
          "website_url": "https://ep2026.europython.eu/session/let-s-write-some-decorators"
        },
        {
          "code": "TGGHKC",
          "duration": 90,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "grpc-for-beginners",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/L9DWNE_VOTgwxq.webp",
              "code": "3FUH7N",
              "name": "Adam Gorgo\u0144",
              "slug": "adam-gorgon",
              "website_url": "https://ep2026.europython.eu/speaker/adam-gorgon"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/G3TLBD_mx7t4Wb.webp",
              "code": "G3TLBD",
              "name": "Kamil Kulig",
              "slug": "kamil-kulig",
              "website_url": "https://ep2026.europython.eu/speaker/kamil-kulig"
            }
          ],
          "start": "2026-07-14T09:30:00+02:00",
          "title": "gRPC for Beginners",
          "track": "~ None of these topics",
          "tweet": "3-hour hands-on gRPC workshop for Python developers. Master Protocol Buffers, build services, implement communication patterns, test and monitor .",
          "website_url": "https://ep2026.europython.eu/session/grpc-for-beginners"
        },
        {
          "code": "ZPCDKE",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "let-it-rip-a-diffusion-tutorial",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/7T3KC8_I8Ww13f.webp",
              "code": "7T3KC8",
              "name": "Mai Gim\u00e9nez",
              "slug": "mai-gimenez",
              "website_url": "https://ep2026.europython.eu/speaker/mai-gimenez"
            }
          ],
          "start": "2026-07-14T09:30:00+02:00",
          "title": "Let it rip a diffusion tutorial",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Build a DDPM from scratch using JAX. This talk covers JIT compilation, vmap for batching, and bridging the gap between math and GPU/TPU optimization.",
          "website_url": "https://ep2026.europython.eu/session/let-it-rip-a-diffusion-tutorial"
        },
        {
          "duration": 15,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-14T11:00:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "3FDLUS",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "learn-quantum-computing-with-qilisdk-from-circuits-to-pulse-level-control",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/HCHWDW_nMZadnZ.webp",
              "code": "HCHWDW",
              "name": "Vyron Vasileiadis",
              "slug": "vyron-vasileiadis",
              "website_url": "https://ep2026.europython.eu/speaker/vyron-vasileiadis"
            }
          ],
          "start": "2026-07-14T11:15:00+02:00",
          "title": "Learn Quantum Computing with QiliSDK: From Circuits to Pulse-Level Control",
          "track": "Jupyter and Scientific Python",
          "tweet": "Hands-on quantum computing with QiliSDK: build circuits, run simulations, explore noise, and connect algorithms to pulse-level control.",
          "website_url": "https://ep2026.europython.eu/session/learn-quantum-computing-with-qilisdk-from-circuits-to-pulse-level-control"
        },
        {
          "code": "BTTFFJ",
          "duration": 180,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Reception Room F2 (Fishbowl)"
          ],
          "session_type": "Summit",
          "slug": "web-assembly-summit",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WADEN9_yGxrEFA.webp",
              "code": "WADEN9",
              "name": "Nicholas H.Tollervey",
              "slug": "nicholas-h-tollervey",
              "website_url": "https://ep2026.europython.eu/speaker/nicholas-h-tollervey"
            }
          ],
          "start": "2026-07-14T11:15:00+02:00",
          "title": "Web Assembly Summit",
          "track": "~ None of these topics",
          "tweet": "This Summit brings together maintainers and users of Python with WASM, to discuss the state of this ecosystem, existing challenges, and ongoing work.",
          "website_url": "https://ep2026.europython.eu/session/web-assembly-summit"
        },
        {
          "code": "MENRZG",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "let-s-write-some-decorators",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/VZM8L3_hrGE7DW.webp",
              "code": "VZM8L3",
              "name": "Reuven M. Lerner",
              "slug": "reuven-m-lerner",
              "website_url": "https://ep2026.europython.eu/speaker/reuven-m-lerner"
            }
          ],
          "start": "2026-07-14T11:15:00+02:00",
          "title": "Let's write some decorators!",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Finally understand Python's decorators \u2014 how they work, and how to use them.",
          "website_url": "https://ep2026.europython.eu/session/let-s-write-some-decorators"
        },
        {
          "code": "TGGHKC",
          "duration": 90,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "grpc-for-beginners",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/L9DWNE_VOTgwxq.webp",
              "code": "3FUH7N",
              "name": "Adam Gorgo\u0144",
              "slug": "adam-gorgon",
              "website_url": "https://ep2026.europython.eu/speaker/adam-gorgon"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/G3TLBD_mx7t4Wb.webp",
              "code": "G3TLBD",
              "name": "Kamil Kulig",
              "slug": "kamil-kulig",
              "website_url": "https://ep2026.europython.eu/speaker/kamil-kulig"
            }
          ],
          "start": "2026-07-14T11:15:00+02:00",
          "title": "gRPC for Beginners",
          "track": "~ None of these topics",
          "tweet": "3-hour hands-on gRPC workshop for Python developers. Master Protocol Buffers, build services, implement communication patterns, test and monitor .",
          "website_url": "https://ep2026.europython.eu/session/grpc-for-beginners"
        },
        {
          "code": "ZPCDKE",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "let-it-rip-a-diffusion-tutorial",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/7T3KC8_I8Ww13f.webp",
              "code": "7T3KC8",
              "name": "Mai Gim\u00e9nez",
              "slug": "mai-gimenez",
              "website_url": "https://ep2026.europython.eu/speaker/mai-gimenez"
            }
          ],
          "start": "2026-07-14T11:15:00+02:00",
          "title": "Let it rip a diffusion tutorial",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Build a DDPM from scratch using JAX. This talk covers JIT compilation, vmap for batching, and bridging the gap between math and GPU/TPU optimization.",
          "website_url": "https://ep2026.europython.eu/session/let-it-rip-a-diffusion-tutorial"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-14T12:45:00+02:00",
          "title": "Lunch"
        },
        {
          "code": "3TZHB9",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "process-analyze-and-transform-python-code-with-asts",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9WJJPL_CpF0joR.webp",
              "code": "9WJJPL",
              "name": "Stefanie Molin",
              "slug": "stefanie-molin",
              "website_url": "https://ep2026.europython.eu/speaker/stefanie-molin"
            }
          ],
          "start": "2026-07-14T13:45:00+02:00",
          "title": "Process, Analyze, and Transform Python Code with ASTs",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Come learn how to use the Python standard library\u2019s `ast` module to parse and analyze code.",
          "website_url": "https://ep2026.europython.eu/session/process-analyze-and-transform-python-code-with-asts"
        },
        {
          "code": "K7XNTF",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "understand-and-expand-python-a-hands-on-experience-on-python-internals",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8VVS8L_mpxCQ39.webp",
              "code": "8VVS8L",
              "name": "Cristi\u00e1n Maureira-Fredes",
              "slug": "cristian-maureira-fredes",
              "website_url": "https://ep2026.europython.eu/speaker/cristian-maureira-fredes"
            }
          ],
          "start": "2026-07-14T13:45:00+02:00",
          "title": "Understand and expand Python: a hands-on experience on Python internals",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Jump into Python's internal by undertanding and extending it!",
          "website_url": "https://ep2026.europython.eu/session/understand-and-expand-python-a-hands-on-experience-on-python-internals"
        },
        {
          "code": "N39TFS",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "load-testing-1-on-1-discovering-the-limits-of-your-system",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/PK8LSS_AnxijVa.webp",
              "code": "PK8LSS",
              "name": "Vin\u00edcius Gubiani Ferreira",
              "slug": "vinicius-gubiani-ferreira",
              "website_url": "https://ep2026.europython.eu/speaker/vinicius-gubiani-ferreira"
            }
          ],
          "start": "2026-07-14T13:45:00+02:00",
          "title": "Load testing 1-on-1: discovering the limits of your system",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "How many req/s your system can handle? How about average response time? Need help to answer? Drop by Load testing 1-on-1 tutorial",
          "website_url": "https://ep2026.europython.eu/session/load-testing-1-on-1-discovering-the-limits-of-your-system"
        },
        {
          "code": "ZSRZPC",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "introduction-to-security-research-find-a-cve-with-codeql",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CDSVUM_7GcJQsQ.webp",
              "code": "CDSVUM",
              "name": "Sylwia Budzynska",
              "slug": "sylwia-budzynska",
              "website_url": "https://ep2026.europython.eu/speaker/sylwia-budzynska"
            }
          ],
          "start": "2026-07-14T13:45:00+02:00",
          "title": "Introduction to security research. Find a CVE with CodeQL.",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Learn how to find security vulnerabilities at Introduction to security research. Find a CVE with CodeQL tutorial",
          "website_url": "https://ep2026.europython.eu/session/introduction-to-security-research-find-a-cve-with-codeql"
        },
        {
          "duration": 15,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex A (S4A)",
            "Conference Hall Complex B (S4B)",
            "Reception Room F2 (Fishbowl)"
          ],
          "start": "2026-07-14T15:15:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "3TZHB9",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Tutorial",
          "slug": "process-analyze-and-transform-python-code-with-asts",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9WJJPL_CpF0joR.webp",
              "code": "9WJJPL",
              "name": "Stefanie Molin",
              "slug": "stefanie-molin",
              "website_url": "https://ep2026.europython.eu/speaker/stefanie-molin"
            }
          ],
          "start": "2026-07-14T15:30:00+02:00",
          "title": "Process, Analyze, and Transform Python Code with ASTs",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Come learn how to use the Python standard library\u2019s `ast` module to parse and analyze code.",
          "website_url": "https://ep2026.europython.eu/session/process-analyze-and-transform-python-code-with-asts"
        },
        {
          "code": "K7XNTF",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Tutorial",
          "slug": "understand-and-expand-python-a-hands-on-experience-on-python-internals",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8VVS8L_mpxCQ39.webp",
              "code": "8VVS8L",
              "name": "Cristi\u00e1n Maureira-Fredes",
              "slug": "cristian-maureira-fredes",
              "website_url": "https://ep2026.europython.eu/speaker/cristian-maureira-fredes"
            }
          ],
          "start": "2026-07-14T15:30:00+02:00",
          "title": "Understand and expand Python: a hands-on experience on Python internals",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Jump into Python's internal by undertanding and extending it!",
          "website_url": "https://ep2026.europython.eu/session/understand-and-expand-python-a-hands-on-experience-on-python-internals"
        },
        {
          "code": "N39TFS",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex A (S4A)"
          ],
          "session_type": "Tutorial",
          "slug": "load-testing-1-on-1-discovering-the-limits-of-your-system",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/PK8LSS_AnxijVa.webp",
              "code": "PK8LSS",
              "name": "Vin\u00edcius Gubiani Ferreira",
              "slug": "vinicius-gubiani-ferreira",
              "website_url": "https://ep2026.europython.eu/speaker/vinicius-gubiani-ferreira"
            }
          ],
          "start": "2026-07-14T15:30:00+02:00",
          "title": "Load testing 1-on-1: discovering the limits of your system",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "How many req/s your system can handle? How about average response time? Need help to answer? Drop by Load testing 1-on-1 tutorial",
          "website_url": "https://ep2026.europython.eu/session/load-testing-1-on-1-discovering-the-limits-of-your-system"
        },
        {
          "code": "ZSRZPC",
          "duration": 90,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex B (S4B)"
          ],
          "session_type": "Tutorial",
          "slug": "introduction-to-security-research-find-a-cve-with-codeql",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CDSVUM_7GcJQsQ.webp",
              "code": "CDSVUM",
              "name": "Sylwia Budzynska",
              "slug": "sylwia-budzynska",
              "website_url": "https://ep2026.europython.eu/speaker/sylwia-budzynska"
            }
          ],
          "start": "2026-07-14T15:30:00+02:00",
          "title": "Introduction to security research. Find a CVE with CodeQL.",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Learn how to find security vulnerabilities at Introduction to security research. Find a CVE with CodeQL tutorial",
          "website_url": "https://ep2026.europython.eu/session/introduction-to-security-research-find-a-cve-with-codeql"
        },
        {
          "code": "3APM9B",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Announcements",
          "slug": "beginner-s-orientation",
          "speakers": [],
          "start": "2026-07-14T17:00:00+02:00",
          "title": "Beginner's Orientation",
          "track": null,
          "tweet": "Join the Beginner's Orientation to learn how to surf EuroPython 2026!",
          "website_url": "https://ep2026.europython.eu/session/beginner-s-orientation"
        }
      ],
      "rooms": [
        "Chamber Hall A (S3A)",
        "Chamber Hall B (S3B)",
        "Conference Hall Complex A (S4A)",
        "Conference Hall Complex B (S4B)",
        "Reception Room F2 (Fishbowl)"
      ]
    },
    "2026-07-15": {
      "events": [
        {
          "code": "9V77RU",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Exhibit Hall",
            "Theatre Hall (S2)"
          ],
          "session_type": "Announcements",
          "slug": "wednesday-registration-welcome-tbd",
          "speakers": [],
          "start": "2026-07-15T08:00:00+02:00",
          "title": "Wednesday Registration & Welcome @ TBD",
          "track": null,
          "tweet": "EuroPython 2026 Wednesday Conference Registration & Welcome from the Volunteers",
          "website_url": "https://ep2026.europython.eu/session/wednesday-registration-welcome-tbd"
        },
        {
          "code": "R7PTVB",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "conference-opening",
          "speakers": [],
          "start": "2026-07-15T09:00:00+02:00",
          "title": "Conference Opening \ud83c\udf89",
          "track": null,
          "tweet": "Conference Opening: Welcome to EuroPython 2026, a session that will give you an overview of the following days",
          "website_url": "https://ep2026.europython.eu/session/conference-opening"
        },
        {
          "code": "BJCYNE",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-1-placeholder",
          "speakers": [],
          "start": "2026-07-15T09:30:00+02:00",
          "title": "Keynote 1 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This session will feature an inspiring keynote address to open the event",
          "website_url": "https://ep2026.europython.eu/session/keynote-1-placeholder"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-15T10:20:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "9EFAJS",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk (long session)",
          "slug": "how-to-talk-with-your-legal-department-about-open-source",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/AVHBH8_S5R90gK.webp",
              "code": "AVHBH8",
              "name": "Vladimir Slavov",
              "slug": "vladimir-slavov",
              "website_url": "https://ep2026.europython.eu/speaker/vladimir-slavov"
            }
          ],
          "start": "2026-07-15T10:45:00+02:00",
          "title": "How to Talk With Your Legal Department About Open Source",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "Developers and the legal department tend to have different approaches when thinking about open source. In this talk, we will try to bridge that gap.",
          "website_url": "https://ep2026.europython.eu/session/how-to-talk-with-your-legal-department-about-open-source"
        },
        {
          "code": "DWBGJ9",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk (long session)",
          "slug": "how-cpythons-errors-keep-getting-better",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/RRDCVX_v9yYaxh.webp",
              "code": "RRDCVX",
              "name": "Florian Freitag",
              "slug": "florian-freitag",
              "website_url": "https://ep2026.europython.eu/speaker/florian-freitag"
            }
          ],
          "start": "2026-07-15T10:45:00+02:00",
          "title": "How CPythons Errors keep getting better",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Ever wondered why some error messages are terrible? We'll how Python improved it's errors over the years and how you can help.",
          "website_url": "https://ep2026.europython.eu/session/how-cpythons-errors-keep-getting-better"
        },
        {
          "code": "M8Q77Z",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk (long session)",
          "slug": "should-you-trust-trusted-publishing",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/XZGYGJ_haoiApG.webp",
              "code": "XZGYGJ",
              "name": "Nikita Karamov",
              "slug": "nikita-karamov",
              "website_url": "https://ep2026.europython.eu/speaker/nikita-karamov"
            }
          ],
          "start": "2026-07-15T10:45:00+02:00",
          "title": "Should you trust Trusted Publishing?",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Everyone says one should use Trusted Publisher, but can you, the maintainer, feel safe, and can you, the consumer, actually trust the green checkmark?",
          "website_url": "https://ep2026.europython.eu/session/should-you-trust-trusted-publishing"
        },
        {
          "code": "QT97WA",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk (long session)",
          "slug": "scaling-python-systems-by-designing-team-aware-architecture",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/R8WFXV_4xV32CA.webp",
              "code": "R8WFXV",
              "name": "Ivan Markeev",
              "slug": "ivan-markeev",
              "website_url": "https://ep2026.europython.eu/speaker/ivan-markeev"
            }
          ],
          "start": "2026-07-15T10:45:00+02:00",
          "title": "Scaling Python Systems by Designing Team-Aware Architecture",
          "track": "Professional Development, Careers, Leadership",
          "tweet": "Learn how Python system architecture shapes team scalability and reduces cross-service friction.",
          "website_url": "https://ep2026.europython.eu/session/scaling-python-systems-by-designing-team-aware-architecture"
        },
        {
          "code": "Y8QAUA",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk (long session)",
          "slug": "free-threaded-python-past-present-and-future",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/VGYSEC_W9oA4r9.webp",
              "code": "VGYSEC",
              "name": "Thomas Wouters",
              "slug": "thomas-wouters",
              "website_url": "https://ep2026.europython.eu/speaker/thomas-wouters"
            }
          ],
          "start": "2026-07-15T10:45:00+02:00",
          "title": "Free-threaded Python: past, present and future",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Why removing CPython's Global Interpreter Lock is hard, and how we did it anyway.",
          "website_url": "https://ep2026.europython.eu/session/free-threaded-python-past-present-and-future"
        },
        {
          "code": "CBA98V",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "designing-and-building-custom-keyboards-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/MGPBMB_usyovzG.webp",
              "code": "MGPBMB",
              "name": "Carlos A Aranibar",
              "slug": "carlos-a-aranibar",
              "website_url": "https://ep2026.europython.eu/speaker/carlos-a-aranibar"
            }
          ],
          "start": "2026-07-15T11:40:00+02:00",
          "title": "Designing and Building Custom Keyboards \u2328\ufe0f with Python",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "Design and build your own keyboard with Python: analyze typing habits, create PCBs and program your layout. No prior hardware experience needed.",
          "website_url": "https://ep2026.europython.eu/session/designing-and-building-custom-keyboards-with-python"
        },
        {
          "code": "HJ8KPY",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "the-human-in-the-loop-is-tired",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QZAEVT_HcNtVOM.webp",
              "code": "QZAEVT",
              "name": "Laura Summers",
              "slug": "laura-summers",
              "website_url": "https://ep2026.europython.eu/speaker/laura-summers"
            }
          ],
          "start": "2026-07-15T11:40:00+02:00",
          "title": "The Human-in-the-Loop is Tired",
          "track": "Professional Development, Careers, Leadership",
          "tweet": "LLMs are useful tools that are also genuinely destabilising.  Let's talk about optimising for human experience, not just model outputs.",
          "website_url": "https://ep2026.europython.eu/session/the-human-in-the-loop-is-tired"
        },
        {
          "code": "KRMBWS",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "inside-python-3-15-s-jit-optimizer",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/7Y9DS3_VCN9LzE.webp",
              "code": "7Y9DS3",
              "name": "Ken Jin",
              "slug": "ken-jin",
              "website_url": "https://ep2026.europython.eu/speaker/ken-jin"
            }
          ],
          "start": "2026-07-15T11:40:00+02:00",
          "title": "Inside Python 3.15's JIT Optimizer",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Python 3.15's JIT is getting faster.  Find out the technical details in this talk!",
          "website_url": "https://ep2026.europython.eu/session/inside-python-3-15-s-jit-optimizer"
        },
        {
          "code": "VXDYGX",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "when-the-sun-breaks-your-gps-building-an-explainable-early-warning-system",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FRRAE7_bJYDfI9.webp",
              "code": "FRRAE7",
              "name": "Vincenzo Ventriglia",
              "slug": "vincenzo-ventriglia",
              "website_url": "https://ep2026.europython.eu/speaker/vincenzo-ventriglia"
            }
          ],
          "start": "2026-07-15T11:40:00+02:00",
          "title": "When the Sun Breaks Your GPS: Building an Explainable Early Warning System",
          "track": "Machine Learning: Research & Applications",
          "tweet": "Have you ever happened to use GPS and realised that it is not working properly? The Sun could be responsible.",
          "website_url": "https://ep2026.europython.eu/session/when-the-sun-breaks-your-gps-building-an-explainable-early-warning-system"
        },
        {
          "code": "NEH7RE",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "property-based-testing-with-hypothesis",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/HZMBBH_VpC8XqN.webp",
              "code": "HZMBBH",
              "name": "Freya Bruhin",
              "slug": "freya-bruhin",
              "website_url": "https://ep2026.europython.eu/speaker/freya-bruhin"
            }
          ],
          "start": "2026-07-15T12:20:00+02:00",
          "title": "Property based testing with Hypothesis",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Hypothesis is a powerful tool for uncovering bugs nobody expected. In this talk, I will show how even simply throwing random strings at code can help.",
          "website_url": "https://ep2026.europython.eu/session/property-based-testing-with-hypothesis"
        },
        {
          "code": "UPELCT",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "friendly-borders-graph-algorithms-reveal-eurovision-voting-patterns",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/XQ8VNG_WXyQWVs.webp",
              "code": "XQ8VNG",
              "name": "Domagoj Mari\u0107",
              "slug": "domagoj-maric",
              "website_url": "https://ep2026.europython.eu/speaker/domagoj-maric"
            }
          ],
          "start": "2026-07-15T12:20:00+02:00",
          "title": "Friendly Borders: Graph algorithms reveal Eurovision voting patterns",
          "track": "Data preparation and visualisation",
          "tweet": "Discover hidden patterns with(in) graphs - from business networks to Eurovision voting and regional alliances.",
          "website_url": "https://ep2026.europython.eu/session/friendly-borders-graph-algorithms-reveal-eurovision-voting-patterns"
        },
        {
          "code": "W9NLXV",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "update-on-the-cpython-jit-what-to-expect-in-3-15",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/NCU7GS_zzTxxgX.webp",
              "code": "NCU7GS",
              "name": "Diego Russo",
              "slug": "diego-russo",
              "website_url": "https://ep2026.europython.eu/speaker/diego-russo"
            }
          ],
          "start": "2026-07-15T12:20:00+02:00",
          "title": "Update on the CPython JIT: What to expect in 3.15",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Update on the CPython JIT in Python 3.15: evolution since 3.14, interaction with free threading and debuggers, and real performance todaye",
          "website_url": "https://ep2026.europython.eu/session/update-on-the-cpython-jit-what-to-expect-in-3-15"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-15T12:50:00+02:00",
          "title": "Lunch"
        },
        {
          "code": "33RGZA",
          "duration": 60,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "heuristic-rule-based-model-for-packet-loss-inference-in-iiot-networks",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/DGMZXX_Z1UFdxj.webp",
              "code": "DGMZXX",
              "name": "Oladapo Kayode Abiodun",
              "slug": "oladapo-kayode-abiodun",
              "website_url": "https://ep2026.europython.eu/speaker/oladapo-kayode-abiodun"
            }
          ],
          "start": "2026-07-15T12:50:00+02:00",
          "title": "Heuristic-Rule Based Model for Packet Loss Inference in IIoT Networks",
          "track": "Machine Learning: Research & Applications",
          "tweet": "A heuristic-rule based machine learning model to distinguish between packet losses  is important in IIoT devices.",
          "website_url": "https://ep2026.europython.eu/session/heuristic-rule-based-model-for-packet-loss-inference-in-iiot-networks"
        },
        {
          "code": "LNVDY3",
          "duration": 60,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "django-tdd-patterns-a-visual-field-guide",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CNF9BG_lqH873I.webp",
              "code": "CNF9BG",
              "name": "Kuldeep Pisda",
              "slug": "kuldeep-pisda",
              "website_url": "https://ep2026.europython.eu/speaker/kuldeep-pisda"
            }
          ],
          "start": "2026-07-15T12:50:00+02:00",
          "title": "Django TDD Patterns: A Visual Field Guide",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "A visual decision-tree poster for Django TDD: factory_boy patterns, permission testing matrices, mock boundaries, and anti-pattern fixes.",
          "website_url": "https://ep2026.europython.eu/session/django-tdd-patterns-a-visual-field-guide"
        },
        {
          "code": "PRGGNW",
          "duration": 60,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "a-tour-of-the-module-itertools",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BLNV7P_wULjbpV.webp",
              "code": "BLNV7P",
              "name": "Rodrigo Gir\u00e3o Serr\u00e3o",
              "slug": "rodrigo-girao-serrao",
              "website_url": "https://ep2026.europython.eu/speaker/rodrigo-girao-serrao"
            }
          ],
          "start": "2026-07-15T12:50:00+02:00",
          "title": "A tour of the module `itertools`",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Come learn about the module `itertools`, its 19 iterables and the odd-one-out, `tee`!",
          "website_url": "https://ep2026.europython.eu/session/a-tour-of-the-module-itertools"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "start": "2026-07-15T13:50:00+02:00",
          "title": "AI Panel"
        },
        {
          "code": "3HBWHB",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "how-to-blend-python-physics-and-art-to-create-hopefully-pretty-pictures",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/PPQPPU_uHxr7fb.webp",
              "code": "PPQPPU",
              "name": "Christian Leitold",
              "slug": "christian-leitold",
              "website_url": "https://ep2026.europython.eu/speaker/christian-leitold"
            }
          ],
          "start": "2026-07-15T13:50:00+02:00",
          "title": "How to blend Python, physics, and art to create (hopefully) pretty pictures",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "How about just producing pretty pictures? Inspired by very real analog art and executed by applying techniques from theoretical physicl physics.",
          "website_url": "https://ep2026.europython.eu/session/how-to-blend-python-physics-and-art-to-create-hopefully-pretty-pictures"
        },
        {
          "code": "DRXC3E",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "python-and-http-3-feel-the-difference-in-performance",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/RVRZPP_aSH4gBt.webp",
              "code": "RVRZPP",
              "name": "Daniel Vahla",
              "slug": "daniel-vahla",
              "website_url": "https://ep2026.europython.eu/speaker/daniel-vahla"
            }
          ],
          "start": "2026-07-15T13:50:00+02:00",
          "title": "Python and HTTP/3: feel the difference in performance",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "From TCP to QUIC. Experience the performance gains in a live Snake game thanks to HTTP/3 and WebTransport.",
          "website_url": "https://ep2026.europython.eu/session/python-and-http-3-feel-the-difference-in-performance"
        },
        {
          "code": "NWLBJC",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "why-doing-difficult-things-is-good-for-you-and-good-for-your-team",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/ATWUPR_MMoqQJq.webp",
              "code": "ATWUPR",
              "name": "Katie Bickford",
              "slug": "katie-bickford",
              "website_url": "https://ep2026.europython.eu/speaker/katie-bickford"
            }
          ],
          "start": "2026-07-15T13:50:00+02:00",
          "title": "Why doing difficult things is good for you and good for your team",
          "track": "Community Building, Education, Outreach",
          "tweet": "What it\u2019s like to begin again: a junior developer\u2019s perspective on why doing difficult things is good for you and good for your team.",
          "website_url": "https://ep2026.europython.eu/session/why-doing-difficult-things-is-good-for-you-and-good-for-your-team"
        },
        {
          "code": "US3W8J",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "rethinking-asyncio-from-scratch-for-free-threaded-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/TMDTKB_QjcxgCv.webp",
              "code": "TMDTKB",
              "name": "Giovanni Barillari",
              "slug": "giovanni-barillari",
              "website_url": "https://ep2026.europython.eu/speaker/giovanni-barillari"
            }
          ],
          "start": "2026-07-15T13:50:00+02:00",
          "title": "Rethinking AsyncIO from scratch for free-threaded Python",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Python doesn't have the GIL anymore. Can we rewrite AsyncIO to run in a multi-threaded fashion?",
          "website_url": "https://ep2026.europython.eu/session/rethinking-asyncio-from-scratch-for-free-threaded-python"
        },
        {
          "code": "7VKQQM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "beyond-optional-in-real-world-projects-missing-none-and-unset",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BPFJEJ_nBVuCjo.webp",
              "code": "BPFJEJ",
              "name": "Koudai Aono",
              "slug": "koudai-aono",
              "website_url": "https://ep2026.europython.eu/speaker/koudai-aono"
            }
          ],
          "start": "2026-07-15T14:30:00+02:00",
          "title": "Beyond `Optional` in Real-World Projects: Missing, `None`, and Unset",
          "track": "Python Core, Internals, Extensions",
          "tweet": "In real-world Python, \"no value\" means three different things. This talk shows how to type them apart with TypedDict, sentinels, and dataclasses.",
          "website_url": "https://ep2026.europython.eu/session/beyond-optional-in-real-world-projects-missing-none-and-unset"
        },
        {
          "code": "ENK9EF",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "what-every-python-developer-should-know-about-the-cpython-abi",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/XF7NUC_yHM0SI9.webp",
              "code": "XF7NUC",
              "name": "Nathan Goldbaum",
              "slug": "nathan-goldbaum",
              "website_url": "https://ep2026.europython.eu/speaker/nathan-goldbaum"
            }
          ],
          "start": "2026-07-15T14:30:00+02:00",
          "title": "What every Python developer should know about the CPython ABI",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Learn what the Python ABI is, how it influences the distribution of Python packages, and how it's changing in Python 3.15",
          "website_url": "https://ep2026.europython.eu/session/what-every-python-developer-should-know-about-the-cpython-abi"
        },
        {
          "code": "HVTSPC",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "i-am-a-sucker-for-conventions-why-djangos-defaults-work-until-they-dont",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/3FFT99_mRmqjgs.webp",
              "code": "3FFT99",
              "name": "David Vaz",
              "slug": "david-vaz",
              "website_url": "https://ep2026.europython.eu/speaker/david-vaz"
            }
          ],
          "start": "2026-07-15T14:30:00+02:00",
          "title": "I Am a Sucker for Conventions. Why Django\u2019s Defaults Work, Until They Don\u2019t",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Conventions are one of Django\u2019s greatest strengths. But every convention is also a decision \u2014 and every decision has trade-offs.",
          "website_url": "https://ep2026.europython.eu/session/i-am-a-sucker-for-conventions-why-djangos-defaults-work-until-they-dont"
        },
        {
          "code": "SWCWKZ",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "the-good-the-bad-and-the-ugly-native-python-app-development-and-delivery",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WADEN9_yGxrEFA.webp",
              "code": "WADEN9",
              "name": "Nicholas H.Tollervey",
              "slug": "nicholas-h-tollervey",
              "website_url": "https://ep2026.europython.eu/speaker/nicholas-h-tollervey"
            }
          ],
          "start": "2026-07-15T14:30:00+02:00",
          "title": "The Good, the Bad and the Ugly: native Python app development and delivery.",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Learn to write desktop and mobile apps in Python with modern powerful tooling.",
          "website_url": "https://ep2026.europython.eu/session/the-good-the-bad-and-the-ugly-native-python-app-development-and-delivery"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-15T15:00:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "H7KGU3",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "ducklake-take-python-and-duckdb-for-a-swim-in-your-data-lake",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QYTJB9_ANUFtLT.webp",
              "code": "QYTJB9",
              "name": "Marc-Andr\u00e9 Lemburg",
              "slug": "marc-andre-lemburg",
              "website_url": "https://ep2026.europython.eu/speaker/marc-andre-lemburg"
            }
          ],
          "start": "2026-07-15T15:25:00+02:00",
          "title": "DuckLake - Take Python and DuckDB for a swim in your data lake",
          "track": "Data Engineering and MLOps",
          "tweet": "Using Python with DuckDB and DuckLake, or how to run terabyte scale data analytics on your notebook with ease.",
          "website_url": "https://ep2026.europython.eu/session/ducklake-take-python-and-duckdb-for-a-swim-in-your-data-lake"
        },
        {
          "code": "PCMBVT",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "how-many-spoons-does-your-environment-cost-broken-demos-human-element",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/LDQPN9_BEpPpGr.webp",
              "code": "LDQPN9",
              "name": "Dawn Wages",
              "slug": "dawn-wages",
              "website_url": "https://ep2026.europython.eu/speaker/dawn-wages"
            }
          ],
          "start": "2026-07-15T15:25:00+02:00",
          "title": "How many spoons does your environment cost: Broken demos & human element",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "In under 30 minutes, you'll see me load up some of the most gnarly environments and watch them fail, exploring the hidden human cost of env friction.",
          "website_url": "https://ep2026.europython.eu/session/how-many-spoons-does-your-environment-cost-broken-demos-human-element"
        },
        {
          "code": "RMY7Y7",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "pgqueuer-drop-the-broker-keep-the-queue",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/GRKGYS_RR7EBEX.webp",
              "code": "GRKGYS",
              "name": "Jan Bj\u00f8rge",
              "slug": "jan-bjorge",
              "website_url": "https://ep2026.europython.eu/speaker/jan-bjorge"
            }
          ],
          "start": "2026-07-15T15:25:00+02:00",
          "title": "PgQueuer: Drop the Broker, Keep the Queue",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Your PostgreSQL database is already a job queue - you just need the right SQL primitives. Let me show you how",
          "website_url": "https://ep2026.europython.eu/session/pgqueuer-drop-the-broker-keep-the-queue"
        },
        {
          "code": "WKBHZW",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "rust-for-high-performance-computing-hpc-in-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8EGVC9_LbezfQb.webp",
              "code": "8EGVC9",
              "name": "Cheuk Ting Ho",
              "slug": "cheuk-ting-ho",
              "website_url": "https://ep2026.europython.eu/speaker/cheuk-ting-ho"
            }
          ],
          "start": "2026-07-15T15:25:00+02:00",
          "title": "Rust for High Performance Computing (HPC) in Python",
          "track": "Jupyter and Scientific Python",
          "tweet": "In this talk, we will review the state of Python in HPC, examine the role of key libraries, and see using PyO3 to create Rust bindings for Python.",
          "website_url": "https://ep2026.europython.eu/session/rust-for-high-performance-computing-hpc-in-python"
        },
        {
          "code": "ZRWENU",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "designing-performant-apis-with-litestar",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8BQEZZ_TdgUDan.webp",
              "code": "8BQEZZ",
              "name": "Julien Court\u00e8s",
              "slug": "julien-courtes",
              "website_url": "https://ep2026.europython.eu/speaker/julien-courtes"
            }
          ],
          "start": "2026-07-15T15:25:00+02:00",
          "title": "Designing Performant APIs with Litestar",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Your API started fast, then grew slow. Learn design patterns to keep Python APIs performant at scale, using Litestar to avoid common bottlenecks",
          "website_url": "https://ep2026.europython.eu/session/designing-performant-apis-with-litestar"
        },
        {
          "code": "H7DVRJ",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "how-to-maintain-60-integrations-and-not-go-bananas",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/NVGXHG_z9EQBcR.webp",
              "code": "NVGXHG",
              "name": "Ivana Kellyer",
              "slug": "ivana-kellyer",
              "website_url": "https://ep2026.europython.eu/speaker/ivana-kellyer"
            }
          ],
          "start": "2026-07-15T16:05:00+02:00",
          "title": "How to Maintain 60 Integrations and Not Go Bananas",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Integrating with a third-party package is one thing, but how do you make sure you keep supporting it, regardless of what changes it introduces?",
          "website_url": "https://ep2026.europython.eu/session/how-to-maintain-60-integrations-and-not-go-bananas"
        },
        {
          "code": "JEN7WA",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "fast-multi-version-etl-pipelines-in-python-with-generators-and-functools",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/XCBLVD_mmWqODt.webp",
              "code": "XCBLVD",
              "name": "Nikita Zigman",
              "slug": "nikita-zigman",
              "website_url": "https://ep2026.europython.eu/speaker/nikita-zigman"
            }
          ],
          "start": "2026-07-15T16:05:00+02:00",
          "title": "Fast Multi-Version ETL Pipelines in Python with Generators and functools",
          "track": "Data Engineering and MLOps",
          "tweet": "Building multi-version ETL pipelines in Python with generators and functools for memory-efficient, streaming data processing.",
          "website_url": "https://ep2026.europython.eu/session/fast-multi-version-etl-pipelines-in-python-with-generators-and-functools"
        },
        {
          "code": "TWBDVZ",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "the-hardest-test-suite-i-ever-built-a-pytest-case-study",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8ANWRW_U4Y77Lt.webp",
              "code": "8ANWRW",
              "name": "Grzegorz Kocjan",
              "slug": "grzegorz-kocjan",
              "website_url": "https://ep2026.europython.eu/speaker/grzegorz-kocjan"
            }
          ],
          "start": "2026-07-15T16:05:00+02:00",
          "title": "The hardest test suite I ever built - a pytest case study",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "No tests. Real-time system. 80% accuracy. Production incidents. How I pushed pytest to its limits to build the hardest test suite of my career.",
          "website_url": "https://ep2026.europython.eu/session/the-hardest-test-suite-i-ever-built-a-pytest-case-study"
        },
        {
          "code": "X3ENDU",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "how-much-do-you-really-need-to-know-about-databases",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/NMCVC3_sFYkpVH.webp",
              "code": "NMCVC3",
              "name": "Karen Jex",
              "slug": "karen-jex",
              "website_url": "https://ep2026.europython.eu/speaker/karen-jex"
            }
          ],
          "start": "2026-07-15T16:05:00+02:00",
          "title": "How much do you really need to know about Databases?",
          "track": "~ None of these topics",
          "tweet": "What does a Python developer really need to know about databases?",
          "website_url": "https://ep2026.europython.eu/session/how-much-do-you-really-need-to-know-about-databases"
        },
        {
          "code": "Y3DGWB",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "demystifying-cra-for-the-community",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QYF9E3_sUXaHGy.webp",
              "code": "QYF9E3",
              "name": "Anwesha Das",
              "slug": "anwesha-das",
              "website_url": "https://ep2026.europython.eu/speaker/anwesha-das"
            }
          ],
          "start": "2026-07-15T16:05:00+02:00",
          "title": "Demystifying CRA for the community",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "Is my Python project commercial activity? Why is everyone talking about SBOMs? What is Stewardship? We talk about CRA, legal roles & ToDos for co.",
          "website_url": "https://ep2026.europython.eu/session/demystifying-cra-for-the-community"
        },
        {
          "code": "PKMSSL",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-2-placeholder",
          "speakers": [],
          "start": "2026-07-15T16:45:00+02:00",
          "title": "Keynote 2 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This prime session will feature an inspiring keynote address to set the tone for the entire event.",
          "website_url": "https://ep2026.europython.eu/session/keynote-2-placeholder"
        },
        {
          "code": "FMNUSD",
          "duration": 15,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "python-quiz",
          "speakers": [],
          "start": "2026-07-15T17:30:00+02:00",
          "title": "Python Quiz \ud83d\udcdd",
          "track": null,
          "tweet": "Join us for a fast, fun, and brain-twisting quiz all about Python, the tools, and the community.",
          "website_url": "https://ep2026.europython.eu/session/python-quiz"
        },
        {
          "code": "PRFYJA",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "lightning-talks-wednesday",
          "speakers": [],
          "start": "2026-07-15T17:45:00+02:00",
          "title": "Lightning talks \u26a1 Wednesday",
          "track": null,
          "tweet": "Enjoy Wednesday's lightning talks! Short talks about everything by everyone.   Lightning talks are 5 minute talks that anyone participating at the con",
          "website_url": "https://ep2026.europython.eu/session/lightning-talks-wednesday"
        }
      ],
      "rooms": [
        "Auditorium Hall (S1)",
        "Chamber Hall A (S3A)",
        "Chamber Hall B (S3B)",
        "Conference Hall Complex (S4)",
        "Exhibit Hall",
        "Theatre Hall (S2)"
      ]
    },
    "2026-07-16": {
      "events": [
        {
          "code": "QDCP3K",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Exhibit Hall",
            "Theatre Hall (S2)"
          ],
          "session_type": "Announcements",
          "slug": "thursday-registration-welcome-tbd",
          "speakers": [],
          "start": "2026-07-16T08:00:00+02:00",
          "title": "Thursday Registration & Welcome @ TBD",
          "track": null,
          "tweet": "EuroPython 2026 Thursday Conference Registration & Welcome from the Volunteers",
          "website_url": "https://ep2026.europython.eu/session/thursday-registration-welcome-tbd"
        },
        {
          "code": "DSHNXM",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "thursday-s-morning-announcement",
          "speakers": [],
          "start": "2026-07-16T09:00:00+02:00",
          "title": "Thursday's Morning Announcement \u23f0",
          "track": null,
          "tweet": "Yesterday was an amazing day, but for sure you don't remember all the things that were mentioned during the opening.",
          "website_url": "https://ep2026.europython.eu/session/thursday-s-morning-announcement"
        },
        {
          "code": "3KT3BW",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-3-placeholder",
          "speakers": [],
          "start": "2026-07-16T09:20:00+02:00",
          "title": "Keynote 3 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This prime session will feature an inspiring keynote address to set the tone for the entire event.",
          "website_url": "https://ep2026.europython.eu/session/keynote-3-placeholder"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-16T10:05:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "788XZA",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk (long session)",
          "slug": "from-one-to-1-million-packet-second-scaling-global-internet-monitoring",
          "speakers": [
            {
              "avatar": null,
              "code": "P3TRFT",
              "name": "Marco Grossi",
              "slug": "marco-grossi",
              "website_url": "https://ep2026.europython.eu/speaker/marco-grossi"
            }
          ],
          "start": "2026-07-16T10:30:00+02:00",
          "title": "From one to 1 million packet/second: scaling global Internet monitoring",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "From one to 1 million packet/second: the real story about design, tune and operating a distributed high performance network monitoring platform",
          "website_url": "https://ep2026.europython.eu/session/from-one-to-1-million-packet-second-scaling-global-internet-monitoring"
        },
        {
          "code": "CWBA3L",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk (long session)",
          "slug": "self-hosted-small-models-from-openai-lock-in-to-open-models",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8TWA3E_AUjMuXq.webp",
              "code": "8TWA3E",
              "name": "Filip Makraduli",
              "slug": "filip-makraduli",
              "website_url": "https://ep2026.europython.eu/speaker/filip-makraduli"
            }
          ],
          "start": "2026-07-16T10:30:00+02:00",
          "title": "Self-Hosted Small Models: From OpenAI Lock-In to Open Models",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Most Python RAG apps use OpenAI embeddings. Open models now match the quality. This talk walks through a real migration and what you gain.",
          "website_url": "https://ep2026.europython.eu/session/self-hosted-small-models-from-openai-lock-in-to-open-models"
        },
        {
          "code": "ETBPVR",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk (long session)",
          "slug": "localization-made-easy-a-pythonic-approach-to-global-applications",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/YMJGBJ_8NgbAO4.webp",
              "code": "YMJGBJ",
              "name": "Mario Garc\u00eda",
              "slug": "mario-garcia",
              "website_url": "https://ep2026.europython.eu/speaker/mario-garcia"
            }
          ],
          "start": "2026-07-16T10:30:00+02:00",
          "title": "Localization Made Easy: A Pythonic Approach to Global Applications",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Scale your app globally: A guide to automating multi-language support using Python and DeepL without breaking your JSON structures.",
          "website_url": "https://ep2026.europython.eu/session/localization-made-easy-a-pythonic-approach-to-global-applications"
        },
        {
          "code": "TZHTEE",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk (long session)",
          "slug": "navigating-waters-of-background-jobs-and-queues-in-python-as-of-2026",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/Z7MMMN_ZKPj0bk.webp",
              "code": "Z7MMMN",
              "name": "Sebastian Buczy\u0144ski",
              "slug": "sebastian-buczynski",
              "website_url": "https://ep2026.europython.eu/speaker/sebastian-buczynski"
            }
          ],
          "start": "2026-07-16T10:30:00+02:00",
          "title": "Navigating waters of background jobs and queues in Python as of 2026",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "How to run a background job or send something to queue using Python in 2026?",
          "website_url": "https://ep2026.europython.eu/session/navigating-waters-of-background-jobs-and-queues-in-python-as-of-2026"
        },
        {
          "code": "UGM7F8",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk (long session)",
          "slug": "the-hidden-cost-of-complexity-reducing-cognitive-load-in-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/7JPAB8_caSGiZl.webp",
              "code": "7JPAB8",
              "name": "Jaros\u0142aw \u015amietanka",
              "slug": "jaroslaw-smietanka",
              "website_url": "https://ep2026.europython.eu/speaker/jaroslaw-smietanka"
            }
          ],
          "start": "2026-07-16T10:30:00+02:00",
          "title": "The Hidden Cost of Complexity: Reducing Cognitive Load in Python",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Why do simple changes take weeks? Learn how cognitive load in Python codebases slows teams down\u2014and practical ways to reduce it.",
          "website_url": "https://ep2026.europython.eu/session/the-hidden-cost-of-complexity-reducing-cognitive-load-in-python"
        },
        {
          "code": "AGX8D9",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "deploying-python-web-apps-in-2026",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/Z38FJK_ZjSOeg9.webp",
              "code": "Z38FJK",
              "name": "Will Vincent",
              "slug": "will-vincent",
              "website_url": "https://ep2026.europython.eu/speaker/will-vincent"
            }
          ],
          "start": "2026-07-16T11:25:00+02:00",
          "title": "Deploying Python Web Apps in 2026",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Every website must be deployed. This talk provides a clear, practical model for deploying Python web apps, across frameworks.",
          "website_url": "https://ep2026.europython.eu/session/deploying-python-web-apps-in-2026"
        },
        {
          "code": "BYWVNK",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "beyond-the-demo-production-patterns-for-streaming-llm-systems",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/PSCB8W_6ymz4vz.webp",
              "code": "PSCB8W",
              "name": "Nitish",
              "slug": "nitish",
              "website_url": "https://ep2026.europython.eu/speaker/nitish"
            }
          ],
          "start": "2026-07-16T11:25:00+02:00",
          "title": "Beyond the Demo: Production Patterns for Streaming LLM Systems",
          "track": "Data Engineering and MLOps",
          "tweet": "Don't let 429s break your app. Learn battle-tested architecture patterns for resilient, streaming LLM systems at scale.",
          "website_url": "https://ep2026.europython.eu/session/beyond-the-demo-production-patterns-for-streaming-llm-systems"
        },
        {
          "code": "DWGSFA",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "from-pixels-to-insights-python-for-earth-observation",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/AEFAYE_ScQeEyB.webp",
              "code": "AEFAYE",
              "name": "ELENI TOKMAKTSI",
              "slug": "eleni-tokmaktsi",
              "website_url": "https://ep2026.europython.eu/speaker/eleni-tokmaktsi"
            }
          ],
          "start": "2026-07-16T11:25:00+02:00",
          "title": "From Pixels to Insights: Python for Earth Observation",
          "track": "Jupyter and Scientific Python",
          "tweet": "Satellites watch the Earth from space, capturing invisible signals. Let's see how Python reveals their meaning.",
          "website_url": "https://ep2026.europython.eu/session/from-pixels-to-insights-python-for-earth-observation"
        },
        {
          "code": "G9FDRY",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "args-amazing-or-approaching",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/AHET73_7Ky4wOa.webp",
              "code": "AHET73",
              "name": "Evan Kohilas",
              "slug": "evan-kohilas",
              "website_url": "https://ep2026.europython.eu/speaker/evan-kohilas"
            }
          ],
          "start": "2026-07-16T11:25:00+02:00",
          "title": "Args: Amazing or Approaching?",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "The way that you write code day to day is wrong. Come to Evan's talk \"Args: Amazing or Approaching?\" to find out why!",
          "website_url": "https://ep2026.europython.eu/session/args-amazing-or-approaching"
        },
        {
          "code": "JQSQBB",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "an-introduction-to-writing-fast-gpu-code-in-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QAHDBD_5Flt7b7.webp",
              "code": "QAHDBD",
              "name": "Abhik Sarkar",
              "slug": "abhik-sarkar",
              "website_url": "https://ep2026.europython.eu/speaker/abhik-sarkar"
            }
          ],
          "start": "2026-07-16T11:25:00+02:00",
          "title": "An Introduction to Writing Fast GPU Code in Python",
          "track": "Machine Learning: Research & Applications",
          "tweet": "Python is evolving as language for GPU Programming. This talk introduces hardware-aware GPU programming for Python developers.",
          "website_url": "https://ep2026.europython.eu/session/an-introduction-to-writing-fast-gpu-code-in-python"
        },
        {
          "code": "9MRVPM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "stop-firefighting-practical-observability-for-python-apis-workers-jobs",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WTJPR3_5M8dFeQ.webp",
              "code": "WTJPR3",
              "name": "Daria Korsakova",
              "slug": "daria-korsakova",
              "website_url": "https://ep2026.europython.eu/speaker/daria-korsakova"
            }
          ],
          "start": "2026-07-16T12:05:00+02:00",
          "title": "Stop firefighting: practical observability for Python APIs, workers & jobs",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "A practical observability checklist for Python APIs, workers and cron jobs: logs, metrics, tracing, alerts.",
          "website_url": "https://ep2026.europython.eu/session/stop-firefighting-practical-observability-for-python-apis-workers-jobs"
        },
        {
          "code": "GEJAQW",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "immutability-fast-and-safe-sharing-of-data-across-subinterpreters",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/DKRZRV_sp1XIRG.webp",
              "code": "DKRZRV",
              "name": "Tobias Wrigstad",
              "slug": "tobias-wrigstad",
              "website_url": "https://ep2026.europython.eu/speaker/tobias-wrigstad"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/ZAUJUS_FzCxK84.webp",
              "code": "ZAUJUS",
              "name": "Fridtjof Stoldt",
              "slug": "fridtjof-stoldt",
              "website_url": "https://ep2026.europython.eu/speaker/fridtjof-stoldt"
            }
          ],
          "start": "2026-07-16T12:05:00+02:00",
          "title": "Immutability: Fast and Safe sharing of Data across Subinterpreters",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Immutability can enable fast and safe sharing of data across sub-interpreters: Here is how PEP795 works and what we can do with it.",
          "website_url": "https://ep2026.europython.eu/session/immutability-fast-and-safe-sharing-of-data-across-subinterpreters"
        },
        {
          "code": "JSLSHM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "gpu-programming-in-pure-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/PJBCE3_pz8iOV2.webp",
              "code": "PJBCE3",
              "name": "Bryce Adelstein Lelbach",
              "slug": "bryce-adelstein-lelbach",
              "website_url": "https://ep2026.europython.eu/speaker/bryce-adelstein-lelbach"
            }
          ],
          "start": "2026-07-16T12:05:00+02:00",
          "title": "GPU Programming in Pure Python",
          "track": "~ None of these topics",
          "tweet": "GPU programming can be scary, but doesn't need to be! Come to this talk to learn how to access the full performance of CUDA purely in Python.",
          "website_url": "https://ep2026.europython.eu/session/gpu-programming-in-pure-python"
        },
        {
          "code": "LN7EF3",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "python-games-in-the-browser-teaching-with-webassembly",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/NXPA9Z_hhqKeEe.webp",
              "code": "NXPA9Z",
              "name": "Farhaan Bukhsh",
              "slug": "farhaan-bukhsh",
              "website_url": "https://ep2026.europython.eu/speaker/farhaan-bukhsh"
            }
          ],
          "start": "2026-07-16T12:05:00+02:00",
          "title": "Python Games in the Browser: Teaching with WebAssembly",
          "track": "Community Building, Education, Outreach",
          "tweet": "Teach Python through games that run entirely in the browser with WebAssembly \u2014 zero-install, safe, and built for modern learning.",
          "website_url": "https://ep2026.europython.eu/session/python-games-in-the-browser-teaching-with-webassembly"
        },
        {
          "code": "YKWMBZ",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "djangos-magic-fastapis-reality-test-isolation-at-scale",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9PKN9W_RMsHlYs.webp",
              "code": "9PKN9W",
              "name": "Maciej Sobczak",
              "slug": "maciej-sobczak",
              "website_url": "https://ep2026.europython.eu/speaker/maciej-sobczak"
            }
          ],
          "start": "2026-07-16T12:05:00+02:00",
          "title": "Django\u2019s Magic, FastAPI\u2019s Reality: Test Isolation at Scale",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Django cleans up tests automagically. FastAPI doesn't. Let's find out why and fix it.",
          "website_url": "https://ep2026.europython.eu/session/djangos-magic-fastapis-reality-test-isolation-at-scale"
        },
        {
          "code": "B7CMBD",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "become-a-python-core-developer-in-3-easy-steps",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/YX7F3Y_F4LjhME.webp",
              "code": "YX7F3Y",
              "name": "Tomas Roun",
              "slug": "tomas-roun",
              "website_url": "https://ep2026.europython.eu/speaker/tomas-roun"
            }
          ],
          "start": "2026-07-16T12:45:00+02:00",
          "title": "Become a Python Core Developer in 3 Easy Steps",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Would you like to contribute to CPython but don't know where to start? This talk is for you!",
          "website_url": "https://ep2026.europython.eu/session/become-a-python-core-developer-in-3-easy-steps"
        },
        {
          "code": "BMQP7J",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "building-a-smart-home-device-with-micropython",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/RMHTBJ_0aNWwXM.webp",
              "code": "RMHTBJ",
              "name": "Micha\u0142 Karzy\u0144ski",
              "slug": "michal-karzynski",
              "website_url": "https://ep2026.europython.eu/speaker/michal-karzynski"
            }
          ],
          "start": "2026-07-16T12:45:00+02:00",
          "title": "Building a Smart Home Device with MicroPython",
          "track": "IoT, Embedded Systems, Hardware Integration",
          "tweet": "Build smart home devices with ESP32, MicroPython, MQTT, Zigbee, Home Assistant and more.",
          "website_url": "https://ep2026.europython.eu/session/building-a-smart-home-device-with-micropython"
        },
        {
          "code": "E3GVVR",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Sponsored",
          "slug": "surviving-llm-traffic-spikes-routing-rate-limits-and-failover-in-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/YHZWL7_UT9dhE6.webp",
              "code": "YHZWL7",
              "name": "Sergi Porta",
              "slug": "sergi-porta",
              "website_url": "https://ep2026.europython.eu/speaker/sergi-porta"
            }
          ],
          "start": "2026-07-16T12:45:00+02:00",
          "title": "Surviving LLM Traffic Spikes: Routing, Rate Limits, and Failover in Python",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "Weighted routing, automatic cooldown, fallback chains. How we handle hundreds of LLM calls/s in Python without things falling over.",
          "website_url": "https://ep2026.europython.eu/session/surviving-llm-traffic-spikes-routing-rate-limits-and-failover-in-python"
        },
        {
          "code": "FB93DB",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "python-stings-your-ego-finding-pride-in-community-not-just-code",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9DGTAT_EaBIGn6.webp",
              "code": "9DGTAT",
              "name": "Emmanuel Ugwu",
              "slug": "emmanuel-ugwu",
              "website_url": "https://ep2026.europython.eu/speaker/emmanuel-ugwu"
            }
          ],
          "start": "2026-07-16T12:45:00+02:00",
          "title": "Python Stings Your Ego: Finding Pride in Community, Not Just Code",
          "track": "Community Building, Education, Outreach",
          "tweet": "A reflection on ego, imposter syndrome, and how Python communities help developers grow beyond code and competition.",
          "website_url": "https://ep2026.europython.eu/session/python-stings-your-ego-finding-pride-in-community-not-just-code"
        },
        {
          "code": "MJTZ7A",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "the-hidden-cost-of-vibe-coding",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FCQWZC_7GvI3yV.webp",
              "code": "FCQWZC",
              "name": "Sebastian Burzy\u0144ski",
              "slug": "sebastian-burzynski",
              "website_url": "https://ep2026.europython.eu/speaker/sebastian-burzynski"
            }
          ],
          "start": "2026-07-16T12:45:00+02:00",
          "title": "The hidden cost of vibe coding",
          "track": "Community Building, Education, Outreach",
          "tweet": "AI speeds up coding, but breaks systems without discipline. A real case of vibe coding, security failure, and lessons learned.",
          "website_url": "https://ep2026.europython.eu/session/the-hidden-cost-of-vibe-coding"
        },
        {
          "code": "8HBEYS",
          "duration": 60,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "python-syntax-diagram",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/SCAGQW_4SZGMPm.webp",
              "code": "SCAGQW",
              "name": "Petr Viktorin",
              "slug": "petr-viktorin",
              "website_url": "https://ep2026.europython.eu/speaker/petr-viktorin"
            }
          ],
          "start": "2026-07-16T13:00:00+02:00",
          "title": "Python Syntax Diagram",
          "track": "Python Core, Internals, Extensions",
          "tweet": "A railroad diagram showing the grammar of the Python language",
          "website_url": "https://ep2026.europython.eu/session/python-syntax-diagram"
        },
        {
          "code": "9URK9U",
          "duration": 60,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "how-we-write-unit-test-in-my-team-in-openchip",
          "speakers": [
            {
              "avatar": null,
              "code": "PHABML",
              "name": "Jan Koprowski",
              "slug": "jan-koprowski",
              "website_url": "https://ep2026.europython.eu/speaker/jan-koprowski"
            }
          ],
          "start": "2026-07-16T13:00:00+02:00",
          "title": "How we write unit test in my team in Openchip",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "A practical intro to writing effective unit tests: key techniques, best practices, and improved testability.",
          "website_url": "https://ep2026.europython.eu/session/how-we-write-unit-test-in-my-team-in-openchip"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "start": "2026-07-16T13:15:00+02:00",
          "title": "Lunch"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-16T14:15:00+02:00",
          "title": "CPython panel"
        },
        {
          "code": "93XE3S",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "what-is-this-footgun-called-unittest-mock-and-how-to-avoid-misusing-it",
          "speakers": [
            {
              "avatar": null,
              "code": "LLRS88",
              "name": "Claudiu Belu",
              "slug": "claudiu-belu",
              "website_url": "https://ep2026.europython.eu/speaker/claudiu-belu"
            }
          ],
          "start": "2026-07-16T14:15:00+02:00",
          "title": "What is this footgun called unittest.mock, and how to avoid misusing it",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "Your unittests are green, but are they lying? Avoid false positives with safer mocking patterns, or else you'll be the one getting mocked!",
          "website_url": "https://ep2026.europython.eu/session/what-is-this-footgun-called-unittest-mock-and-how-to-avoid-misusing-it"
        },
        {
          "code": "NXNHSB",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "anatomy-of-a-phishing-campaign",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/TVA3TQ_gJohOw8.webp",
              "code": "TVA3TQ",
              "name": "Mike Fiedler",
              "slug": "mike-fiedler",
              "website_url": "https://ep2026.europython.eu/speaker/mike-fiedler"
            }
          ],
          "start": "2026-07-16T14:15:00+02:00",
          "title": "Anatomy of a Phishing Campaign",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "How real-time phishing bypassed PyPI's 2FA, why WebAuthn stopped it cold, and what defenders learned from a campaign in 2025",
          "website_url": "https://ep2026.europython.eu/session/anatomy-of-a-phishing-campaign"
        },
        {
          "code": "PPQ3KE",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "python-on-serverless-strategies-for-peak-performance",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/YMJTM9_3ZAwSgF.webp",
              "code": "YMJTM9",
              "name": "Alejandro Cabello Jim\u00e9nez",
              "slug": "alejandro-cabello-jimenez",
              "website_url": "https://ep2026.europython.eu/speaker/alejandro-cabello-jimenez"
            }
          ],
          "start": "2026-07-16T14:15:00+02:00",
          "title": "Python on Serverless: Strategies for Peak Performance",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "From 1.2s to 300ms: Optimizing Python Serverless. A deep dive into GC tuning, async patterns, and TypedDict for a 4x speedup.",
          "website_url": "https://ep2026.europython.eu/session/python-on-serverless-strategies-for-peak-performance"
        },
        {
          "code": "VNR377",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "from-molecules-to-models-a-guide-to-ai-drug-discovery-with-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/UMPJBY_kLpts52.webp",
              "code": "UMPJBY",
              "name": "Jenny Vega",
              "slug": "jenny-vega",
              "website_url": "https://ep2026.europython.eu/speaker/jenny-vega"
            }
          ],
          "start": "2026-07-16T14:15:00+02:00",
          "title": "From Molecules to Models: A Guide to AI Drug Discovery with Python",
          "track": "Machine Learning: Research & Applications",
          "tweet": "What if your ML skills could help discover new medicines? Join us for an intro to AI drug discovery with Python.",
          "website_url": "https://ep2026.europython.eu/session/from-molecules-to-models-a-guide-to-ai-drug-discovery-with-python"
        },
        {
          "code": "BFK3JK",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "faster-django-orm-queries-for-everybody",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/7FCECA_qbX8WTe.webp",
              "code": "7FCECA",
              "name": "Jan Smitka",
              "slug": "jan-smitka",
              "website_url": "https://ep2026.europython.eu/speaker/jan-smitka"
            }
          ],
          "start": "2026-07-16T14:55:00+02:00",
          "title": "Faster Django ORM queries for everybody",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Learn how to speed-up database queries in your Django app. We'll cover N+1 queries, database views, and creating proper indicies.",
          "website_url": "https://ep2026.europython.eu/session/faster-django-orm-queries-for-everybody"
        },
        {
          "code": "NS8QQA",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "the-unseen-pull-request-the-crisis-we-dont-measure",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/T38F7H_4GhEhsk.webp",
              "code": "T38F7H",
              "name": "Lokko Joyce Dzifa",
              "slug": "lokko-joyce-dzifa",
              "website_url": "https://ep2026.europython.eu/speaker/lokko-joyce-dzifa"
            }
          ],
          "start": "2026-07-16T14:55:00+02:00",
          "title": "The Unseen Pull Request: The Crisis We Don\u2019t Measure",
          "track": "Community Building, Education, Outreach",
          "tweet": "What if the most important PR never gets merged? The crisis of invisible labor in tech.",
          "website_url": "https://ep2026.europython.eu/session/the-unseen-pull-request-the-crisis-we-dont-measure"
        },
        {
          "code": "SASJQU",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "flying-in-formation-with-python-threading-and-ros2-parallelism",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WWYK7X_NHz3xpq.webp",
              "code": "WWYK7X",
              "name": "DEBORAH E DANJUMA",
              "slug": "deborah-e-danjuma",
              "website_url": "https://ep2026.europython.eu/speaker/deborah-e-danjuma"
            }
          ],
          "start": "2026-07-16T14:55:00+02:00",
          "title": "Flying in Formation - with Python Threading and ROS2 Parallelism",
          "track": "~ None of these topics",
          "tweet": "Coordinating a drone swarm is a concurrency problem. Here's how threading.Event and ROS2 solved it on real hardware.",
          "website_url": "https://ep2026.europython.eu/session/flying-in-formation-with-python-threading-and-ros2-parallelism"
        },
        {
          "code": "TAZHCD",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "climbing-the-pyramid-behind-the-scenes-of-the-python-package-index",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/LKEVDA_QpvEdtv.webp",
              "code": "LKEVDA",
              "name": "Maria Ashna",
              "slug": "maria-ashna",
              "website_url": "https://ep2026.europython.eu/speaker/maria-ashna"
            }
          ],
          "start": "2026-07-16T14:55:00+02:00",
          "title": "Climbing the Pyramid: Behind the Scenes of the Python Package Index",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "Come climb the Pyramid, the web framework behind the software that houses the Python Package Index!",
          "website_url": "https://ep2026.europython.eu/session/climbing-the-pyramid-behind-the-scenes-of-the-python-package-index"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-16T15:25:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "3FW7UF",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "python-learning-that-fits-teen-life",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/3LKBHX_3YFVRJj.webp",
              "code": "3LKBHX",
              "name": "Oladapo Jesusemilore Jael",
              "slug": "oladapo-jesusemilore-jael",
              "website_url": "https://ep2026.europython.eu/speaker/oladapo-jesusemilore-jael"
            }
          ],
          "start": "2026-07-16T15:50:00+02:00",
          "title": "Python Learning that fits Teen Life",
          "track": "Community Building, Education, Outreach",
          "tweet": "Coding often looks boring at the beginning, but the more we code, the more interesting & better in it, let us chat our way into Python as a Teenager",
          "website_url": "https://ep2026.europython.eu/session/python-learning-that-fits-teen-life"
        },
        {
          "code": "9JALSN",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "learning-from-the-not-so-secret-python-security-cabal",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/KKVUH8_P4CQm3d.webp",
              "code": "KKVUH8",
              "name": "Seth Michael Larson",
              "slug": "seth-michael-larson",
              "website_url": "https://ep2026.europython.eu/speaker/seth-michael-larson"
            }
          ],
          "start": "2026-07-16T15:50:00+02:00",
          "title": "Learning from the not-so-secret Python security \"cabal\"",
          "track": "Testing, Quality Assurance, Security",
          "tweet": "It\u2019s dangerous to go alone! \ud83d\udc0d\ud83d\udee1\ufe0f Learn sustainable open source security practices for projects of all sizes from the Python Security Response Team.",
          "website_url": "https://ep2026.europython.eu/session/learning-from-the-not-so-secret-python-security-cabal"
        },
        {
          "code": "UY9UAG",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "binary-dependencies-identifying-the-hidden-packages-we-all-depend-on",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/3RGAHL_iQKd0sh.webp",
              "code": "3RGAHL",
              "name": "Vlad-Stefan Harbuz",
              "slug": "vlad-stefan-harbuz",
              "website_url": "https://ep2026.europython.eu/speaker/vlad-stefan-harbuz"
            }
          ],
          "start": "2026-07-16T15:50:00+02:00",
          "title": "Binary Dependencies: Identifying the Hidden Packages We All Depend On",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Hidden binary dependency relationships are putting the security of the Python ecosystem at risk \u2014 but we can fix this.",
          "website_url": "https://ep2026.europython.eu/session/binary-dependencies-identifying-the-hidden-packages-we-all-depend-on"
        },
        {
          "code": "BDUAKE",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-4-placeholder",
          "speakers": [],
          "start": "2026-07-16T16:30:00+02:00",
          "title": "Keynote 4 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This prime session will feature an inspiring keynote address to set the tone for the entire event.",
          "website_url": "https://ep2026.europython.eu/session/keynote-4-placeholder"
        },
        {
          "code": "DJU8GK",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "lightning-talks-thursday",
          "speakers": [],
          "start": "2026-07-16T17:15:00+02:00",
          "title": "Lightning talks \u26a1 Thursday",
          "track": null,
          "tweet": "Enjoy Thursday's lightning talks! Short talks about everything by everyone.   Lightning talks are 5 minute talks that anyone participating at the conf",
          "website_url": "https://ep2026.europython.eu/session/lightning-talks-thursday"
        }
      ],
      "rooms": [
        "Auditorium Hall (S1)",
        "Chamber Hall A (S3A)",
        "Chamber Hall B (S3B)",
        "Conference Hall Complex (S4)",
        "Exhibit Hall",
        "Theatre Hall (S2)"
      ]
    },
    "2026-07-17": {
      "events": [
        {
          "code": "JGBFDF",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Exhibit Hall",
            "Theatre Hall (S2)"
          ],
          "session_type": "Announcements",
          "slug": "friday-registration-welcome-tbd",
          "speakers": [],
          "start": "2026-07-17T08:00:00+02:00",
          "title": "Friday Registration & Welcome @ TBD",
          "track": null,
          "tweet": "Friday Registration & Welcome @ TBD ! Enjoy the conference !",
          "website_url": "https://ep2026.europython.eu/session/friday-registration-welcome-tbd"
        },
        {
          "code": "SXBNNA",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "friday-s-morning-announcement",
          "speakers": [],
          "start": "2026-07-17T08:45:00+02:00",
          "title": "Friday's Morning Announcement \u23f0",
          "track": null,
          "tweet": "Yesterday was an amazing day, but for sure you don't remember all the things that were mentioned during the opening.",
          "website_url": "https://ep2026.europython.eu/session/friday-s-morning-announcement"
        },
        {
          "code": "UPKZKC",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-5-placeholder",
          "speakers": [],
          "start": "2026-07-17T09:00:00+02:00",
          "title": "Keynote 5 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This prime session will feature an inspiring keynote address to set the tone for the entire event.",
          "website_url": "https://ep2026.europython.eu/session/keynote-5-placeholder"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-17T09:45:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "DBBNQD",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk (long session)",
          "slug": "cpythons-memory-engine-allocation-deallocation-and-free-list-tricks",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CEHB8A_cKxF7r2.webp",
              "code": "CEHB8A",
              "name": "Petr Andreev",
              "slug": "petr-andreev",
              "website_url": "https://ep2026.europython.eu/speaker/petr-andreev"
            }
          ],
          "start": "2026-07-17T10:10:00+02:00",
          "title": "CPython\u2019s Memory Engine: Allocation, Deallocation, and Free-List Tricks",
          "track": "Python Core, Internals, Extensions",
          "tweet": "NoGIL changes memory story. We\u2019ll trace alloc/free path, see what changes under NoGIL (mimalloc) + how to benchmark and profile real memory behavior.",
          "website_url": "https://ep2026.europython.eu/session/cpythons-memory-engine-allocation-deallocation-and-free-list-tricks"
        },
        {
          "code": "KFQN3X",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "the-coolest-feature-in-python-3-14-sys-remote-exec",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/HB3VXK_d1udjFw.webp",
              "code": "HB3VXK",
              "name": "Savannah Ostrowski",
              "slug": "savannah-ostrowski",
              "website_url": "https://ep2026.europython.eu/speaker/savannah-ostrowski"
            }
          ],
          "start": "2026-07-17T10:10:00+02:00",
          "title": "The coolest feature in Python 3.14: sys.remote_exec()",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Debugging live Python in containers is painful. Learn how sys.remote_exec() in 3.14 lets you inject a debugger into running pods - no restart needed.",
          "website_url": "https://ep2026.europython.eu/session/the-coolest-feature-in-python-3-14-sys-remote-exec"
        },
        {
          "code": "LFSJYL",
          "duration": 45,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk (long session)",
          "slug": "robot-holmes-and-the-silenced-witness-a-noir-guide-to-real-time-voice-ai",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/QFSMUG_UekUIHx.webp",
              "code": "QFSMUG",
              "name": "Johannes Kolbe",
              "slug": "johannes-kolbe",
              "website_url": "https://ep2026.europython.eu/speaker/johannes-kolbe"
            }
          ],
          "start": "2026-07-17T10:10:00+02:00",
          "title": "Robot Holmes and the Silenced Witness: A Noir Guide to Real-Time Voice AI",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Robot Holmes vs. Zintia: A detective noir guide to building real-time Voice AI. Fast, fluid, and potentially fatal. \ud83d\udd0d\ud83d\udc0d\u2728",
          "website_url": "https://ep2026.europython.eu/session/robot-holmes-and-the-silenced-witness-a-noir-guide-to-real-time-voice-ai"
        },
        {
          "code": "RB9TKP",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "is-object-detection-dead-a-case-for-recognizing-lego-bricks",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8DK3QT_hD8fm4q.webp",
              "code": "8DK3QT",
              "name": "Piotr Rybak",
              "slug": "piotr-rybak",
              "website_url": "https://ep2026.europython.eu/speaker/piotr-rybak"
            }
          ],
          "start": "2026-07-17T10:10:00+02:00",
          "title": "Is Object Detection Dead? A Case for Recognizing LEGO Bricks",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Is training your own LEGO brick detector still worth it in the age of foundation models?",
          "website_url": "https://ep2026.europython.eu/session/is-object-detection-dead-a-case-for-recognizing-lego-bricks"
        },
        {
          "code": "SGM9SV",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "plugins-in-python-how-it-is-done",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/LZRGS8_aJEO3ta.webp",
              "code": "LZRGS8",
              "name": "Grzegorz Bokota",
              "slug": "grzegorz-bokota",
              "website_url": "https://ep2026.europython.eu/speaker/grzegorz-bokota"
            }
          ],
          "start": "2026-07-17T10:10:00+02:00",
          "title": "Plugins in python - how it is done",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Plugins - how it is done in python, a walk through existing solution to understand and use",
          "website_url": "https://ep2026.europython.eu/session/plugins-in-python-how-it-is-done"
        },
        {
          "code": "7SSS93",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "how-music-generation-actually-works",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/8HVY9P_23XrhBv.webp",
              "code": "8HVY9P",
              "name": "Mateusz Modrzejewski",
              "slug": "mateusz-modrzejewski",
              "website_url": "https://ep2026.europython.eu/speaker/mateusz-modrzejewski"
            }
          ],
          "start": "2026-07-17T11:05:00+02:00",
          "title": "How Music Generation Actually Works",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "A clear view of how AI music generation works: codecs, models, Python tools, evaluation, and why it matters. No ML background needed.\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b",
          "website_url": "https://ep2026.europython.eu/session/how-music-generation-actually-works"
        },
        {
          "code": "ARRMQR",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "pointers-objects-and-references-how-python-manages-memory",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/SKGET8_zVGqPJl.webp",
              "code": "SKGET8",
              "name": "Abigail Afi Gbadago",
              "slug": "abigail-afi-gbadago",
              "website_url": "https://ep2026.europython.eu/speaker/abigail-afi-gbadago"
            }
          ],
          "start": "2026-07-17T11:05:00+02:00",
          "title": "Pointers, Objects, and References - How Python Manages Memory",
          "track": "Python Core, Internals, Extensions",
          "tweet": "In this session, we will look at how Python manages memory\u2014references, mutability, garbage collection, and performance.",
          "website_url": "https://ep2026.europython.eu/session/pointers-objects-and-references-how-python-manages-memory"
        },
        {
          "code": "FBQQXS",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "breaking-changes-not-great-not-terrible",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FWGLE3_M8OECsb.webp",
              "code": "FWGLE3",
              "name": "Jan Mus\u00edlek",
              "slug": "jan-musilek",
              "website_url": "https://ep2026.europython.eu/speaker/jan-musilek"
            }
          ],
          "start": "2026-07-17T11:05:00+02:00",
          "title": "Breaking changes \u2013 not great, not terrible",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Make your user's life easier by keeping the breaking changes managable, even in a large-scale projects.",
          "website_url": "https://ep2026.europython.eu/session/breaking-changes-not-great-not-terrible"
        },
        {
          "code": "TG7YMS",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "refactor-optimize-and-test-crafting-cleaner-python-code",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/DGWNHV_LoRWXs1.webp",
              "code": "DGWNHV",
              "name": "Mohamed Elmaghraby",
              "slug": "mohamed-elmaghraby",
              "website_url": "https://ep2026.europython.eu/speaker/mohamed-elmaghraby"
            }
          ],
          "start": "2026-07-17T11:05:00+02:00",
          "title": "Refactor, Optimize, and Test: Crafting Cleaner Python Code",
          "track": "~ None of these topics",
          "tweet": "In software development messy code is inevitable refactoring allows us to keep code maintainable and easy to extend without altering its functionality",
          "website_url": "https://ep2026.europython.eu/session/refactor-optimize-and-test-crafting-cleaner-python-code"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "start": "2026-07-17T11:45:00+02:00",
          "title": "Sponsors Showcase"
        },
        {
          "code": "PQCHT3",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "python-in-the-service-of-justice-modern-analysis-tools-in-forensics",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/SGS9LZ_uyze1MB.webp",
              "code": "SGS9LZ",
              "name": "Aleksander",
              "slug": "aleksander",
              "website_url": "https://ep2026.europython.eu/speaker/aleksander"
            }
          ],
          "start": "2026-07-17T11:45:00+02:00",
          "title": "Python in the Service of Justice: Modern Analysis Tools in Forensics",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "Presentation demonstrates Python applications in forensics, covering mobile device analysis, network analysis and cryptographic tools.",
          "website_url": "https://ep2026.europython.eu/session/python-in-the-service-of-justice-modern-analysis-tools-in-forensics"
        },
        {
          "code": "QXZMP8",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Sponsored",
          "slug": "python-on-windows-on-arm-ecosystem-enablement-update",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/NCU7GS_zzTxxgX.webp",
              "code": "NCU7GS",
              "name": "Diego Russo",
              "slug": "diego-russo",
              "website_url": "https://ep2026.europython.eu/speaker/diego-russo"
            }
          ],
          "start": "2026-07-17T11:45:00+02:00",
          "title": "Python on Windows on Arm: Ecosystem Enablement Update",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Python on Windows on Arm in 2026: ecosystem status, native wheels, CI on Arm runners, and real-world libraries such as PyTorch.",
          "website_url": "https://ep2026.europython.eu/session/python-on-windows-on-arm-ecosystem-enablement-update"
        },
        {
          "code": "SCZ8ZK",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "building-your-dsl-compiler-in-python",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/TABXBG_mK5y5fC.webp",
              "code": "TABXBG",
              "name": "Mateusz Sok\u00f3\u0142",
              "slug": "mateusz-sokol",
              "website_url": "https://ep2026.europython.eu/speaker/mateusz-sokol"
            }
          ],
          "start": "2026-07-17T11:45:00+02:00",
          "title": "Building your DSL compiler in Python",
          "track": "Machine Learning: Research & Applications",
          "tweet": "Sparse and structured kernels in Finch. Tips and lessons from writing a DSL compiler in Python.",
          "website_url": "https://ep2026.europython.eu/session/building-your-dsl-compiler-in-python"
        },
        {
          "code": "VKURLV",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "python-dicts-past-present-and-free-threaded-future",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/FRXXAQ_cBQDaZd.webp",
              "code": "FRXXAQ",
              "name": "Lysandros Nikolaou",
              "slug": "lysandros-nikolaou",
              "website_url": "https://ep2026.europython.eu/speaker/lysandros-nikolaou"
            }
          ],
          "start": "2026-07-17T11:45:00+02:00",
          "title": "Python Dicts: Past, Present, and Free-Threaded Future",
          "track": "Python Core, Internals, Extensions",
          "tweet": "A deep dive into CPython dict internals, what changed for free-threading, and the thread-safety guarantees you can rely on when the GIL goes away",
          "website_url": "https://ep2026.europython.eu/session/python-dicts-past-present-and-free-threaded-future"
        },
        {
          "code": "BJBKRM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "what-i-ve-learned-maintaining-the-mcp-python-sdk",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BGPPXA_lE2zuQw.webp",
              "code": "BGPPXA",
              "name": "Marcelo Trylesinski",
              "slug": "marcelo-trylesinski",
              "website_url": "https://ep2026.europython.eu/speaker/marcelo-trylesinski"
            }
          ],
          "start": "2026-07-17T12:25:00+02:00",
          "title": "What I've Learned Maintaining the MCP Python SDK",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Lessons from maintaining the MCP Python SDK: tool boundaries, server architecture, testing strategies, and preparing for SDK v2",
          "website_url": "https://ep2026.europython.eu/session/what-i-ve-learned-maintaining-the-mcp-python-sdk"
        },
        {
          "code": "PWGSJQ",
          "duration": 30,
          "event_type": "session",
          "level": "advanced",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "speeding-up-python-with-free-threading-and-mypyc",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/K7R9XZ_aNH2jYr.webp",
              "code": "K7R9XZ",
              "name": "Jukka Lehtosalo",
              "slug": "jukka-lehtosalo",
              "website_url": "https://ep2026.europython.eu/speaker/jukka-lehtosalo"
            }
          ],
          "start": "2026-07-17T12:25:00+02:00",
          "title": "Speeding Up Python with Free Threading and Mypyc",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Learn how to make Python programs dramatically faster through Python 3.14\u2019s free threading and ahead-of-time compilation to C extensions with mypyc.",
          "website_url": "https://ep2026.europython.eu/session/speeding-up-python-with-free-threading-and-mypyc"
        },
        {
          "code": "SQRYJA",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "international-open-source-your-best-choice-in-interesting-times",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/XCKH3F_1s78HKZ.webp",
              "code": "XCKH3F",
              "name": "Deb Nicholson",
              "slug": "deb-nicholson",
              "website_url": "https://ep2026.europython.eu/speaker/deb-nicholson"
            }
          ],
          "start": "2026-07-17T12:25:00+02:00",
          "title": "International Open Source \u2013 Your Best Choice in Interesting Times",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "Learn about how community driven projects are looking at security and collaboration these days.",
          "website_url": "https://ep2026.europython.eu/session/international-open-source-your-best-choice-in-interesting-times"
        },
        {
          "duration": 60,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-17T12:55:00+02:00",
          "title": "Lunch"
        },
        {
          "code": "BX77EE",
          "duration": 60,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "reusable-tox-yml-five-patterns-to-eliminate-ci-cd-boilerplate",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/AWKFRJ_GocL4js.webp",
              "code": "AWKFRJ",
              "name": "Sviatoslav Sydorenko (\u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432 \u0421\u0438\u0434\u043e\u0440\u0435\u043d\u043a\u043e)",
              "slug": "sviatoslav-sydorenko-sviatoslav-sidorenko",
              "website_url": "https://ep2026.europython.eu/speaker/sviatoslav-sydorenko-sviatoslav-sidorenko"
            }
          ],
          "start": "2026-07-17T13:00:00+02:00",
          "title": "reusable-tox.yml: Five Patterns to Eliminate CI/CD Boilerplate",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Five patterns from reusable-tox.yml that eliminate CI/CD boilerplate \u2014 with Python analogies, before/after comparisons, and ready-to-fork templates.",
          "website_url": "https://ep2026.europython.eu/session/reusable-tox-yml-five-patterns-to-eliminate-ci-cd-boilerplate"
        },
        {
          "code": "GP39VP",
          "duration": 60,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "why-coding-agents-fail-at-ml-and-how-to-fix-it",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/3QCPHT_Hp2p2jD.webp",
              "code": "3QCPHT",
              "name": "Olha Poliuliakh",
              "slug": "olha-poliuliakh",
              "website_url": "https://ep2026.europython.eu/speaker/olha-poliuliakh"
            }
          ],
          "start": "2026-07-17T13:00:00+02:00",
          "title": "Why Coding Agents Fail at ML (and How to Fix It)",
          "track": "Machine Learning, NLP and CV",
          "tweet": "Coding agents can write code fast, but they break down in ML workflows. This poster shows why that happens and how to fix it with better structure.",
          "website_url": "https://ep2026.europython.eu/session/why-coding-agents-fail-at-ml-and-how-to-fix-it"
        },
        {
          "code": "U7AHP3",
          "duration": 60,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Exhibit Hall"
          ],
          "session_type": "Poster",
          "slug": "pypartmc-a-pythonic-interface-enhancing-fortran-based-simulation-package",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/ZMNF9N_PN17ecg.webp",
              "code": "ZMNF9N",
              "name": "Gracjan Adamus",
              "slug": "gracjan-adamus",
              "website_url": "https://ep2026.europython.eu/speaker/gracjan-adamus"
            }
          ],
          "start": "2026-07-17T13:00:00+02:00",
          "title": "PyPartMC: A Pythonic interface enhancing Fortran-based simulation package",
          "track": "Jupyter and Scientific Python",
          "tweet": "PyPartMC is a Python interface to Fortran-based PartMC. In this poster, you will see an example of a portable, cross-platform, pip-installable package",
          "website_url": "https://ep2026.europython.eu/session/pypartmc-a-pythonic-interface-enhancing-fortran-based-simulation-package"
        },
        {
          "code": "7NWR9R",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Sponsored",
          "slug": "when-python-agents-meet-3d-automating-blender-from-natural-language",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/BJPMW7_CFxBtOy.webp",
              "code": "GYZDCU",
              "name": "David Rousset",
              "slug": "david-rousset",
              "website_url": "https://ep2026.europython.eu/speaker/david-rousset"
            }
          ],
          "start": "2026-07-17T13:55:00+02:00",
          "title": "When Python Agents Meet 3D: Automating Blender from Natural Language",
          "track": "Python for Games, Art, Play and Expression",
          "tweet": "Design 3D worlds with Python, Blender, and AI agents\u2014while keeping humans in control from prompt to final render.",
          "website_url": "https://ep2026.europython.eu/session/when-python-agents-meet-3d-automating-blender-from-natural-language"
        },
        {
          "code": "PBTPJR",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "how-to-tackle-complex-authorization-logic-and-don-t-go-crazy",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/GYPYPG_XLd2F9i.webp",
              "code": "GYPYPG",
              "name": "Maria Lowas-Rzechonek",
              "slug": "maria-lowas-rzechonek",
              "website_url": "https://ep2026.europython.eu/speaker/maria-lowas-rzechonek"
            }
          ],
          "start": "2026-07-17T13:55:00+02:00",
          "title": "How to tackle complex authorization logic (and don't go crazy)",
          "track": "Web Development, Web APIs, Front-End Integration",
          "tweet": "How to handle complex auth logic? How policy-based authorization (ABAC) can help you build a custom solution for Django and FastAPI. #EuroPython2026",
          "website_url": "https://ep2026.europython.eu/session/how-to-tackle-complex-authorization-logic-and-don-t-go-crazy"
        },
        {
          "code": "RGBSS8",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "lazy-imports-and-the-art-of-interpreter-procrastination",
          "speakers": [
            {
              "avatar": null,
              "code": "VX8MVF",
              "name": "Pablo Galindo Salgado",
              "slug": "pablo-galindo-salgado",
              "website_url": "https://ep2026.europython.eu/speaker/pablo-galindo-salgado"
            }
          ],
          "start": "2026-07-17T13:55:00+02:00",
          "title": "Lazy imports and the art of interpreter procrastination",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Python 3.15 introduces explicit lazy imports via PEP 810. Learn why it matters, how it works under the hood, and how to use it to boost performance.",
          "website_url": "https://ep2026.europython.eu/session/lazy-imports-and-the-art-of-interpreter-procrastination"
        },
        {
          "code": "UGLF7Q",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "everything-you-always-wanted-to-know-about-pandas",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/3DAXVG_U2inmlK.webp",
              "code": "3DAXVG",
              "name": "Francesco Lucantoni",
              "slug": "francesco-lucantoni",
              "website_url": "https://ep2026.europython.eu/speaker/francesco-lucantoni"
            }
          ],
          "start": "2026-07-17T13:55:00+02:00",
          "title": "Everything you always wanted to know about pandas*",
          "track": "Data Engineering and MLOps",
          "tweet": "SettingWithCopyWarning, inplace=True, .copy(), .apply(), NaNs.. you use pandas every day, but do you really know how it works? It's time to find out!",
          "website_url": "https://ep2026.europython.eu/session/everything-you-always-wanted-to-know-about-pandas"
        },
        {
          "code": "VSZSMW",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "i-accidentally-built-a-monitoring-system-while-trying-to-debug-memory-leak",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/CCE8LJ_E9XgTzX.webp",
              "code": "CCE8LJ",
              "name": "Goutam Tiwari",
              "slug": "goutam-tiwari",
              "website_url": "https://ep2026.europython.eu/speaker/goutam-tiwari"
            },
            {
              "avatar": null,
              "code": "RKEBRW",
              "name": "Mohit Kumar Vyas",
              "slug": "mohit-kumar-vyas",
              "website_url": "https://ep2026.europython.eu/speaker/mohit-kumar-vyas"
            }
          ],
          "start": "2026-07-17T13:55:00+02:00",
          "title": "I Accidentally Built a Monitoring System While Trying to Debug Memory Leak",
          "track": "DevOps, Cloud, Scalable Infrastructure",
          "tweet": "I\u2019ll share how I chased a stubborn memory leak in our Flask API and built simple Python scripts that turned into our most useful debugging tool.",
          "website_url": "https://ep2026.europython.eu/session/i-accidentally-built-a-monitoring-system-while-trying-to-debug-memory-leak"
        },
        {
          "code": "NTZ7DG",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "from-ticket-taker-to-problem-solver-discovery-for-senior-thinking",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/ALN8NK_R12jIxa.webp",
              "code": "ALN8NK",
              "name": "Damian Wysocki",
              "slug": "damian-wysocki",
              "website_url": "https://ep2026.europython.eu/speaker/damian-wysocki"
            }
          ],
          "start": "2026-07-17T14:35:00+02:00",
          "title": "From Ticket Taker to Problem Solver: Discovery for Senior Thinking",
          "track": "Professional Development, Careers, Leadership",
          "tweet": "Discovery workshops turn developers from ticket takers into problem solvers. Learn why knowing the WHY makes you code smarter and grow faster.",
          "website_url": "https://ep2026.europython.eu/session/from-ticket-taker-to-problem-solver-discovery-for-senior-thinking"
        },
        {
          "code": "QY7PFR",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "conquer-multithreaded-python-with-blanket",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/9DMGRT_qv4pVKf.webp",
              "code": "9DMGRT",
              "name": "Larry Hastings",
              "slug": "larry-hastings",
              "website_url": "https://ep2026.europython.eu/speaker/larry-hastings"
            }
          ],
          "start": "2026-07-17T14:35:00+02:00",
          "title": "Conquer multithreaded Python with Blanket",
          "track": "Python Core, Internals, Extensions",
          "tweet": "Debugging and testing multithreaded code in Python is so challenging.  Come learn how Blanket can make it deterministic and controllable!",
          "website_url": "https://ep2026.europython.eu/session/conquer-multithreaded-python-with-blanket"
        },
        {
          "code": "T7ATVM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "how-python-is-democratising-agritech-for-farmers-across-europe",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/JDHQMZ_ivSUdTr.webp",
              "code": "JDHQMZ",
              "name": "Felipe Arruda Pontes",
              "slug": "felipe-arruda-pontes",
              "website_url": "https://ep2026.europython.eu/speaker/felipe-arruda-pontes"
            }
          ],
          "start": "2026-07-17T14:35:00+02:00",
          "title": "How Python is Democratising Agritech for Farmers Across Europe",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "How Python is democratising agritech across Europe: See how  OpenAgri's tools are helping farmers and what breaks when your datacentre is a barn.",
          "website_url": "https://ep2026.europython.eu/session/how-python-is-democratising-agritech-for-farmers-across-europe"
        },
        {
          "code": "WHHAQK",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Chamber Hall B (S3B)"
          ],
          "session_type": "Talk",
          "slug": "from-code-hero-to-team-leader-learning-to-let-go",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/VLWVB9_jStzz9H.webp",
              "code": "VLWVB9",
              "name": "Manivannan Selvaraj",
              "slug": "manivannan-selvaraj",
              "website_url": "https://ep2026.europython.eu/speaker/manivannan-selvaraj"
            }
          ],
          "start": "2026-07-17T14:35:00+02:00",
          "title": "From Code Hero to Team Leader: Learning to Let Go",
          "track": "Professional Development, Careers, Leadership",
          "tweet": "From Saving the Day to Building the Team. How to move from hero mode to team growth.",
          "website_url": "https://ep2026.europython.eu/session/from-code-hero-to-team-leader-learning-to-let-go"
        },
        {
          "code": "ZFJEUJ",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "stop-guessing-start-understanding-how-arrow-and-pandas-exchange-data",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/EMFTT7_E21iLrb.webp",
              "code": "EMFTT7",
              "name": "Ra\u00fal Cumplido Dom\u00ednguez",
              "slug": "raul-cumplido-dominguez",
              "website_url": "https://ep2026.europython.eu/speaker/raul-cumplido-dominguez"
            },
            {
              "avatar": "https://programme.europython.eu/media/avatars/ZDP7FM_yuL4Plv.webp",
              "code": "ZDP7FM",
              "name": "Alenka Frim",
              "slug": "alenka-frim",
              "website_url": "https://ep2026.europython.eu/speaker/alenka-frim"
            }
          ],
          "start": "2026-07-17T14:35:00+02:00",
          "title": "Stop Guessing, Start Understanding: How Arrow and Pandas Exchange Data",
          "track": "Data Engineering and MLOps",
          "tweet": "Ever wondered what happens when your data moves between Arrow and Pandas? We dug into the code so you don't have to.",
          "website_url": "https://ep2026.europython.eu/session/stop-guessing-start-understanding-how-arrow-and-pandas-exchange-data"
        },
        {
          "duration": 25,
          "event_type": "break",
          "rooms": [
            "Auditorium Hall (S1)",
            "Chamber Hall A (S3A)",
            "Chamber Hall B (S3B)",
            "Conference Hall Complex (S4)",
            "Theatre Hall (S2)"
          ],
          "start": "2026-07-17T15:05:00+02:00",
          "title": "Coffee Break"
        },
        {
          "code": "BPJHWT",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Theatre Hall (S2)"
          ],
          "session_type": "Talk",
          "slug": "you-don-t-need-to-solve-it-what-actually-gets-you-hired-in-tech",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/WH7AWZ_oNLmmKw.webp",
              "code": "WH7AWZ",
              "name": "Wojtek Erbetowski",
              "slug": "wojtek-erbetowski",
              "website_url": "https://ep2026.europython.eu/speaker/wojtek-erbetowski"
            }
          ],
          "start": "2026-07-17T15:30:00+02:00",
          "title": "You Don't Need to Solve It: What Actually Gets You Hired in Tech",
          "track": "Professional Development, Careers, Leadership",
          "tweet": "Think solving the problem gets you hired? Think again. Learn what technical interviews actually test.",
          "website_url": "https://ep2026.europython.eu/session/you-don-t-need-to-solve-it-what-actually-gets-you-hired-in-tech"
        },
        {
          "code": "LRVCYU",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Conference Hall Complex (S4)"
          ],
          "session_type": "Talk",
          "slug": "modern-tui-with-textual-in-python-building-monokl",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/VKW7DJ_f6ZH6iN.webp",
              "code": "VKW7DJ",
              "name": "Piotr Gr\u0119dowski",
              "slug": "piotr-gredowski",
              "website_url": "https://ep2026.europython.eu/speaker/piotr-gredowski"
            }
          ],
          "start": "2026-07-17T15:30:00+02:00",
          "title": "Modern TUI with Textual in Python: Building Monokl",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Learn how to build a modern, high-performance TUI with Textual by following the journey of Monokl, a terminal aggregator for GitHub, Jira, and more.",
          "website_url": "https://ep2026.europython.eu/session/modern-tui-with-textual-in-python-building-monokl"
        },
        {
          "code": "MP9ZRM",
          "duration": 30,
          "event_type": "session",
          "level": "intermediate",
          "rooms": [
            "Chamber Hall A (S3A)"
          ],
          "session_type": "Talk",
          "slug": "supporting-android-and-ios-in-your-python-package",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/M9YVF3_vCjEaob.webp",
              "code": "M9YVF3",
              "name": "Malcolm Smith",
              "slug": "malcolm-smith",
              "website_url": "https://ep2026.europython.eu/speaker/malcolm-smith"
            }
          ],
          "start": "2026-07-17T15:30:00+02:00",
          "title": "Supporting Android and iOS in your Python package",
          "track": "Tooling, Packaging, Developer Productivity",
          "tweet": "Android and iOS are now fully supported by Python. Come to this talk to learn how to build, test and distribute your package for these platforms.",
          "website_url": "https://ep2026.europython.eu/session/supporting-android-and-ios-in-your-python-package"
        },
        {
          "code": "ZHCNDY",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Talk",
          "slug": "defending-open-source-from-ai-slop-a-maintainer-s-practical-guide",
          "speakers": [
            {
              "avatar": "https://programme.europython.eu/media/avatars/AWKFRJ_GocL4js.webp",
              "code": "AWKFRJ",
              "name": "Sviatoslav Sydorenko (\u0421\u0432\u044f\u0442\u043e\u0441\u043b\u0430\u0432 \u0421\u0438\u0434\u043e\u0440\u0435\u043d\u043a\u043e)",
              "slug": "sviatoslav-sydorenko-sviatoslav-sidorenko",
              "website_url": "https://ep2026.europython.eu/speaker/sviatoslav-sydorenko-sviatoslav-sidorenko"
            }
          ],
          "start": "2026-07-17T15:30:00+02:00",
          "title": "Defending Open Source from \"AI\" Slop: A Maintainer's Practical Guide",
          "track": "Ethics, Social Responsibility, Sustainability, Legal",
          "tweet": "\"AI\"-generated PRs are flooding open source. A practical framework for defending your projects \u2014 with policy templates you can adopt today.",
          "website_url": "https://ep2026.europython.eu/session/defending-open-source-from-ai-slop-a-maintainer-s-practical-guide"
        },
        {
          "code": "8XMJGZ",
          "duration": 45,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Keynote",
          "slug": "keynote-6-placeholder",
          "speakers": [],
          "start": "2026-07-17T16:10:00+02:00",
          "title": "Keynote 6 - Placeholder",
          "track": null,
          "tweet": "\"TBD: Keynote Speaker\" Details coming soon. This prime session will feature an inspiring keynote address to set the tone for the entire event.",
          "website_url": "https://ep2026.europython.eu/session/keynote-6-placeholder"
        },
        {
          "code": "YUECR3",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "lightning-talks-friday",
          "speakers": [],
          "start": "2026-07-17T16:55:00+02:00",
          "title": "Lightning talks \u26a1 Friday",
          "track": null,
          "tweet": "Enjoy Friday's lightning talks! Short talks about everything by everyone.   Lightning talks are 5 minute talks that anyone participating at the confer",
          "website_url": "https://ep2026.europython.eu/session/lightning-talks-friday"
        },
        {
          "code": "UALU9S",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "conference-closing",
          "speakers": [],
          "start": "2026-07-17T17:25:00+02:00",
          "title": "Conference Closing \ud83d\udc0d",
          "track": null,
          "tweet": "We had two tutorials days and three talks days filled with amazing topics, but more important, amazing people!",
          "website_url": "https://ep2026.europython.eu/session/conference-closing"
        },
        {
          "code": "3QHVK3",
          "duration": 30,
          "event_type": "session",
          "level": "beginner",
          "rooms": [
            "Auditorium Hall (S1)"
          ],
          "session_type": "Announcements",
          "slug": "sprint-orientation",
          "speakers": [],
          "start": "2026-07-17T17:55:00+02:00",
          "title": "Sprint Orientation \ud83c\udfc3",
          "track": null,
          "tweet": "Do you know what is a sprint?  The sprints are activities that will happen during the weekend on a different location. Do you know if you can join?",
          "website_url": "https://ep2026.europython.eu/session/sprint-orientation"
        }
      ],
      "rooms": [
        "Auditorium Hall (S1)",
        "Chamber Hall A (S3A)",
        "Chamber Hall B (S3B)",
        "Conference Hall Complex (S4)",
        "Exhibit Hall",
        "Theatre Hall (S2)"
      ]
    }
  }
}