{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.3.0.dev0", "url": "https://pretalx.com"}, "schedule": {"url": "https://pretalx.com/pyconhk2025/schedule/", "version": "0.15", "base_url": "https://pretalx.com", "conference": {"acronym": "pyconhk2025", "title": "PyCon Hong Kong 2025", "start": "2025-10-11", "end": "2025-10-12", "daysCount": 2, "timeslot_duration": "00:05", "time_zone_name": "Hongkong", "colors": {"primary": "#00ccff"}, "rooms": [{"name": "Main Track (Morning) (LT-18)", "slug": "4891-main-track-morning-lt-18", "guid": "8ebbf95d-e73c-5858-97a9-b4b2f42fed9c", "description": null, "capacity": 200}, {"name": "Main Track (Afternoon) (LT-13)", "slug": "4652-main-track-afternoon-lt-13", "guid": "2b5c1c5d-0225-5ce5-9f24-066ae31ee2e0", "description": null, "capacity": 144}, {"name": "Track A (Sessions) (LT-15)", "slug": "4836-track-a-sessions-lt-15", "guid": "c70daeda-3fd4-592b-a462-580f0e054f80", "description": null, "capacity": 120}, {"name": "Track A (Workshop) (LT-15)", "slug": "4653-track-a-workshop-lt-15", "guid": "ba2c6b30-dfdb-5cb2-bfb0-0e758b3c8b96", "description": null, "capacity": 120}, {"name": "Track B (LT-14)", "slug": "4654-track-b-lt-14", "guid": "f189e1ae-3004-5b65-aec9-012cd4ce31dd", "description": null, "capacity": 140}, {"name": "Track C (LT-16)", "slug": "4655-track-c-lt-16", "guid": "dcf3e4c4-84bc-58e8-a11a-c5bb9320e726", "description": null, "capacity": 120}], "tracks": [{"name": "DevOps", "slug": "5793-devops", "color": "#F865DB"}, {"name": "Libraries / Tools", "slug": "5794-libraries-tools", "color": "#3CA7F4"}, {"name": "Lightning \u26a1", "slug": "5795-lightning", "color": "#d09800"}, {"name": "LLM", "slug": "5796-llm", "color": "#C13DFE"}, {"name": "Performance", "slug": "5797-performance", "color": "#3BB06A"}, {"name": "Perspectives", "slug": "5798-perspectives", "color": "#FF4500"}, {"name": "Workshop", "slug": "5992-workshop", "color": "#141414"}], "days": [{"index": 1, "date": "2025-10-11", "day_start": "2025-10-11T04:00:00+08:00", "day_end": "2025-10-12T03:59:00+08:00", "rooms": {"Main Track (Morning) (LT-18)": [{"guid": "2b0a433f-fde3-5669-a114-5cb2e69f8ae9", "code": "A9ZA7U", "id": 73949, "logo": null, "date": "2025-10-11T10:25:00+08:00", "start": "10:25", "end": "2025-10-11T10:55:00+08:00", "duration": "00:30", "room": "Main Track (Morning) (LT-18)", "slug": "pyconhk2025-73949-pip-install-community", "url": "https://pretalx.com/pyconhk2025/talk/A9ZA7U/", "title": "pip install community", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We learn Python through tutorials, bootcamps, or classes. Syntax here, libraries there. Maybe a few YouTube deep dives and some late-night Stack Overflow scrolling. The resources are endless.\nBut here\u2019s what many miss: Python isn\u2019t just a language. It\u2019s a living, breathing community. And knowing that changes everything.\nIn this talk, we\u2019ll look at the part of Python that doesn\u2019t come in a package: its people. You\u2019ll learn what the Python Software Foundation actually does (besides existing), how decisions about the language are made, and why even local meetups in Hong Kong are part of something much bigger.\nWhether you\u2019re new to Python, teaching it, or wondering what keeps this language thriving across the world\u2014this talk will give you new ways to connect, contribute, and grow.\nBecause \u201cCome for the language, stay for the community\u201d isn\u2019t just a feel-good line. It\u2019s Python\u2019s secret sauce. And once you taste it, it\u2019s better than Lee Kum Kee.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "7GSH3P", "name": "Georgi Ker", "avatar": "https://pretalx.com/media/avatars/7GSH3P_n0PKJhk.webp", "biography": "Georgi Ker is the Director and a Fellow of the Python Software Foundation. She is a co-organizer of PyLadiesCon and the co-founder of PyLadies Bangkok. A French citizen born and raised in Singapore, Georgi has also lived in Thailand and Indonesia before relocating to Amsterdam, the Netherlands. During her time in Thailand, she served as the conference lead for PyCon APAC and PyCon Thailand.\n\nGeorgi is an avid advocate for Diversity & Inclusion. She is the chair of the D&I Workgroup within the PSF and has launched the podcast series \"The Hidden Figures of Python\" alongside hosts Mariatta Wijaya, Cheuk Ting Ho, and Tereza Iofciu. The podcast aims to highlight stories from underrepresented groups within the Python community.\n\nAn autodidact polymath who speaks multiple languages, Georgi currently runs her own branding and visual studio. Some of the projects include TV series Strange Girl in Strange Land, PyCon US (2022-current), Proof of Talk and PyData London.", "public_name": "Georgi Ker", "guid": "b7c032d6-c0f8-5646-b02e-6da4c4b515b2", "url": "https://pretalx.com/pyconhk2025/speaker/7GSH3P/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/A9ZA7U/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/A9ZA7U/", "attachments": []}, {"guid": "b862da0b-2973-56be-8e58-d536682c77ef", "code": "97ULTT", "id": 72942, "logo": null, "date": "2025-10-11T10:55:00+08:00", "start": "10:55", "end": "2025-10-11T11:25:00+08:00", "duration": "00:30", "room": "Main Track (Morning) (LT-18)", "slug": "pyconhk2025-72942-building-agentic-ai-on-aws-from-concept-to-python-implementation", "url": "https://pretalx.com/pyconhk2025/talk/97ULTT/", "title": "Building Agentic AI on AWS: From Concept to Python Implementation", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This presentation explores the rapidly evolving field of Agentic AI that is gaining significant industry attention, with a focus on practical Python-based implementations. \n\nThe first section introduces the fundamental concepts and technical architecture of Agentic AI, Agentic IDE (Kiro), AgentCore, and MCP. \n\nThe second section demonstrates concrete applications of Agentic AI on AWS built with Python, featuring a conversational weather agent implemented using Nova Act and Python libraries, alongside analyses of agent-based solutions for e-commerce and hotel reservation systems. \n\nThe third section provides practical guidance on developing enterprise-grade Agentic AI applications using the open-source Strands Agents SDK with Python. \n\nThis presentation aims to inspire innovative approaches among Python developers and foster collaborative exploration of the expanding potential in Python-based Agentic AI application development.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "TDGWZV", "name": "Haowen Huang", "avatar": "https://pretalx.com/media/avatars/TDGWZV_DF9tvqv.webp", "biography": "Haowen Huang brings over 20 years of extensive experience across telecommunications, internet, and cloud computing industries, having held positions at Microsoft, Sun Microsystems, and China Telecom. Currently specializing in technical content creation and knowledge sharing in generative AI, large language models (LLMs), Agentic AI, and Next-Generation Developer Experience (NGDE), he is committed to empowering developers worldwide with cutting-edge AI expertise.", "public_name": "Haowen Huang", "guid": "ff3966de-a3cb-5bb6-872a-ade70c0bf8d9", "url": "https://pretalx.com/pyconhk2025/speaker/TDGWZV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/97ULTT/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/97ULTT/", "attachments": []}, {"guid": "b222c1cd-e381-58cd-805b-17de86afa9eb", "code": "VU7KCM", "id": 73111, "logo": null, "date": "2025-10-11T11:30:00+08:00", "start": "11:30", "end": "2025-10-11T12:00:00+08:00", "duration": "00:30", "room": "Main Track (Morning) (LT-18)", "slug": "pyconhk2025-73111-what-s-new-in-pandas-3-0", "url": "https://pretalx.com/pyconhk2025/talk/VU7KCM/", "title": "What's new in pandas 3.0", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "pandas 3.0 is going to be released in the next months. While pandas hasn't changed much since it became popular many years ago, pandas 3 does bring some interesting new features that will make working with data easier, faster and more powerful. In this talk I will explain what's new in pandas 3.0.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "SXWKLX", "name": "Marc Garcia", "avatar": "https://pretalx.com/media/avatars/SXWKLX_IbqSgiE.webp", "biography": "Marc has been a pandas core developer since 2018. He was the release manager of pandas 2.0. He was awarded the Python Software Foundation fellow award, and the NumFOCUS community award for his work mentoring people to contribute to open source. Marc has worked professionally for companies like Bank of America, Unilever, Tesco ans Bumble. Currently Marc works as an independent consultant and technical trainer helping companies work more efficiently with data.", "public_name": "Marc Garcia", "guid": "11f6398c-e732-5df4-b54c-9e44f270823f", "url": "https://pretalx.com/pyconhk2025/speaker/SXWKLX/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/VU7KCM/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/VU7KCM/", "attachments": []}, {"guid": "40e4653d-ccba-5b6e-85f4-f7d483ccd594", "code": "X3JHUT", "id": 82355, "logo": null, "date": "2025-10-11T12:10:00+08:00", "start": "12:10", "end": "2025-10-11T12:40:00+08:00", "duration": "00:30", "room": "Main Track (Morning) (LT-18)", "slug": "pyconhk2025-82355-building-consistent-secure-container-environments", "url": "https://pretalx.com/pyconhk2025/talk/X3JHUT/", "title": "Building Consistent & Secure Container Environments", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "*\"It works on my machine\"* is the developer equivalent of *\"the dog ate my homework\"*\u2014and we've all been there.\n\nPicture this: Your dev environment is a beautiful snowflake. So is your teammate's. And production? That's a whole different animal. Now imagine if they were all... the same. Not just similar. Actually identical.\n\nBut here's the kicker: what if that identical environment was also actually secure? Not \"we ran a scanner once\" secure, but \"built from the ground up with security baked in\" secure. Zero known vulnerabilities instead of the usual 200+, complete software bill of materials included.\n\nThis talk is about ditching the chaos and building environments that are consistent, secure by default, and work the same whether you're coding at 2am or deploying to production.\n\nWe'll explore Dev Containers and Wolfi\u2014practical patterns that'll make your life easier, your deployments more reliable, and your security team actually happy for once.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "SJAKZB", "name": "Jack Chen", "avatar": "https://pretalx.com/media/avatars/SJAKZB_TDe3n91.webp", "biography": "After more than a decade building software everywhere from chaotic startups to buttoned-up financial institutions, Jack now leads tech at LGT. He has been sharing war stories at Ruby conferences for years and is excited to bring that same energy to the Python world. You might also know him as the host of Codeaholics, where people geek out about all things tech. Passionate about developer experience, security, and environments that actually work.", "public_name": "Jack Chen", "guid": "27ae1614-86bc-5ad5-a28d-b4ffb857d8d0", "url": "https://pretalx.com/pyconhk2025/speaker/SJAKZB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/X3JHUT/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/X3JHUT/", "attachments": []}], "Main Track (Afternoon) (LT-13)": [{"guid": "642643a0-776b-538a-b5a1-581a21fbacfc", "code": "XS9DDR", "id": 71697, "logo": "https://pretalx.com/media/pyconhk2025/submissions/XS9DDR/Kubernetes_Isekai_archit_VQZg1Bk.jpg", "date": "2025-10-11T14:00:00+08:00", "start": "14:00", "end": "2025-10-11T14:30:00+08:00", "duration": "00:30", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-71697-kubernetes-isekai--gamifying-kubernetes-education-in-free-aws-academy-learner-lab", "url": "https://pretalx.com/pyconhk2025/talk/XS9DDR/", "title": "Kubernetes Isekai (\u7570\u4e16\u754c): Gamifying Kubernetes Education in Free AWS Academy Learner Lab", "subtitle": "", "track": null, "type": "Talk", "language": "zh-hant", "abstract": "# Kubernetes Isekai (\u7570\u4e16\u754c)\n\n**Kubernetes Isekai** is a Python open-source RPG that turns learning Kubernetes into an epic adventure! Tailored for students, it offers:\n- \ud83c\udfae **Interactive gameplay** with hands-on Kubernetes tasks\u00a0 \n- \ud83e\udde0 **Dynamic NPC interactions** that guide and challenge you\u00a0 \n- \ud83d\udcbb **Practical experience** in a fun, gamified environment\u00a0 \n- \u2601\ufe0f **Cost-effective deployment** using AWS Academy Learner Lab or free GitHub Codespace\u00a0 \nStep into a fantastical world where mastering Kubernetes is part of the quest. Learn by doing, explore by playing, and level up your cloud-native skills!", "description": "# Kubernetes Isekai (\u7570\u4e16\u754c)\n\n**Kubernetes Isekai** is an open-source Python RPG designed to make learning Kubernetes fun and interactive through gamification. Tailored for junior to [Higher Diploma in Cloud and Data Centre Administration](https://www.vtc.edu.hk/admission/en/programme/it114115-higher-diploma-in-cloud-and-data-centre-administration/) students at the [**Hong Kong Institute of Information Technology (HKIIT)**](https://hkiit.edu.hk/), it transforms technical education into an engaging adventure.\n\n## \ud83c\udfae Key Features\n\n1. **Role-Playing Adventure**  \n   Students take on quests from NPCs who assign real Kubernetes tasks.\n\n2. **Task-Based Learning**  \n   Learn by doing\u2014set up and manage Kubernetes clusters in a guided, hands-on environment.\n\n3. **Free Access**  \n   Runs on the cost-effective **AWS Academy Learner Lab** or **GitHub Codespace** using **Minikube** or **Kubernetes**.\n\n4. **Scalable Grading**  \n   Kubernetes setups are automatically tested using an **AWS SAM** application within **AWS Lambda**.\n\n5. **Progress Tracking & Rewards**  \n   Students can track their progress, earn rewards, and level up their skills.\n\n6. **GenAI-Powered NPCs**\n   Integrates **Generative AI** to make NPC interactions more dynamic and engaging, enhancing the overall learning experience.\n\n---\n\nThis game-based platform offers a **practical, cost-effective**, and **fun** way to gain real-world Kubernetes experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KMA9WU", "name": "Cyrus Wong", "avatar": "https://pretalx.com/media/avatars/KMA9WU_HDxnq4h.webp", "biography": "## Cyrus Wong\n\n**Cyrus Wong** is a Senior Lecturer at the **Hong Kong Institute of Information Technology (HKIIT)** under the **Vocational Training Council (VTC)**. He leads the **Higher Diploma in Cloud and Data Centre Administration**, the first tertiary-level program in Asia dedicated to cloud technology education.\n\nCyrus is a highly respected figure in the tech community, recognized as an **AWS Machine Learning Hero**, **Microsoft Azure AI MVP**, and **Google Developer Expert in GCP & AI/ML (GenAI)**. \n\nHis work focuses on integrating cloud technologies into education, and he has received multiple **Hong Kong ICT Awards** for innovative projects using AWS services. One of his notable contributions is **\u201cAll Screens,\u201d** an open-source platform that supported online teaching during the COVID-19 pandemic.\n\nCyrus is also a passionate community advocate and content creator. He shares insights through his LinkedIn blog, GitHub projects, and his YouTube channel, which helps make cloud knowledge accessible to Cantonese-speaking audiences.", "public_name": "Cyrus Wong", "guid": "2980312c-d7d3-5cc1-b08b-474949baaa1a", "url": "https://pretalx.com/pyconhk2025/speaker/KMA9WU/"}, {"code": "8CW3ZD", "name": "Kathy Wu", "avatar": "https://pretalx.com/media/avatars/8CW3ZD_w2glt5j.webp", "biography": "https://www.linkedin.com/in/kathy-w-u/\n- AWS Cloud Captain\n- AWS Educate Student Ambassador at HKIIT\n- Year 2 student of Higher Diploma in Cloud and Data Centre Administration at HKIIT", "public_name": "Kathy Wu", "guid": "0088e30b-ad3a-5b2e-9ebb-fc6749e035aa", "url": "https://pretalx.com/pyconhk2025/speaker/8CW3ZD/"}, {"code": "M7RRDB", "name": "Camila leung", "avatar": "https://pretalx.com/media/avatars/M7RRDB_OYbrzUO.webp", "biography": "Camila Leung\nhttps://www.linkedin.com/in/hau-yee-leung-bb792b32b/\n- AWS Educate Student Ambassador at HKIIT\n- Year 2 student of Higher Diploma in Cloud and Data Centre Administration at HKIIT", "public_name": "Camila leung", "guid": "8e3fa720-a286-5714-957a-352456f5e5dc", "url": "https://pretalx.com/pyconhk2025/speaker/M7RRDB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/XS9DDR/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/XS9DDR/", "attachments": []}, {"guid": "2e9d23ad-28c6-5f26-bae5-33612f0ad88d", "code": "LY893F", "id": 73432, "logo": "https://pretalx.com/media/pyconhk2025/submissions/LY893F/iplist_to_bpfrule_NgwV8LN.png", "date": "2025-10-11T14:40:00+08:00", "start": "14:40", "end": "2025-10-11T15:10:00+08:00", "duration": "00:30", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-73432-iplist-to-bpfrule-a-python-ddos-mitigation-framework-for-domain-level-attacks-via-xdphook-of-bpfilter", "url": "https://pretalx.com/pyconhk2025/talk/LY893F/", "title": "IPList to BPFRule: A Python DDoS Mitigation Framework for Domain-Level Attacks via XDP_HOOK of bpfilter", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This paper presents a domain-specific DDoS mitigation approach combining DNS redirection, reverse proxy WAF, and kernel-level filtering with eBPF XDP via bpfilter. Instead of using BGP Flowspec, attacker IPs are identified at the origin, uploaded to a central IP list, and dynamically applied as XDP_HOOK rules using a Python-based service. This architecture enables efficient, low-resource blocking for phishing-injected gambling domains without requiring expensive infrastructure, making it ideal for organizations with limited network-layer control.", "description": "Introduction:\nIn recent years, Distributed Denial of Service (DDoS) attacks targeting previously compromised injected websites have become increasingly prevalent. This trend poses a significant threat to Indonesian web infrastructure, particularly domains under the .id top-level domain associated with governmental or institutional organizations. Unlike attacks that rely on specific Layer 7 pattern - such as SQL Injection or Cross-Site Scripting (XSS) - these DDoS attacks exploit volumetric or stateful protocol-layer weakness (e.g., OSI Layer 4 and Layer 7) without leaving standard application-layer signatures. Consequently, conventional Web Application Firewalls (WAFs) often fail to detect or mitigate the threat effectively, and attempting to do so can result in excessive resource consumption on the WAF itself. Mitigating such attacks typically requires volume-based or stateful traffic analysis tools capable of distinguishing between legitimate requests and malicious traffic patterns. While low-volume Layer 7 DDoS attacks may still be managed at the origin server level, doing so risks overwhelming the server\u2019s firewall and web server stack - particularly when filtering rules impose high latency loading time then require the web server to have health checks that resulted in reload or restart. If the health check of the web server causes too many restarts it could have a bad effect on the site.\nAnother commonly used defense mechanism is BGP Flowspec, which enables volume-based traffic analysis and filtering at the network level [1]. While effective against high-bandwidth volumetric attacks, this method has limitations - it cannot mitigate stateful DDoS attacks that exploit the stateful connection layer 4 request. In such cases, traffic must be redirected to scrubbing center, where more sophisticated inspection and mitigation are performed. To execute filtering at these centers, one of the most advanced and increasingly adopted technologies is eBPF XDP (eXpress Data Path). XDP enables high-performance packet processing in the Linux kernel, allowing packets to be intercepted at the NIC driver level, thus avoiding unnecessary transitions to user space for blocking. This results in faster, more efficient mitigation [2].\nXDP works by attaching hooks at low level in the network kernel stack, enabling the implementation of custom filtering logic using eBPF. However, most BGP Flowspec and XDP integrations are designed to protect specific IP addresses, not domain names. This approach is therefore unsuitable for organizations that do not own BGP Flowspec-enabled routers or need filtering on domain names. Furthermore, deploying this infrastructure solely to block domain-based attacks may lead to unnecessary overhead and resource use.\nInstead of relying on BGP Flowspec in combination with XDP, this paper proposes an alternative approach that integrates domain name resolution via DNS, reverse proxy-based WAF, and XDP filtering using the bpfilter tool. By leveraging DNS resolution, domain-specific DDoS attacks can be mitigated without the need of BGP-based redirection. In this model, DNS is used to reroute targeted domain traffic to a reverse proxy server that is integrated with bpfilter XDP rules for rarely-stage packet filtering.\nFurthermore, widely adopted reverse proxy WAF - such as Safeline or BunkerWeb - can be configured to route clean traffic to appropriate origin server after initial filtering. This layered approach not only enables domain-focused filtering at the kernel level, but also reduces the computational burden on the reverse proxy WAF by offloading early blocking to XDP. As a result, DDoS attacks against specific domains can be handled more efficiently with lower resource consumption, without requiring access to advanced routing infrastructure such as BGP Flowspec.  \nMethodology:\nTo effectively mitigate DDoS attacks on specific domains, a volume-based traffic analysis system-similar in function to BGP Flowspec-is required. However, instead of implementing full-scale, low-level volume analysis mechanism, this solution adopts a simplified version that minimizes complexity and avoids kernel-level development.\nBefore detailing the meethod, the following are the key components that make up the solution:\n- Volume-Based Analysis Tool at the origin server, which detects volumetric attacks and uploads attacker IPs to a centralized IP list (\u201cBucket IP List\u201d).\n- DNS A Record Redirection, pointing the targeted domain to a Reverse Proxy WAF (e.g. Safeline).\n- iplist_to_bpfrule Linux Service, which executes a Python script to pull thousands of attacker IPs from the central Bucket IP List\n- bpfilter XDP tool and service, responsible for enforcing the ruleset at the kernel level using XDP_HOOK\n- safeline WAF as it's reverse proxy WAF\nThe Volume Based Analysis Tool runs on the origin server and monitors resource-intensive, volumetric HTTP behavior. In its original implementation, it blocked detected attacker IPs directly using the server\u2019s firewall. However, as the volume of malicious IPs grew, this approach became problematic - it caused excessive rule loading and triggered frequent restarts due to health check failures.\nTo address this, this tool was redesigned to offload blocking to a reverse proxy layer. Once the attack threshold is surpassed, the origin no longer performs direct mitigation. Instead, it uploads the identified attacker IPs to cloud bucket (the \u201cIP List\u201d) and switches the targeted domain\u2019s DNS A record to point to pre-configured Reverse Proxy WAF server.\nThe reverse proxy server (e.g., Safeline) forwards clean traffic to the origin server, while the initial filtering of malicious requests is handled at the kernel level using bpfilter XDP ruleset. In front of the reverse proxy, the bpfilter tool combined with iplist_to_bpfrule service dynamically injects XDP_HOOK rulesets based on attacker lists fetched from the bucket. This functionality is driven by iplist_to_bpfrule service, a Python-based daemon that periodically pulls new IPs and applies them to the ruleset using bpfilter.\nThis architecture allows for efficient L3/L4 blocking, reduces the resource burden on the WAF, and eliminates the need for high-cost BGP or scrubbing center infrastructure, making it suitable for smaller-scale or budget-conscious environments.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MZT9A9", "name": "Nizar Akbar Meilani", "avatar": "https://pretalx.com/media/avatars/MZT9A9_qFRRikH.webp", "biography": "I am a two years experienced System Administrator, who work in an Indonesian Hosting Company, that passionate about Linux and scripting language like Bash and Python. I love in understanding the intricacies of Linux and it's isolation mechanism. And I am a new open source person who love to understand how open source community work.", "public_name": "Nizar Akbar Meilani", "guid": "aa084f88-a789-548f-9b63-7d365e0ce05b", "url": "https://pretalx.com/pyconhk2025/speaker/MZT9A9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/LY893F/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/LY893F/", "attachments": []}, {"guid": "522e24e3-251d-5af3-8d51-75f7b85904a8", "code": "ARQM7C", "id": 73704, "logo": null, "date": "2025-10-11T15:50:00+08:00", "start": "15:50", "end": "2025-10-11T16:20:00+08:00", "duration": "00:30", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-73704-pyproject-toml--requirements-txt", "url": "https://pretalx.com/pyconhk2025/talk/ARQM7C/", "title": "\u8acb\u64c1\u62b1 pyproject.toml\uff0c\u8ddf requirements.txt \u8aaa\u518d\u898b", "subtitle": "", "track": null, "type": "Talk", "language": "zh-hant", "abstract": "\u6bcf\u6b21\u55ba terminal \u8f38\u5165 `pip install -r requirements.txt`\uff0c\u6211\u90fd\u6709\u9810\u5497\u5931\u6557\u5605\u6e96\u5099\uff0c\u53ef\u80fd Python \u7248\u672c\u5514\u593e\uff0c\u53ef\u80fd\u5b89\u88dd\u6709\u5148\u5f8c\u6b21\u5e8f\uff0c\u53ef\u80fd\u6709\u4e00\u5169\u884c\u6709\u4eba\u4eba\u624b\u6539\u5b8c\u6839\u672c\u7121\u8a66\u904e\uff0c\u5be6\u5728\u6709\u592a\u591a\u592a\u591a\u53ef\u80fd\uff01\n\n\u5176\u5be6 Python Community \u65e9\u55ba\u5e7e\u5e74\u63d0\u51fa\u5605 PEP (Python Enhancement Proposals) 621 \u5df2\u7d93\u63d0\u51fa\u4e00\u500b\u5168\u65b0\u5605\u65b9\u6cd5\uff0c\u544a\u5225 requirements.txt\uff0c\u7528 pyproject.toml \u53d6\u4ee3\u904e\u5f80\u5605\u5730\u7344\uff0c\u800c\u4e14\u4ef2\u6709\u5514\u5c11\u5de5\u5177\u4f8b\u5982 poetry setuptools  \u7d1b\u7d1b\u63a1\u7d0d\uff01\n\n\u53ef\u80fd\u4f60\u5df2\u7d93\u7528\u7dca poetry\uff0c\u53ef\u80fd\u4f60\u5176\u5be6\u7528\u7dca poetry 1.x \u672a\u7528\u5230 PEP621 \u5605 pyproject.toml\uff0c\u53ef\u80fd\u4f60\u4ef2\u7528\u7dca requirements.txt\uff01\u5462\u500b Talk \u5e0c\u671b\u53ef\u4ee5\u7531\u6dfa\u5165\u6df1\uff0c\u5e36\u5927\u5bb6\u4e00\u6b65\u6b65\u4e86\u89e3\u73fe\u4ee3 Python \u6700 portable \u6700 robust \u5605 project metadata \u5beb\u6cd5\uff0c\u78ba\u4fdd\u5462\u5e7e\u5e74\u5beb\u51fa\u569f\u5605 python projects\uff0c\u4e0d\u8ad6\u4fc2\u8a8d\u771f\u88fd\u9020\u3001\u96a8\u5fc3\u73a9\u4e0b LLM\u3001\u751a\u81f3 vibe coding \u4e5f\u597d\uff0c\u904e\u591a\u4e00\u6392\u90fd\u5be6\u5be6\u6de8\u6de8\uff0c\u53ef\u4ee5\u7528\u5f97\u8fd4\uff01", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "KLTN39", "name": "Alex Lau", "avatar": "https://pretalx.com/media/avatars/KLTN39_0MGPuYS.webp", "biography": "Alex Lau is a Lead Instructor of Tecky Academy with a focus on Full Stack, Mobile App, and AWS technologies. He is now the AWS Hong Kong Community Hero and is the leader of AWS User Group Hong Kong. Enthusiastic about teaching and sharing, Alex has been an active leader in the Hong Kong developer community since 2015. He has organized annual hackathons and founded a coding bootcamp, growing the community to over 1,000 members.\n\nStarting from 2018, Alex has hosted a variety of AWS workshops, disseminating essential cloud skills and best practices. In 2023, he took the stage at the Hong Kong AWS Summit to introduce the AWS cutting edge technologies and also led a session during the Hong Kong AWS GenAI Solution Day.\n\nAlex is committed to promoting AWS services and aims to help more people engage with and understand the power of cloud technology. He is the Chief Assessor of ICT Award Student Innovation Award. Among his recognitions are the ICT Grand Award, HSBC Youth Business Award, and the Hong Kong Esperanza - Reimagine Education Award, making him a trusted authority on education, community building and cloud solutions.", "public_name": "Alex Lau", "guid": "0ec9761a-59b2-5e92-a93e-f1cadc995c87", "url": "https://pretalx.com/pyconhk2025/speaker/KLTN39/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/ARQM7C/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/ARQM7C/", "attachments": []}, {"guid": "7bc32c9c-ac49-5ae8-befe-64908fbd5158", "code": "BXPFES", "id": 74578, "logo": null, "date": "2025-10-11T16:30:00+08:00", "start": "16:30", "end": "2025-10-11T17:00:00+08:00", "duration": "00:30", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-74578-python-for-the-paranoid-how-to-secure-your-python-code", "url": "https://pretalx.com/pyconhk2025/talk/BXPFES/", "title": "Python for the Paranoid: how to secure your Python code", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Vibe coding is great when it works, but less so when it leads to security vulnerabilities. This beginner-friendly introduction will equip you with the knowledge to make your Python code more secure. We will explore common ways Python projects can become susceptible to issues\u2014from dependency risks to malicious data\u2014and provide practical, actionable recommendations on tools and strategies to safeguard your work. Leave feeling more confident and less paranoid about your code.", "description": "## Motivation \n\nAs a cybersecurity professional, I want to raise awareness of known Python security concerns in an easy-to-understand manner, especially for those who are new to the language. Intermediate-level learners are also welcome, if they wish to refresh their memory.\n\nEspecially in this era of \u201cvibe coding\u201d, I feel there is an overemphasis on \u201cwhat works\u201d, and a lack of consideration of \u201cwhat might go wrong\u201d. I hope this talk will inspire listeners to start coding with good cybersecurity hygiene. \n\n## Scope\n\nThis talk will cover security considerations unique to Python. This means that, instead of touching on general concepts like SQL injection or hardcoding secrets, I will focus on known security concerns and considerations in the Python ecosystem. \n\n## Talk outline\n\n### Breakdown of why your code might be unsafe (20min)\n1. Unsafe data (XML, zip, pickle)\n2. Unsafe algorithms (random, hashlib)\n3. Unsafe versions (using deprecated Python versions)\n4. Unsafe third-party packages (supply chain attack)\n\nIn this section, to demonstrate the relevance and danger of these cases, I will supply real-life examples and easy-to-understand sample code. I will also recommend safer equivalents where available.\n\n### Mitigation strategies (10min)\n\nI will recommend some tools to address these concerns. In this age where the bulk of codebase may be generated by an AI tool, I will focus on tools that can be set up for automatic scans.\n\n## References\n\nOfficial list of modules with security considerations: https://docs.python.org/3/library/security_warnings.html  \nExample of the ruff linter detecting dangerous pickle use: https://docs.astral.sh/ruff/rules/suspicious-pickle-usage/", "recording_license": "", "do_not_record": false, "persons": [{"code": "W8SXPU", "name": "Sau", "avatar": "https://pretalx.com/media/avatars/W8SXPU_RcMYZhp.webp", "biography": "Based in Tokyo, Sau Yee believes that Python is for everyone. She is a heavy user of her password manager.", "public_name": "Sau", "guid": "150d69e8-a6eb-56b9-8340-61705daeb90f", "url": "https://pretalx.com/pyconhk2025/speaker/W8SXPU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/BXPFES/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/BXPFES/", "attachments": []}, {"guid": "1934bc73-8192-520e-8d76-b37be7aa0249", "code": "XCQ9WW", "id": 71741, "logo": "https://pretalx.com/media/pyconhk2025/submissions/XCQ9WW/465869228_27368879509393_3NccPxW.jpg", "date": "2025-10-11T17:05:00+08:00", "start": "17:05", "end": "2025-10-11T17:20:00+08:00", "duration": "00:15", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-71741-unscripted-yes-consistent-commitment-from-meetup-attendee-to-pycon-apac-2025-co-chair-journey", "url": "https://pretalx.com/pyconhk2025/talk/XCQ9WW/", "title": "Unscripted Yes, Consistent Commitment: From Meetup Attendee to PyCon APAC 2025 Co-Chair Journey", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": "Many hesitate to join tech communities or take on leadership roles, fearing they\u2019re not \"ready.\" My journey was anything but planned\u2014I simply said \"yes\" to opportunities, even when unprepared. From attending meetups as a newcomer to becoming a core volunteer and now PyCon APAC 2025 Co-Chair, my story is one of commitment, uncertainty, and growth.\n\nIn this talk, I\u2019ll share how showing up, embracing challenges, and volunteering transformed my career and community involvement. I'll also break down common misconceptions about tech meetups and how anyone regardless of experience can start contributing. If you\u2019re hesitant to take that first step, this talk will inspire you to leap, learn, and find your place in the Python and tech community.", "description": "Many believe that to contribute meaningfully to a tech community, they need to be an expert or have years of experience. But my journey proves otherwise. I started as someone who simply showed up attending meetups, learning from others, and saying \"yes\" to volunteering, even when I wasn\u2019t sure what I was getting into. What followed was an unexpected but transformative journey, from a local Python volunteer to co-chairing PyCon APAC 2025.\n\nIn this talk, I\u2019ll share how my \"fake it till you make it\" mindset and consistent commitment led me to this point. I'll discuss how I navigated the world of Python & tech meetups, the lessons I learned from being a tech community nomad, and the surprising impact of small actions in community growth. Attendees will gain insights into how they can start their own journey, overcome self-doubt, and make meaningful contributions, no matter their skill level.\n\nBy the end of this talk, I hope to inspire more people to step up, take a leap of faith, and actively engage in the Python and tech community because every great journey starts with a simple \"yes.\"", "recording_license": "", "do_not_record": false, "persons": [{"code": "SBACNU", "name": "Rodney Lei Estrada", "avatar": "https://pretalx.com/media/avatars/SBACNU_9kWj3Ps.webp", "biography": "He is one of the co-chairs of PyCon APAC 2025 and a core volunteer for Python Philippines, a passionate learner, and a dedicated volunteer for the community, with a strong mission to bridge the gap and connect the tech community for the people. He is also a retail tech intern at ING Hubs Philippines and a current student at National University - Manila. And he loves spaghetti.", "public_name": "Rodney Lei Estrada", "guid": "57e8a40b-18f3-52af-bb0d-ce82a8c725d6", "url": "https://pretalx.com/pyconhk2025/speaker/SBACNU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/XCQ9WW/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/XCQ9WW/", "attachments": []}, {"guid": "3cef8446-a6e6-5273-b194-696e6aeee660", "code": "RHYPBS", "id": 74472, "logo": null, "date": "2025-10-11T17:30:00+08:00", "start": "17:30", "end": "2025-10-11T17:35:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-74472-make-use-of-tox-in-your-ci-workflow", "url": "https://pretalx.com/pyconhk2025/talk/RHYPBS/", "title": "Make use of Tox in your CI workflow", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "Are you tired of your code working in your environment, but failing when your teammate tries to run it? Are you tired of typing commands into your bash terminal again and again just to run your test cases? Are you tired of pushing your code to a shared repo, just to find out it failed the CI checks put in place by the repo's admin?\n\nIf you've ever encountered any of these situations, you may benefit from having tox in your CI workflow. With tox, you can set up virtual environments to automatically run your format checks and test cases - all in a single file. It's a simple and elegant solution that can save you and your team time and frustration.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "NX8CPA", "name": "Rex Liu", "avatar": "https://pretalx.com/media/avatars/NX8CPA_0yXKAfC.webp", "biography": "Rex Liu works as a Data Management Professional at Bloomberg. His team within the firm's Data department processes company financials in related to Asian markets, and he uses Python to build and maintain data pipelines that acquire, extract, and process financial data. Rex holds a bachelor's degree in computer engineering from the Hong Kong University of Science and Technology.", "public_name": "Rex Liu", "guid": "ae974a05-89aa-5c59-a980-d2191b501d32", "url": "https://pretalx.com/pyconhk2025/speaker/NX8CPA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/RHYPBS/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/RHYPBS/", "attachments": []}, {"guid": "1948e19e-42db-5762-9c8a-12d1fb418bf7", "code": "LRTWNA", "id": 73496, "logo": null, "date": "2025-10-11T17:35:00+08:00", "start": "17:35", "end": "2025-10-11T17:40:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-73496-shall-we-upgrade-navigating-python-s-rapid-evolution", "url": "https://pretalx.com/pyconhk2025/talk/LRTWNA/", "title": "Shall We Upgrade? Navigating Python's Rapid Evolution", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "The rapid evolution of Python presents version selection challenges for developers. We will talk about the development process of Python versions, mainly focusing on the key changes from Python 3.10 to 3.14. This talk will highlight the most impactful features and their implications for real-world development, helping developers make informed decisions about upgrading their Python.", "description": "Python's continuous evolution introduces specialized tools for diverse development challenges. By examining release highlights from 3.10 onward - including structural pattern matching, performance optimizations, typing enhancements and the just-in-time (JIT) compiler - this talk summarize the great strides Python has made in recent years. We will also explore the Python Enhancement Proposal (PEP) lifecycle to understand feature evolution mechanisms. We would like to equip attendees to make strategic decisions: adopting improvements where they deliver meaningful impact while preserving system stability where essential.\nThe slide of this talk is available at [https://lucajiang.github.io/new_in_python/](https://lucajiang.github.io/new_in_python/)", "recording_license": "", "do_not_record": false, "persons": [{"code": "BLNXLK", "name": "Wenxin Jiang", "avatar": "https://pretalx.com/media/avatars/BLNXLK_vrijyea.webp", "biography": "Wenxin is currently a Ph.d. student in biostatistics at CityUHK. Her research interest lies in high-dimensional statistical machine learning and data science with applications in genetics and genomics data.", "public_name": "Wenxin Jiang", "guid": "383e3b57-a0da-5d11-84c8-bb33736e98b8", "url": "https://pretalx.com/pyconhk2025/speaker/BLNXLK/"}, {"code": "YWFHKV", "name": "Jian Yin", "avatar": null, "biography": "Phd student of biostatistics at CityUHK", "public_name": "Jian Yin", "guid": "21b7f250-f5a1-5ddb-a4c1-7d26ddce5d7e", "url": "https://pretalx.com/pyconhk2025/speaker/YWFHKV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/LRTWNA/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/LRTWNA/", "attachments": []}, {"guid": "eb31fb71-1f48-5bdc-8673-0034a4fbf7ce", "code": "EYTFQA", "id": 74535, "logo": null, "date": "2025-10-11T17:40:00+08:00", "start": "17:40", "end": "2025-10-11T17:45:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-74535-tired-of-waiting-bring-your-python-loops-to-life-with-tqdm", "url": "https://pretalx.com/pyconhk2025/talk/EYTFQA/", "title": "Tired of Waiting? Bring Your Python Loops to Life with tqdm", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "Nobody likes waiting around, especially when code is silently crunching away. For data scientists, engineers, and anyone running long-loop operations in Python, the endless blank console can be a source of much anxiety and frustration.\n\nThis lightning talk introduces tqdm, Python's secret weapon for banishing the black box. We'll quickly explore how this deceptively simple library transforms mundane loops into engaging, informative progress bars, providing crucial real-time feedback. You'll walk away from this talk understanding how a few simple lines of code can dramatically improve the user experience of your scripts and boost your productivity.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UYLHLG", "name": "Cheryl Cong", "avatar": "https://pretalx.com/media/avatars/UYLHLG_YMncRjn.webp", "biography": "Cheryl Cong is a Data Engineering Analyst in Bloomberg's Data department in Hong Kong, specializing in Equity Corporate Actions. In this role, she works closely with product managers, data teams, and engineers on data product developments. She develops and grows automated data pipelines to update financial product data with high accuracy and low latency. She is passionate about staying up-to-date with the latest technologies and trends in the field and will continue developing her skills to make a positive impact. She holds a master's degree in management science and engineering from Columbia University.", "public_name": "Cheryl Cong", "guid": "2d872c6e-be94-5f50-9aaa-1f940111b78c", "url": "https://pretalx.com/pyconhk2025/speaker/UYLHLG/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/EYTFQA/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/EYTFQA/", "attachments": []}, {"guid": "5509904d-5917-581d-9245-902b759e62c3", "code": "W8UDQD", "id": 82504, "logo": null, "date": "2025-10-11T17:45:00+08:00", "start": "17:45", "end": "2025-10-11T17:50:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-82504-the-year-of-the-snake-python", "url": "https://pretalx.com/pyconhk2025/talk/W8UDQD/", "title": "The Year of the Snake (Python)", "subtitle": "", "track": null, "type": "Lightning Talk On-Day", "language": "en", "abstract": "2025 is the Year of the Snake in the Asian Zodiac. This is a light-hearted lightning talk about the relationship between Python and Snakes, thereby celebrating the Year of Python.", "description": "- Introduction to the Asian Zodiac (1 min)\n- History of Python and the Snake (2 min)\n- Relationship of the Snake to Python (2 min)", "recording_license": "", "do_not_record": false, "persons": [{"code": "W8SXPU", "name": "Sau", "avatar": "https://pretalx.com/media/avatars/W8SXPU_RcMYZhp.webp", "biography": "Based in Tokyo, Sau Yee believes that Python is for everyone. She is a heavy user of her password manager.", "public_name": "Sau", "guid": "150d69e8-a6eb-56b9-8340-61705daeb90f", "url": "https://pretalx.com/pyconhk2025/speaker/W8SXPU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/W8UDQD/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/W8UDQD/", "attachments": []}, {"guid": "52b98cb9-d7c7-5f4e-ad13-73335cbdb041", "code": "B8REC8", "id": 82505, "logo": null, "date": "2025-10-11T17:50:00+08:00", "start": "17:50", "end": "2025-10-11T17:55:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-82505-my-python-journey-from-coding-to-community", "url": "https://pretalx.com/pyconhk2025/talk/B8REC8/", "title": "My Python Journey from Coding to Community", "subtitle": "", "track": null, "type": "Lightning Talk On-Day", "language": "en", "abstract": "Sharing my 20-year Python journey starting from coding to community.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZYNVK9", "name": "Sammy Fung", "avatar": null, "biography": "Founder of PyCon HK, HKOSCon, Open Source HK .\n\n#DevRel", "public_name": "Sammy Fung", "guid": "ed2fc93c-7f18-515d-97ca-9c89e3858062", "url": "https://pretalx.com/pyconhk2025/speaker/ZYNVK9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/B8REC8/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/B8REC8/", "attachments": []}, {"guid": "8eb0db75-9ef4-55c2-b7a5-26550b7f92a5", "code": "ADGCNZ", "id": 82510, "logo": null, "date": "2025-10-11T17:55:00+08:00", "start": "17:55", "end": "2025-10-11T18:00:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-82510-chills-and-submit-your-proposal", "url": "https://pretalx.com/pyconhk2025/talk/ADGCNZ/", "title": "Chills and Submit Your Proposal", "subtitle": "", "track": null, "type": "Lightning Talk On-Day", "language": "en", "abstract": "This is just a story about me submitting my paper to multiple Python Conference, get rejected and some of it get accepted.\n\nThe story will tells about the journey of me accepted at Pycon HK 2025 and will tells about some funny story about the process of traveling to Pycon HK 2025.\n\nThe first slide will tell to chills and submit your completed proposal to multiple Pycon and feels the contribution.\n\nThe second  slide will tell the story about me get accepted at multiple PyCon and feels the happy thing and the panic thing in preparing for the conference.\n\nThe third slide will tell the fun story when having a journey from my country to HongKong for Pycon Hong Kong 2025.\n\nThe fourth and the five will tell a story about me exploring Hong Kong and have an insiparation quote at the last.", "description": "Just a fun and chills story about submitting proposal to multiple Pycon and the fun thing about the journey", "recording_license": "", "do_not_record": false, "persons": [{"code": "MZT9A9", "name": "Nizar Akbar Meilani", "avatar": "https://pretalx.com/media/avatars/MZT9A9_qFRRikH.webp", "biography": "I am a two years experienced System Administrator, who work in an Indonesian Hosting Company, that passionate about Linux and scripting language like Bash and Python. I love in understanding the intricacies of Linux and it's isolation mechanism. And I am a new open source person who love to understand how open source community work.", "public_name": "Nizar Akbar Meilani", "guid": "aa084f88-a789-548f-9b63-7d365e0ce05b", "url": "https://pretalx.com/pyconhk2025/speaker/MZT9A9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/ADGCNZ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/ADGCNZ/", "attachments": []}, {"guid": "1b9350b4-f6f3-5654-b263-00958df37b63", "code": "NSDPHV", "id": 82511, "logo": null, "date": "2025-10-11T18:00:00+08:00", "start": "18:00", "end": "2025-10-11T18:05:00+08:00", "duration": "00:05", "room": "Main Track (Afternoon) (LT-13)", "slug": "pyconhk2025-82511-web-scraping-with-python-selenium", "url": "https://pretalx.com/pyconhk2025/talk/NSDPHV/", "title": "Web Scraping with Python Selenium", "subtitle": "", "track": null, "type": "Lightning Talk On-Day", "language": "en", "abstract": "- What the heck is web scraping\n- When to use it\n- General pointers on where to start", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "CAJMLU", "name": "Nicholas B.", "avatar": null, "biography": "Just a SWE lmao", "public_name": "Nicholas B.", "guid": "92eef9e1-060b-5716-9093-e7858c0b27af", "url": "https://pretalx.com/pyconhk2025/speaker/CAJMLU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/NSDPHV/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/NSDPHV/", "attachments": []}], "Track A (Sessions) (LT-15)": [{"guid": "36594904-9716-56c5-a68b-67931a05a731", "code": "QR9URY", "id": 81822, "logo": null, "date": "2025-10-11T11:30:00+08:00", "start": "11:30", "end": "2025-10-11T12:00:00+08:00", "duration": "00:30", "room": "Track A (Sessions) (LT-15)", "slug": "pyconhk2025-81822-demystify-vllm-introducing-the-de-facto-llm-inference-engine-for-private-ai", "url": "https://pretalx.com/pyconhk2025/talk/QR9URY/", "title": "Demystify vLLM: introducing the de-facto LLM inference engine for private AI", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "With the rise of public cloud services, most people began using LLMs online. However, in August 2025, hundreds of thousands of chat were leaked and surfaced on Google, raising serious concerns about whether it\u2019s still safe to share confidential information with online LLMs. As a result, growing numbers of users are looking to deploy their own models\u2014either in home labs or enterprise environments\u2014to maintain full control.\n\nOllama has been the most popular self-hosted LLM solution, but it isn\u2019t designed for large-scale deployments. In contrast, vLLM has recently emerged as a de facto standard for high-performance LLM inference serving.\n\nIn this talk, we\u2019ll compare vLLM and Ollama and highlight the advantages of vLLM. We\u2019ll also explore the technical inference optimization techniques behind vLLM that reduce GPU compute and memory usage. Finally, we\u2019ll demonstrate how to use and configure vLLM within a Python script.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "ESXRPE", "name": "Peter Ho", "avatar": "https://pretalx.com/media/avatars/ESXRPE_dPCDPzn.webp", "biography": "Peter Ho is a Senior Solution Architect at Red Hat. He has extensive experience working with over 30 enterprise and government customers to establish resilient hybrid and multi-cloud architectures for their mission-critical applications. In recent years, Peter champions LLM serving solutions, helping clients to integrate and deploy vLLM.", "public_name": "Peter Ho", "guid": "85d030c2-2c83-5d7b-8a61-d88d0028bfd0", "url": "https://pretalx.com/pyconhk2025/speaker/ESXRPE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/QR9URY/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/QR9URY/", "attachments": []}, {"guid": "9eadd11d-93aa-5603-8adf-8f549a9242d7", "code": "BXRAXM", "id": 82423, "logo": null, "date": "2025-10-11T12:10:00+08:00", "start": "12:10", "end": "2025-10-11T12:40:00+08:00", "duration": "00:30", "room": "Track A (Sessions) (LT-15)", "slug": "pyconhk2025-82423-you-don-t-need-to-be-a-hero-to-contribute", "url": "https://pretalx.com/pyconhk2025/talk/BXRAXM/", "title": "You Don\u2019t Need to Be a Hero to Contribute", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Ever looked at the code in an open-source project and thought, \u201cThose contributors are way too talented, my little PR would be meaningless\u201d? Or maybe you\u2019ve opened a repository, seen thousands of lines of code, and decided it was too complex to even find a bug to fix? \n\n\nI hear you \u2014 because I\u2019m one of you. I\u2019m not a brilliant engineer pushing thousands of lines of code every day, nor a famous blogger with thousands of followers. \n\n\nBut in this talk, I\u2019ll share my story about how some of my open-source projects and security research led to new networks, collaborations, recognition, and how you can start contributing to the open-source ecosystem, no matter your experience level. You don\u2019t need to be a hero to make an impact.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "YGNFVR", "name": "Richard Fan", "avatar": "https://pretalx.com/media/avatars/YGNFVR_QTQPl39.webp", "biography": "Richard is a Security Engineer and an AWS Security Hero.\n\nHe is dedicated to helping people quickly adopt the cloud, promoting best practices, and streamlining cloud governance. Richard's experience over the years has allowed him to focus more on making security on the cloud easy.\n\nRichard's current focus is on software supply chain security and data protection. He has been an active contributor to AWS Nitro Enclaves, a trusted execution environment offering on AWS.", "public_name": "Richard Fan", "guid": "79959281-207a-5847-a2d5-cfb4d79f531b", "url": "https://pretalx.com/pyconhk2025/speaker/YGNFVR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/BXRAXM/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/BXRAXM/", "attachments": []}], "Track A (Workshop) (LT-15)": [{"guid": "f4b0ac1a-0e14-5466-a858-33465e54eb5d", "code": "KESSTA", "id": 72978, "logo": null, "date": "2025-10-11T14:00:00+08:00", "start": "14:00", "end": "2025-10-11T15:30:00+08:00", "duration": "01:30", "room": "Track A (Workshop) (LT-15)", "slug": "pyconhk2025-72978-opentelemetry-foundations-hands-on-guide-to-observability", "url": "https://pretalx.com/pyconhk2025/talk/KESSTA/", "title": "OpenTelemetry Foundations: Hands-On Guide to Observability", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Unlock the power of observability in your software systems! This beginner-friendly, hands-on workshop introduces you to OpenTelemetry, the leading open-source observability framework. Designed for developers, operators, SREs, and even technical managers with little to no experience in observability, this session walks you through the fundamentals of observability, core OpenTelemetry architecture, and how to get started instrumenting your applications with minimal code.\n\nBy the end of this session, you\u2019ll have a strong foundational understanding and practical exposure to OpenTelemetry concepts and implementation, equipping you to bring observability to your projects or teams.\nAttendees will be provided:\n\nA GitHub repo with sample applications and instrumented code\nCheat sheets and quick-start guides", "description": "What You\u2019ll Learn:\n\nIntroduction to Observability: Understand the importance of observability in modern software systems and how it can help you gain insights into your applications.\n\nCore Principles of OpenTelemetry: Learn the fundamental concepts and principles that drive OpenTelemetry, the leading open-source observability framework.\n\nKey Components and Architecture: Dive into the architecture of OpenTelemetry, exploring its key components and how they work together to provide comprehensive observability.\n\nPractical Use Cases and Examples: See OpenTelemetry in action with examples and use cases that demonstrate its capabilities and benefits.\n\nHow to Get Started with OpenTelemetry in Your Organization: Get practical tips and guidance on how to implement OpenTelemetry in your own projects and start reaping the benefits of enhanced observability.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XHT9ZV", "name": "Hemangi Karchalkar", "avatar": "https://pretalx.com/media/avatars/XHT9ZV_jFYFMbW.webp", "biography": "Hemangi Karchalkar is a Senior Software Developer at EPAM Systems who writes code, breaks it (occasionally on purpose), and teaches Python like it\u2019s a superpower. She\u2019s given multiple talks without tripping on stage, trains humans (not AI... yet), and believes debugging is just her computer\u2019s way of bonding.", "public_name": "Hemangi Karchalkar", "guid": "b4bb3b14-c8f1-53d1-a6cb-d5f2cd1b2635", "url": "https://pretalx.com/pyconhk2025/speaker/XHT9ZV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/KESSTA/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/KESSTA/", "attachments": []}, {"guid": "c9fcaad6-3915-536f-ae8a-7acff8f74d31", "code": "EYXF9W", "id": 75028, "logo": null, "date": "2025-10-11T15:50:00+08:00", "start": "15:50", "end": "2025-10-11T17:20:00+08:00", "duration": "01:30", "room": "Track A (Workshop) (LT-15)", "slug": "pyconhk2025-75028-setting-up-reliable-ci-cd-pipelines-with-python-k8s-testcontainers", "url": "https://pretalx.com/pyconhk2025/talk/EYXF9W/", "title": "Setting Up Reliable CI/CD Pipelines with Python, K8s & Testcontainers", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Build a production-grade CI/CD pipeline using Python, Docker, Testcontainers, GitHub Actions, and Kubernetes. This workshop takes you from zero to deployment with real-world automation, testing, and monitoring. Perfect for all levels, it blends simplicity, storytelling, and powerful DevOps tools to boost your confidence in delivering reliable software.", "description": "Shipping software should feel empowering \u2014 not like fighting fires. Yet for many developers, CI/CD feels like a maze of YAMLs, fragile tests, cloud complexity, and guesswork. This workshop changes that story, using Python as your guiding light.\n\nIn this 85-minute hands-on session, you\u2019ll build a complete, production-grade CI/CD pipeline \u2014 one that starts with a commit and ends with a deployed, monitored app in the cloud. But unlike most DevOps sessions, this one is crafted through the lens of simplicity, storytelling, and the power of Python.\n\nWe'll start with Python scripts that automate GitHub repo creation and Jenkins setup. From there, you\u2019ll use Testcontainers to run realistic integration tests in Docker \u2014 giving you confidence that your tests reflect the real world. We'll automate builds and trigger workflows using GitHub Actions, then containerize your app and push it to Docker Hub.\n\nThen comes the moment of truth: deploying your Python app to a live Kubernetes cluster (AWS EKS), using Python to manage manifests, rollouts, and environment configs. To top it off, you'll integrate a custom Prometheus exporter written in Python, visualized in Grafana, so you can watch your app breathe in real time.\n\nThis isn\u2019t just another workshop filled with configs. It\u2019s a journey \u2014 from chaos to clarity, from \u201cI\u2019m not sure what I\u2019m doing\u201d to \u201cI actually built that!\u201d Every step is hands-on, beginner-friendly, and deeply practical. We blend technical depth with real-world insight, humour, and moments of celebration.\n\nWhether you\u2019re just starting out with DevOps, or you\u2019re a seasoned engineer who wants a clean, Pythonic approach to CI/CD, this session is for you. You\u2019ll leave with a complete working pipeline, a solid understanding of every tool involved, and the confidence to recreate it at work, in your side projects, or with your teams.\n\nBy the end, you\u2019ll walk away not only with skills, but with a story \u2014 a story of how you connected the dots and built something amazing, powered by Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XQMQY7", "name": "Koti Vellanki", "avatar": "https://pretalx.com/media/avatars/XQMQY7_nKYZtRe.webp", "biography": "I\u2019m Koti Vellanki \u2014 a DevOps engineer by practice and a community builder by passion. With over 6 years of experience working in cloud-native environments, I currently serve as a Senior DevOps Engineer at TransUnion, where I work on managing large-scale Kubernetes clusters, building CI/CD systems, and improving observability for production workloads.\n\nWhile I enjoy solving technical challenges, what truly drives me is enabling others to grow through shared knowledge. Over the years, I\u2019ve actively contributed to the tech community \u2014 speaking at Kubernetes Community Days (KCDs) and staying closely involved with meetups such as Collabnix, Kubernetes Bengaluru, Docker Bangalore, BangPypers, etc. I'm the Organizer for Open Source Meetups in Bengaluru which has around 2.6K members and also India Code Weekend which has more than 10K members.\n\nI\u2019ve also been a regular volunteer, organizer, and attendee at global Python conferences like PyCon India, PyCon US, EuroPython, PyCon APAC, PyCon JP, PyCon PH and PyCon HK. These experiences have shown me how valuable it is to have a space for local collaboration and learning.", "public_name": "Koti Vellanki", "guid": "38cdd06f-b72f-53ac-b5b0-83beff832a79", "url": "https://pretalx.com/pyconhk2025/speaker/XQMQY7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/EYXF9W/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/EYXF9W/", "attachments": []}], "Track B (LT-14)": [{"guid": "48becc7e-c7b9-588b-94c6-4cc84687bcf3", "code": "VUXSPF", "id": 71824, "logo": null, "date": "2025-10-11T11:30:00+08:00", "start": "11:30", "end": "2025-10-11T12:00:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-71824-pyodide-python-reborn-in-the-browser", "url": "https://pretalx.com/pyconhk2025/talk/VUXSPF/", "title": "Pyodide: Python Reborn in the Browser", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Have you ever wished you could run Python directly in the browser\u2014without any server backend or WebSocket setup?\n\nIn this talk, I will introduce Pyodide, a WebAssembly-based Python distribution that brings the full Python runtime to the browser. You\u2019ll learn how Pyodide enables scientific computing, data visualization, and interactive notebooks\u2014all in client-side web apps. We\u2019ll explore how Pyodide is built, how to integrate it with JavaScript, and the real-world limitations to watch out for.\n\nWhether you're building a no-backend playground, an AI-enabled tool, or an offline-capable app, Pyodide opens new doors for Python in the frontend.", "description": "Pyodide is an emerging solution for running Python in the browser using WebAssembly. In this session, I will:\n\n1. Explain the architecture and use cases of Pyodide.\n2. Show how to build apps that combine Pyodide with modern web frameworks (e.g., React, Vue).\n3. Demo real-world use cases including AI model inference, scientific visualization, and interactive education tools.\n4. Discuss Pyodide's ecosystem, performance tips, and current limitations.\n\nThis talk is suitable for Python developers curious about frontend technologies, WebAssembly enthusiasts, and anyone exploring the boundaries of full-stack Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZKU88V", "name": "Calpa", "avatar": "https://pretalx.com/media/avatars/ZKU88V_ufDPSgk.webp", "biography": "Calpa is a full-stack engineer and independent educator. He specializes in frontend development and interactive web technologies, and has a passion for making complex technical concepts accessible.\n\nIn recent years, he has been actively exploring Pyodide to teach scientific computing, bringing libraries like NumPy, Pandas, and SciPy directly into the browser. He empowers learners to experiment with Python through open-source demos and online workshops without needing a local setup.\n\nCalpa is also an active speaker in the AI x developer tooling space and enjoys sharing insights on building educational tools, lightweight MVPs, and creative coding workflows with ChatGPT and modern web stacks.", "public_name": "Calpa", "guid": "96d4c48c-9e2b-54d5-ad03-780e24f1a317", "url": "https://pretalx.com/pyconhk2025/speaker/ZKU88V/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/VUXSPF/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/VUXSPF/", "attachments": []}, {"guid": "d996a9b7-842a-5888-a440-60fe39666053", "code": "RNY8EP", "id": 75343, "logo": null, "date": "2025-10-11T12:10:00+08:00", "start": "12:10", "end": "2025-10-11T12:40:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-75343-what-are-ai-pipeline-frameworks-good-for", "url": "https://pretalx.com/pyconhk2025/talk/RNY8EP/", "title": "What are AI pipeline frameworks good for?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "So, you want to build an AI-powered application in Python. In addition to the UI and database you would need in any application, you will of course need LLM deployments to call and prompts engineered to generate the desired output. Yet, with all of these elements in place, an AI application presents distinctive challenges for coordinating the interaction of LLMs and user data. A toy example that fills a few user-inputted variables into a prompt for use with a single LLM deployment endpoint requires only a few dozen lines of backend code. But what if you want to be able to swap between different models, deployments, or APIs? And how will you handle problems such as hitting quota limits or encountering irregularities in LLM output, or test how you process inputs and outputs? Or what if you want to build a more complex AI system that enriches the model's context (RAG) or can make its own calls to various tools in response to user requests (agents): which data sources and tools will you connect to, and how? Several Python packages -- including LangChain, LlamaIndex, Haystack, and PydanticAI -- claim to offer end-to-end frameworks for building application-ready AI pipelines and agents. Through a systematic comparison of their different features and structures, alongside the option of rolling a solution oneself, this talk will consider how using these frameworks might, or might not, make it easier to answer some of the challenging questions involved in building an AI application.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "FS9BKK", "name": "Mark Cohen", "avatar": "https://pretalx.com/media/avatars/FS9BKK_Vnb1CUT.webp", "biography": "I am a data scientist and AI developer. My current work is building the AI essay grading assistant Pregrade. In this work, I make use of the experience from my prior career as an academic social scientist.", "public_name": "Mark Cohen", "guid": "c9d48ce0-8be3-570c-9e36-dc3b28dfc567", "url": "https://pretalx.com/pyconhk2025/speaker/FS9BKK/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/RNY8EP/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/RNY8EP/", "attachments": []}, {"guid": "f81fc937-0627-5e44-bb56-c73717d439df", "code": "RDTRNC", "id": 74110, "logo": null, "date": "2025-10-11T12:45:00+08:00", "start": "12:45", "end": "2025-10-11T13:00:00+08:00", "duration": "00:15", "room": "Track B (LT-14)", "slug": "pyconhk2025-74110-from-chaos-to-harmony-a-genai-solution-to-music-library-clutter", "url": "https://pretalx.com/pyconhk2025/talk/RDTRNC/", "title": "From Chaos to Harmony: A GenAI Solution to Music Library Clutter", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": "Ever opened your music folder only to be greeted by a chaotic mix of album and track names that trigger your inner OCD? This talk explores the journey from manual cleanup to building a Python tool that brings order to musical chaos. By harnessing Retrieval-Augmented Generation (RAG), Large Language Models (LLMs), and natural language processing (NLP), the project intelligently standardizes music libraries across diverse naming conventions and languages. The presentation focuses on the creative process, core AI concepts, and key lessons learned, tracing the path from tedious folder cleaning to an automated, AI-powered solution.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "KN7ZHA", "name": "Matthew Yuen", "avatar": "https://pretalx.com/media/avatars/KN7ZHA_50e7iNI.webp", "biography": "I'm an AI specialist passionate about building practical, creative solutions with machine learning, generative AI, and cloud technologies. With hands-on experience in end-to-end AI projects, I enjoy tackling real-world problems and AI-driven applications. I'm also passionate about audio gear and music, which in part inspired the project I'm presenting", "public_name": "Matthew Yuen", "guid": "fedbea77-a5ef-53af-a8ae-0a7bf091553a", "url": "https://pretalx.com/pyconhk2025/speaker/KN7ZHA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/RDTRNC/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/RDTRNC/", "attachments": []}, {"guid": "73005577-1bcd-5149-8d6f-d91fc1584ba3", "code": "7VASSD", "id": 73074, "logo": null, "date": "2025-10-11T14:00:00+08:00", "start": "14:00", "end": "2025-10-11T14:30:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-73074-iac-meets-python-when-terraform-isn-t-enough", "url": "https://pretalx.com/pyconhk2025/talk/7VASSD/", "title": "IaC Meets Python: When Terraform Isn't Enough", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Terraform is powerful\u2014but it has limits. In this talk, we\u2019ll explore where Python can complement infrastructure-as-code (IaC): from dynamic resource creation and complex validations to custom workflows and post-deployment logic. Using real-world SRE/DevOps scenarios, we\u2019ll walk through how Python scripts and tools (like Pulumi, Python CDK, or simple custom wrappers) help close Terraform\u2019s gaps. This session is for anyone building infra who\u2019s hit the wall with HCL and needs flexibility\u2014without abandoning automation.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "VVZH3J", "name": "Rajani Ekunde", "avatar": "https://pretalx.com/media/avatars/VVZH3J_WZrqhlG.webp", "biography": "Rajani is a skilled DevOps Engineer with over 4 years of experience, passionate about cloud technologies and DevOps practices. As a recognized Docker Captain and Women Techmakers (WTM) Ambassador, she actively contributes to the tech community through content creation and public speaking. Rajani shares her expertise on platforms like Medium and LinkedIn, aiming to educate and empower others in the DevOps space.\n\nHer participation in major cloud and DevOps conferences highlights her commitment to continuous learning. As a public speaker, she engages with the global tech community on trending topics. Rajani finds fulfillment in mentoring aspiring engineers, inspiring and uplifting fellow professionals and students through her articles, talks, and mentorship.", "public_name": "Rajani Ekunde", "guid": "505007a7-e8ed-5253-beda-0af3ebbb3544", "url": "https://pretalx.com/pyconhk2025/speaker/VVZH3J/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/7VASSD/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/7VASSD/", "attachments": []}, {"guid": "e6dfb2b2-c6f2-5391-a640-09adce9ff451", "code": "UU8XBZ", "id": 73895, "logo": null, "date": "2025-10-11T14:40:00+08:00", "start": "14:40", "end": "2025-10-11T15:10:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-73895-graphrag-with-python-and-neo4j", "url": "https://pretalx.com/pyconhk2025/talk/UU8XBZ/", "title": "GraphRAG with Python and Neo4j", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Large Language Models (LLMs) often struggle to provide current and comprehensive answers from vast, interconnected knowledge bases, a common challenge in fields like business, legal and administrative tasks. While traditional RAG improves LLM context, it can falter with complex, relationship-heavy information. GraphRAG offers a powerful solution by leveraging graph databases to enhance retrieval with structured relationships, leading to deeper contextual understanding.\n\nThis talk provides a practical introduction to implementing GraphRAG using Neo4j. We will explore how Neo4j can be used to construct knowledge graphs from unstructured data and enable advanced, relationship-aware retrieval. Attendees will learn the core concepts of GraphRAG and gain practical insights to build smarter RAG systems, capable of delivering more accurate and contextually rich LLM responses for complex real-world applications.\n\nGitHub Repo: https://github.com/hksquinson/pycon-hk-graphrag", "description": "Large Language Models (LLMs) have revolutionized access to information, yet their inherent reliance on static training data often limits their ability to provide the most current, comprehensive, and contextually nuanced answers. This limitation is particularly evident when interacting with the vast, dynamically evolving, and highly interconnected knowledge bases found in many professional domains. \n\nWhile Retrieval-Augmented Generation (RAG) offers a significant step forward by allowing LLMs to access external information, it frequently struggles with the intricate relationships embedded within complex datasets. This challenge is acutely felt in sectors such as legal research, business intelligence, and corporate knowledge management, where the ability to precisely navigate extensive documents and extract deep, interconnected insights is critical for informed decision-making. Traditional RAG, in these scenarios, often fails to select truly relevant context, resulting in fragmented or incomplete answers.\n\nGraphRAG directly addresses these limitations by recognizing that information often derives its true meaning from its connections. This powerful paradigm enhances RAG by leveraging the structural richness of graph databases to represent knowledge as a network of entities and their relationships. By doing so, GraphRAG empowers LLMs to not just retrieve isolated text snippets, but to intelligently traverse and query the underlying relationships, leading to a far more comprehensive and contextual understanding of information.\n\nAttendees will discover:\n\n* The fundamental principles of GraphRAG and its significant advantages over conventional RAG methods in handling complex, interconnected datasets\u2014a critical capability for applications in business analysis, legal document interpretation, and comprehensive knowledge base exploration.\n* How Neo4j efficiently structures and queries interconnected data, enabling optimal information retrieval.\n* An overview of Python tools related to GraphRAG, showcasing its user-friendliness in building GraphRAG applications. This includes its capabilities for automated knowledge graph construction, extracting entities and relationships, and its support for various LLM providers and embedding models.\n* Practical patterns for ingesting diverse data into Neo4j and leveraging its graph intelligence to enrich LLM prompts, thereby significantly improving the relevance, coherence, and depth of generated responses.\n\nWhether you're a Python developer eager to build more sophisticated LLM applications, a data scientist exploring advanced retrieval techniques, or a professional in business, law or administration, this session will equip you with the foundational knowledge and practical insights to begin your journey with Neo4j-powered GraphRAG in a Python environment.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UMFTUY", "name": "Hon Kwan Shun Quinson", "avatar": "https://pretalx.com/media/avatars/UMFTUY_F9n8hn4.webp", "biography": "Hon Kwan Shun Quinson is an MPhil student in Computer Science at The Chinese University of Hong Kong. His academic pursuits and research focus on advancements in artificial intelligence. Throughout his academic journey, he has developed strong skills in natural language processing and machine learning. Notable experiences include developing graph-based Retrieval Augmented Generation (RAG) systems, training convolutional and Transformer models with PyTorch, and fine-tuning LLMs for applications such as Cantonese translation. He is also keenly expanding his research into the intersection of LLMs with reinforcement learning and formal methods for program synthesis, exploring novel pathways for enhancing AI capabilities and robustness. Committed to continuous growth in this rapidly evolving field, he is passionate about contributing to the future of AI.", "public_name": "Hon Kwan Shun Quinson", "guid": "f238196a-eea0-5051-9f8f-d3dd2d9ced5a", "url": "https://pretalx.com/pyconhk2025/speaker/UMFTUY/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/UU8XBZ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/UU8XBZ/", "attachments": []}, {"guid": "d5febc25-2e13-5aa1-980c-f488808baec0", "code": "7MCNCZ", "id": 75250, "logo": null, "date": "2025-10-11T15:50:00+08:00", "start": "15:50", "end": "2025-10-11T16:20:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-75250-implementing-an-mcp-server-for-dbms-in-python-ydb-s-experience", "url": "https://pretalx.com/pyconhk2025/talk/7MCNCZ/", "title": "Implementing an MCP Server for DBMS in Python \u2014 YDB\u2019s Experience", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Learn how YDB leverages the Model Context Protocol (MCP) to integrate AI models with database systems. This session explores the development of a Python-based MCP server that facilitates seamless interactions between large language models and YDB\u2019s open-source Distributed SQL database management system. Learn about the design decisions, challenges faced, and the practical benefits of integrating MCP into data architecture. Ideal for developers and AI practitioners aiming to enhance AI capabilities with direct database access.\n\nGeneral understanding of Large Language Models (LLM) and Database Management Systems (DBMS). No deep knowledge of Python itself is necessary.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "JNVL8R", "name": "Ivan Blinkov", "avatar": "https://pretalx.com/media/avatars/JNVL8R_JcrOKdC.webp", "biography": "Ivan Blinkov is a seasoned technical leader specializing in data storage and processing. Over the last decade, he was involved in the development of several database management systems, two of which are open-source: ClickHouse in the past and, currently, YDB.", "public_name": "Ivan Blinkov", "guid": "25491429-4e63-5fb1-90c4-cdc022db7d06", "url": "https://pretalx.com/pyconhk2025/speaker/JNVL8R/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/7MCNCZ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/7MCNCZ/", "attachments": []}, {"guid": "19584669-008b-560d-9b25-b913d43b953f", "code": "H3MBTJ", "id": 74138, "logo": null, "date": "2025-10-11T16:30:00+08:00", "start": "16:30", "end": "2025-10-11T17:00:00+08:00", "duration": "00:30", "room": "Track B (LT-14)", "slug": "pyconhk2025-74138-aipython-how-ai-tools-changed-the-python-language", "url": "https://pretalx.com/pyconhk2025/talk/H3MBTJ/", "title": "AI\u5de5\u5177\u6539\u8b8a\u4e86Python\u751a\u9ebc / How AI Tools Changed the Python Language", "subtitle": "", "track": null, "type": "Talk", "language": "zh-hant", "abstract": "\u65b0\u8208\u7684AI\u5de5\u5177\uff0c\u4f8b\u5982Github copilot\u548ccursor\uff0c\u4ee4\u5beb\u7a0b\u5f0f\u66f4\u65b9\u4fbf\u3002\u4f46\u6211\u767c\u73fe\u9019\u4e9b\u5de5\u5177\u4fcf\u4fcf\u5730\u6539\u8b8a\u4e86Python\u9019\u500b\u8a9e\u8a00\uff0c\u6211\u6703\u7528\u5e7e\u500b\u4f8b\u5b50\uff0c\u9810\u6e2c\u672a\u4f86Python\u9019\u500b\u8a9e\u8a00\u7684\u6539\u8b8a\uff0c\u6211\u5011\u53ef\u4ee5\u505a\u751a\u9ebc\uff0c\u4ee5\u53ca\u70ba\u4f55\u9019\u4e9b\u6539\u8b8a\u6703\u51fa\u73fe\u3002\n\nThe new AI tools, such as GitHub Copilot or Cursor, have made programming easier. However, I observed that these tools silently changed the Python language. I will give a few examples to explain and predict the future of Python language. I will give my opinion on why this happens and what we can do about it.", "description": "\u4e00\u500b\u8a9e\u8a00\u4e26\u4e0d\u9650\u65bc\u8a9e\u6cd5\uff0c\u9084\u6709\u4f7f\u7528\u7fd2\u6163\uff0c\u4f8b\u5982Microsoft\u559c\u6b61\u7528Hungarian notation\u5bebC++\u3002\u9577\u4e45\u4ee5\u4f86\uff0cPython\u90fd\u662f\u4ee5\u7c21\u6f54\u8457\u7a31\uff0c\u67d0\u7a0b\u5ea6\u4e0a\u53ef\u80fd\u6e90\u65bc\u61f6\u60f0\uff0c\u6240\u4ee5type annotation\u548cdocstring\u7684\u4e0d\u898b\u65bc\u6240\u6709\u7a0b\u5f0f\u3002\u7136\u800c\uff0cAI\u5de5\u5177\u7684\u51fa\u73fe\u6703\u4ee4\u5beb\u51fa\u9019\u4e9b\u300c\u6c92\u7528\u7684\u90e8\u4ef6\u300d\u66f4\u5ec9\u50f9\uff0c\u5f9e\u800c\u4ee4\u4e4b\u66f4\u76db\u884c\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u9019\u4e9b\u5de5\u5177\u80af\u5b9a\u4ee4\u4eba\u5c11\u4e86\u601d\u8003\uff0c\u7522\u51fa\u7684\u8a9e\u8a00\u66f4\u55ae\u4e00\u3002\u6211\u6703\u7528\u4e00\u4e9b\u4f8b\u984c\u770b\u770b\u9019\u4e9b\u5de5\u5177\u5982\u4f55\u5851\u9020Python\u7684\u672a\u4f86\uff0c\u4ee5\u53ca\u89e3\u91cb\u70ba\u4f55Python\u6703\u6bd4\u5176\u4ed6\u8a9e\u8a00\u66f4\u5bb9\u6613\u53d7\u5230AI\u5de5\u5177\u7684\u5f71\u97ff\u3002\n\u70ba\u914d\u5408\u6bd4\u55bb\u53ca\u7b11\u8a71\uff0c\u9019\u500b\u8b1b\u984c\u6703\u7528\u5ee3\u6771\u8a71\uff0c\u5982\u89c0\u773e\u8981\u6c42\u914d\u5408\uff0c\u53ef\u5373\u5834\u6539\u4ee5\u82f1\u8a9e\u9032\u884c\u3002\n\nA language is not only its syntax but also its conventions of usage. For example, Microsoft is famous for using Hungarian notation in C++.\n\nPython is famous for its concise syntax. There are type annotations and docstrings in the language, but they are not used by all projects. This is partially because humans are too lazy to do this extra work. The availability of the AI tools will make these \"useless bits\" cheap to add and thus more common. On the other hand, AI outputs are more uniform, unoriginal, and dull. I will prove this with some examples. I will also explain why it is the case, why Python is more susceptible to these problems than other languages, and what we should do about it.\n\nThis talk is intended to be delivered in Cantonese because of the jokes and analogies, but it can be switched to English if the audiences prefer.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EKWAB9", "name": "Dr. Adrian Tam", "avatar": "https://pretalx.com/media/avatars/EKWAB9_ZyBo7za.webp", "biography": "Adrian has been using Python for work for more than 20 years. Although not the only programming language to use, it is his favorite for quick experiments and prototyping. His interest is in mathematical modeling, number crunching, high performance computing, and in the last decade, machine learning and AI.", "public_name": "Dr. Adrian Tam", "guid": "fc369b02-816a-5f37-9cae-1e9d18a278de", "url": "https://pretalx.com/pyconhk2025/speaker/EKWAB9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/H3MBTJ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/H3MBTJ/", "attachments": [{"title": "Presentation slides", "url": "/media/pyconhk2025/submissions/H3MBTJ/resources/How_AI_Changed_KptFvjY.pdf", "type": "related"}]}, {"guid": "a525b3c0-fd62-5541-bda9-b21f51c5cece", "code": "QBPXZ9", "id": 73878, "logo": null, "date": "2025-10-11T17:05:00+08:00", "start": "17:05", "end": "2025-10-11T17:20:00+08:00", "duration": "00:15", "room": "Track B (LT-14)", "slug": "pyconhk2025-73878-what-does-it-take-to-create-a-language-of-your-own-in-python", "url": "https://pretalx.com/pyconhk2025/talk/QBPXZ9/", "title": "What does it take to create a language of your own in Python?", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": "Ever wondered how to create your own domain-specific language tailored to your needs?\n\nThis session explores how to build a programming language that lets users write code using natural language. Designed to be fun, intuitive and easy to use, the language is crafted for young learners especially those for whom English is not a first language. Built with Python, the system parses and interprets natural language into executable code. I\u2019ll share the design challenges, key insights and lessons learned from creating a language that\u2019s user-centered.", "description": "This session is for anyone curious about building your own little domain-specific languages, exploring new ways to teach programming or just crafting code that speaks your own language, literally.\n\nInspired by my working with an organization that taught coding to children and talks at PyCon APAC, I asked: What if programming could be made more accessible with a language tailored to children? \n\nThe talk will cover:\n\n**Language Design**\n- Making decisions around syntax depending on the purpose.\n\n**Architecture Choices**\n- Interpreter vs compiler: which architecture best fits for your need?\n- Parsing libraries: tools available such as PLY, Lark.\n\n**Technical Implementation**\n- Building the lexer, parser, and interpreter and handling errors using Python.\n\n**Demo**\n- The language in action.\n\n**Future Directions**\n- Adding support for more languages, introducing to wider community.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XBE3QD", "name": "Chaw Chit Su Thwe", "avatar": "https://pretalx.com/media/avatars/XBE3QD_Z2FrZ9P.webp", "biography": "Chaw is a software developer at HENNGE in Japan, focusing on the Identity edition of the HENNGE One product which provides access control solutions. Outside of work, she enjoys reading, hiking, and exploring cafes.", "public_name": "Chaw Chit Su Thwe", "guid": "73a0e231-9bd9-5ba3-996e-829a791e66b8", "url": "https://pretalx.com/pyconhk2025/speaker/XBE3QD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/QBPXZ9/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/QBPXZ9/", "attachments": []}], "Track C (LT-16)": [{"guid": "8aca53b9-2faa-592e-a53a-18f6a5bbf7df", "code": "KDMRUJ", "id": 75201, "logo": null, "date": "2025-10-11T11:30:00+08:00", "start": "11:30", "end": "2025-10-11T12:00:00+08:00", "duration": "00:30", "room": "Track C (LT-16)", "slug": "pyconhk2025-75201-mercari-llm-benchmark-building-a-practical-llm-benchmark-for-your-business", "url": "https://pretalx.com/pyconhk2025/talk/KDMRUJ/", "title": "Mercari LLM Benchmark: Building a Practical LLM Benchmark for Your Business", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Every new LLM comes with glowing performance on English-centric benchmarks. This makes it difficult to predict how that performance will translate to business use cases in other languages or specialized domains. At Mercari, Japan's largest C2C marketplace, we faced this exact problem with Japanese. Inspired by Kagi, Wolfram, and Aider benchmarks, we are building our own continuously updated internal benchmark to evaluate major LLMs on unpolluted, business-critical tasks that models have not seen in their training data. The talk will cover task design, an evaluation pipeline in Python, a comparison of the latest models on accuracy, cost, and latency, and practical lessons for creating your own benchmark tailored to your needs.", "description": "Outline\n1. Motivation: Why Standard Benchmarks Fail in Non-English Contexts. Speaker introduction. (2 minutes)\n2. Task Taxonomy and Dataset Curation: Creating unpolluted tasks that mirror real business problems. Examples of tasks. (3 minutes)\n3. Python Evaluation Pipeline: A robust, automated pipeline with Litellm, Pydantic, SQLite, etc. (9 minutes)\n4. Methodology and Metrics: Ensuring fair, unpolluted evaluation beyond simple accuracy. (3 minutes)\n5. Results: A snapshot of how the latest major LLMs perform on our private, business-critical tasks. (3 minutes)\n6. Surprising Trade-offs: Analyzing the Pareto frontier of accuracy, cost, and speed for production systems. (3 minutes)\n7.  Building Your Own Benchmark: Essential Python libraries, design patterns, and practical lessons. (5 minutes)\n8. Conclusion and Q&A (2 minutes)\n\nAudience\nPython developers, ML/DS engineers, tech leads, and product managers using Large Language Models for real-world business applications, especially in non-English or specialized domains.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PHJAUM", "name": "Prashant Anand", "avatar": "https://pretalx.com/media/avatars/PHJAUM_LSeJLtb.webp", "biography": "Prashant is a Staff ML Engineer at Mercari, Inc. in Tokyo, Japan, where he has spent over 5 years building scalable, high-performance production ML systems. He leads the exploration and application of machine learning, NLP, and LLMs to transform customer support experiences at one of Japan's largest e-commerce platforms.\n\nWith a B.Tech from IIT Delhi (2019), Prashant brings deep technical expertise in bridging cutting-edge ML research with real-world production systems. He is passionate about sharing knowledge with the Python community, having previously spoken at PyCon JP 2024 and PyCon APAC 2023.\n\nAway from the keyboard, you\u2019ll find him obsessing over specialty coffee and perfecting his hand-drip and French-press brews.", "public_name": "Prashant Anand", "guid": "d1b2f2ff-804d-5203-b0be-35633d721503", "url": "https://pretalx.com/pyconhk2025/speaker/PHJAUM/"}, {"code": "BPYP9C", "name": "Kanta Suga", "avatar": "https://pretalx.com/media/avatars/BPYP9C_Yw1QtyC.webp", "biography": "I'm a Machine Learning engineer at Mercari,inc.\nMaster (eng): Bioinformatics.", "public_name": "Kanta Suga", "guid": "fb67509c-7c8a-5da6-a9dd-1ed1ddc274cb", "url": "https://pretalx.com/pyconhk2025/speaker/BPYP9C/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/KDMRUJ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/KDMRUJ/", "attachments": []}, {"guid": "0b536c63-0849-5dd6-8bd4-2eb371dd6a5d", "code": "3WPDCG", "id": 72910, "logo": "https://pretalx.com/media/pyconhk2025/submissions/3WPDCG/Snipaste_2025-10-10_19-1_TMyYWaS.png", "date": "2025-10-11T12:10:00+08:00", "start": "12:10", "end": "2025-10-11T12:40:00+08:00", "duration": "00:30", "room": "Track C (LT-16)", "slug": "pyconhk2025-72910-the-graph-capture-mechanisms-in-pytorch", "url": "https://pretalx.com/pyconhk2025/talk/3WPDCG/", "title": "The graph capture mechanisms in PyTorch", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "PyTorch is the the most popular deep learning framework used in both academic and industry. Researchers and engineers use PyTorch to train their models with the convenient and well-defined neural network APIs in eager mode. After training, one has to export the model computation flow as a graph to a framework-agnostic format (e.g., ONNX, TensorRT, etc.) to deploy the trained model for inference with better performance. Thus, we need a mechanism to capture the computation operations happend inside a DNN model.\n\nGraph capturing aims to track and record the PyTorch API invocations used in a model. Since the release of PyTorch 2.0 in 2023, there are two primary machineries to trace a model computation graph: `fx.symbolic_trace` and Dynamo. In this proposal, I'd like to introduce the usage of both kinds of APIs, and further dissect the underlying working machinary of these two approaches. We also tend to discuss the limitations of both, showing that `fx.symbolic_trace` is limited by the static symbolic tracing mode and Dynamo is still on its early age.\n\nThe slides are available: https://docs.google.com/presentation/d/12u6sjOJgLeWltmLTzpoNvcR6bUynTZ4iyFwPpPVrRwI/edit?usp=sharing", "description": "In this proposal, I'd like to share the following key topics about the graph capture approaches in PyTorch:\n- How can we harness `fx.symbolic_trace` and `torch.dynamo.export` to capture the DNN operations during the model execution\n- How does the symbolic trace mechanism from FX produces the static model graph by substituting the substantial tensors in the graph with \"fake\" symbolic values\n- How Dynamo exploits the custom frame evaluation interface provided by CPython since PEP 523 to dynamically evaluate and dump the PyTorch API invocations during eager execution of DNN models, showing that PyTorch not only treats Python as a frontend language, but also deeply leverages CPython runtime features to extend its flexibility and usability\n- The respect limitations of both interfaces", "recording_license": "", "do_not_record": false, "persons": [{"code": "GZD93R", "name": "Xuanteng Huang", "avatar": "https://pretalx.com/media/avatars/GZD93R_lMGpFSJ.webp", "biography": "Xuanteng is currently a Ph.D. student in Sun Yat-sen University. His research focuses on the software-hardware co-design on GPU runtime system to better serve the emerging machine learning applications.", "public_name": "Xuanteng Huang", "guid": "42d3a66e-d6fe-5a15-9353-bc3e1f0fd0f5", "url": "https://pretalx.com/pyconhk2025/speaker/GZD93R/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/3WPDCG/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/3WPDCG/", "attachments": []}, {"guid": "25be4558-54bc-5b23-9f24-bf3669ccad2a", "code": "WECB7J", "id": 78141, "logo": null, "date": "2025-10-11T12:45:00+08:00", "start": "12:45", "end": "2025-10-11T13:00:00+08:00", "duration": "00:15", "room": "Track C (LT-16)", "slug": "pyconhk2025-78141-my-poor-fund-how-mpf-fees-are-eating-your-retirement", "url": "https://pretalx.com/pyconhk2025/talk/WECB7J/", "title": "My Poor Fund: How MPF Fees Are Eating Your Retirement", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": "Hong Kong\u2019s Mandatory Provident Fund (MPF) is supposed to secure your retirement\u2014but what if it\u2019s secretly shrinking your savings? Using Python, we\u2019ll simulate how high fees erode your returns over time, compare MPF performance against low-cost alternatives (like index funds), and uncover whether sticking with the default plan could cost you millions. Through interactive visualisations, we\u2019ll expose the maths behind, and explore how self-directed investing might be the escape hatch.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "MPYUJL", "name": "Philip C.", "avatar": "https://pretalx.com/media/avatars/MPYUJL_JCDnJhC.webp", "biography": "Philip is a User Support Specialist at a finance data institution, where he leads his department's Python automation initiative. Previously, as a Support Engineer, he monitored the company\u2019s entire fleet of transformers and analyzed data from its IoT sensor network. His research on machine learning in transformer health analysis was awarded the HKIE Outstanding Paper Award, one of two institutional recipients. \nHe holds a Master's in Engineering from HKU and is a licensed insurance intermediary.", "public_name": "Philip C.", "guid": "8b2b6b4f-fd03-5639-83f0-d4af9899c514", "url": "https://pretalx.com/pyconhk2025/speaker/MPYUJL/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/WECB7J/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/WECB7J/", "attachments": []}, {"guid": "12c684e1-9f40-566d-b10a-e14d654a5c99", "code": "LSRJ8Q", "id": 73377, "logo": null, "date": "2025-10-11T14:00:00+08:00", "start": "14:00", "end": "2025-10-11T14:30:00+08:00", "duration": "00:30", "room": "Track C (LT-16)", "slug": "pyconhk2025-73377-pythonic-finance-analyze-company-fundamentals-with-sec-edgar-apis", "url": "https://pretalx.com/pyconhk2025/talk/LSRJ8Q/", "title": "Pythonic Finance: Analyze Company Fundamentals with SEC EDGAR APIs", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, Python and quantitative methods are used to access, validate, and analyze fundamental financial data from the US Securities and Exchange Commission (SEC) EDGAR system. The SEC's JSON API provides structured financial data, derived from company filings reported in eXtensible Business Reporting Language (XBRL), an international standard for financial reporting. Pydantic is used for robust data validation. Attendees will learn to:\n\n- Fetch basic metrics\n- Calculate financial ratios\n- Visualize trends\n- Navigate common data challenges\n\nWhile focused on the US market data, a brief explanation of the international landscape will also be provided. No finance background required. Basic Python is required to understand the data processing part.", "description": "### Target\n\n- **Who**: This talk is designed for anyone interested in using Python to understand public company financials, spanning from students, programmers, hobbyists, even experienced working professionals. As mentioned, no finance background is required for this talk. Beginner-level Python (variables, functions, lists, using libraries) might be required to understand how the financial data is processed to output metrics.\n\n- **What:** Attendees will be able to discover briefly about the XBRL language, hands-on techniques for getting data from SEC EDGAR's `companyfacts` API, combining data science and software engineering to validate data with Pydantic, extract key fundamental metrics from the API responses, calculate basic financial ratios, visualize financial trends, and learn the nuances of working with public financial data APIs, even internationally.\n\n- **How:** This talk will be presented in a mixed-style of core financial concepts with live (fallback is prepared in case network errors) Python demonstrations in a Jupyter Notebook / Google Colaboratory. This talk will go through the entire process: selecting a company to visualize its financial health, techniques to ensure that the data is valid, and calculating financial metrics and ratios.\n\n### Scope\n\n- **I am NOT a financial advisor and this talk is for educational purposes only, I will NOT promote or recommend any specific assets, companies, products, and strategies, and this talk is NOT to be construed as any financial, investment, or trading advice**\n- Advanced financial modeling, company valuations, and comprehensive ratio analysis are outside of the talk's scope\n- This talk does not dive deep with parsing XBRL format\n- This talk does not cover how to buy and/or sell securities\n- All examples of this talk use historical data, past performance is not indicative of future performance\n\n### Outline\n\nPlanned outline of the presentation:\n\n- Introduction and Disclaimer (~3 minutes)\n    - Quick self-introduction and an important disclaimer that I am not a financial advisor and this talk is not a financial advice\n    - Why analyze company fundamentals with Python?\n- The Data: SEC EDGAR, XBRL, and APIs (~4 minutes)\n    - Overview of SEC, EDGAR system, and U.S. company filings (10-K)\n    - Brief introduction to XBRL as the structured data standard\n    - Focus on the `companyfacts` JSON API for XBRL-derived data\n- Real-Life Scenario: Ensuring Data Quality with Pydantic (~3 minutes)\n    - Why Pydantic and a quick overview of the Pydantic models for the API response\n- Fetching and Validating Company Data (~3 minutes)\n    - Use `requests` and `pydantic` to get and validate data for a sample U.S. company\n    - Handle potential API or validation issues\n- Finance Metrics Explanation & Extraction (~7 minutes)\n    - Explanation of basic, core finance metrics: `Revenue`, `Net Income`, `Assets`, `Liabilities`, `Equity`\n    - Extraction of the annual data, building the `pandas`'s `DataFrame` to showcase the data\n    - Adapting to different XBRL tags (different derived JSON property) for the same financial concept, companies might not have the same schema\n- Calculation of Finance Ratios (~3 minutes)\n    - Explanation of finance ratios: `Net Profit Margin`, `Debt to Equity Ratio`\n    - Calculation of the metrics\n- Visualizing Trends (~2 minutes)\n    - From the metrics and calculations, generating and showcasing plots with `matplotlib` / `seaborn`\n- Internationalization and Data Nuances (~2 minutes)\n    - How other countries (example: Japan has `EDINET`) has a different system, but with the same XBRL data structure, proving the skills and knowledge are transferrable\n- Key Takeaways, Recap, Closing (~2 minutes)\n    - Summary of the process, the tools, suggestions for future exploration", "recording_license": "", "do_not_record": false, "persons": [{"code": "H9W8DU", "name": "Nicholas Dwiarto", "avatar": "https://pretalx.com/media/avatars/H9W8DU_zpE8YqY.webp", "biography": "Nicholas is a software engineer based in Japan. Originally hailing from Indonesia, he spends his weekends exploring Tokyo's neighborhoods, hiking local mountains, and reading articles about tech, finance, or anything that sparks his curiosity. Nicholas is passionate about building things that makes his life a bit easier, and he's always up for good views of the city.", "public_name": "Nicholas Dwiarto", "guid": "09ddbdf6-8a0f-5e67-b270-8c1861ce0b9f", "url": "https://pretalx.com/pyconhk2025/speaker/H9W8DU/"}], "links": [{"title": "GitHub Repository", "url": "https://github.com/lauslim12/analyze-company-fundamentals-with-sec-edgar-api", "type": "related"}], "feedback_url": "https://pretalx.com/pyconhk2025/talk/LSRJ8Q/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/LSRJ8Q/", "attachments": [{"title": "Slide", "url": "/media/pyconhk2025/submissions/LSRJ8Q/resources/pythonic-finan_pc26aWn.pdf", "type": "related"}]}, {"guid": "df510594-527a-5cdf-b707-8a70847ec0f5", "code": "SGNMQN", "id": 72858, "logo": null, "date": "2025-10-11T14:40:00+08:00", "start": "14:40", "end": "2025-10-11T15:10:00+08:00", "duration": "00:30", "room": "Track C (LT-16)", "slug": "pyconhk2025-72858-search-matters-engineering-search-systems-that-actually-work", "url": "https://pretalx.com/pyconhk2025/talk/SGNMQN/", "title": "Search matters: Engineering search systems that actually work", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Large language models face fundamental limitations, including outdated training data, context window constraints, and a tendency to hallucinate. While vector similarity search is a popular solution through Retrieval-Augmented Generation (RAG), simple cosine similarity often fails to capture the nuanced relevance needed for high-quality LLM responses. \n\nThis talk explores how search capabilities can enable your LLMs to provide accurate responses. We examine how sophisticated retrieval methods work through hybrid search combining dense and sparse retrieval, semantic reranking, and external memory using Qdrant Vector Database - Python client. We demonstrate how search becomes the critical bridge between knowledge and real-world information needs.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "XVM8TR", "name": "Tarun Jain", "avatar": "https://pretalx.com/media/avatars/XVM8TR_FTeacji.webp", "biography": "Tarun Jain is a Super Agent at AI Planet and is recognized as a Google Developer Expert in AI. He enjoys contributing to open-source projects and maintains two repositories: OpenAGI, for building AI Agents, and BeyondLLM, for quick experimenting, evaluating, and observing RAG pipelines. Tarun also contributed to Google Summer of Code 2024 at Red Hen Lab and Google Summer of Code 2023 at caMicroscope. He is a content creator with over 3500+ subscribers for his channel AI with Tarun.\n\nPrevious Experience: \n- Speaker at PyCon Hong Kong 2024\n- Speaker at PyCon Malaysia 2024\n- Speaker at PyCon APAC - Indonesia 2024\n- Speaker at PyCon Singapore - 2025", "public_name": "Tarun Jain", "guid": "3b5a6fe6-c494-585f-9f13-0163d24d933e", "url": "https://pretalx.com/pyconhk2025/speaker/XVM8TR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/SGNMQN/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/SGNMQN/", "attachments": []}, {"guid": "4264ab2c-9b85-59c8-b926-252052ebefb4", "code": "HJYDTX", "id": 71594, "logo": null, "date": "2025-10-11T15:50:00+08:00", "start": "15:50", "end": "2025-10-11T16:20:00+08:00", "duration": "00:30", "room": "Track C (LT-16)", "slug": "pyconhk2025-71594-peek-inside-the-pixels-visual-interpretability-for-computer-vision-models", "url": "https://pretalx.com/pyconhk2025/talk/HJYDTX/", "title": "Peek Inside the Pixels: Visual Interpretability for Computer Vision Models", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "As computer vision becomes more deeply integrated into real-world applications, understanding how and why models make decisions is no longer optional, it\u2019s essential. This talk introduces practical interpretability techniques that bring transparency to computer vision models. We\u2019ll explore popular methods such as Grad-CAM and LIME, and see how they reveal the inner workings of deep learning models through visual explanations. Through live demos, attendees will learn how these tools can be used to debug models, uncover biases, and build trust with users. Designed for Python developers of all backgrounds, this session makes a complex topic accessible even if you're new to machine learning or explainable AI.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "CFTCFG", "name": "Cyrus Mante", "avatar": "https://pretalx.com/media/avatars/CFTCFG_yYAWouw.webp", "biography": "He is a versatile professional who embodies the dual roles of educator and developer. As an instructor, he teaches coding across multiple platforms and engage with students of all ages. He currently works at Accenture Philippines as an AI/ML Computational Science Analyst, where he develops Generative AI solutions to streamline repetitive tasks and enhance workplace efficiency. He is also an active volunteer for Python Philippines and served as Co-Chairman of PyCon APAC 2025.", "public_name": "Cyrus Mante", "guid": "8de35ea2-fa94-51b6-bf7b-b4cf537887bc", "url": "https://pretalx.com/pyconhk2025/speaker/CFTCFG/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/HJYDTX/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/HJYDTX/", "attachments": []}, {"guid": "f3fd6edb-15af-521e-bb55-f226a773c69b", "code": "CUPHVJ", "id": 73501, "logo": null, "date": "2025-10-11T17:05:00+08:00", "start": "17:05", "end": "2025-10-11T17:20:00+08:00", "duration": "00:15", "room": "Track C (LT-16)", "slug": "pyconhk2025-73501-functional-python-practical-paradigms-for-readable-and-robust-code", "url": "https://pretalx.com/pyconhk2025/talk/CUPHVJ/", "title": "Functional Python: Practical Paradigms for Readable and Robust Code", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": "While Python's object-oriented paradigm dominates developer discussions, its functional capabilities offer powerful tools for modern development. This talk explores how integrating functional programming (FP) concepts can enhance code readability and maintainability in Python projects. We will discover how to transform imperative logic flow into composable functions and implement declarative error-handling using intuitive railway patterns. This talk aims to provide an optional toolbox for Python developers to improve code quality.", "description": "Functional programming (FP) offers powerful tools and is increasingly adopted across modern languages, including Python. Since Python is not a purely functional language, rather than advocating for a complete shift to FP, this talk will demonstrate how to effectively integrate functional techniques, such as pure functions and higher-order functions, into your Python codebase. By converting imperative procedure-style logic into composable functions, developers can focus more on the \"what\" (logic) rather than the \"how\" (implementation details). As for error handling, we will explore how to organize code using a fun and easy-to-understand railway analogy. By the end of this talk, you'll understand how to apply basic FP concepts in Python, which improve code's readability, maintainability, and robustness.\nThe slides of this talk is available at [https://lucajiang.github.io/functional_python/](https://lucajiang.github.io/functional_python/)", "recording_license": "", "do_not_record": false, "persons": [{"code": "BLNXLK", "name": "Wenxin Jiang", "avatar": "https://pretalx.com/media/avatars/BLNXLK_vrijyea.webp", "biography": "Wenxin is currently a Ph.d. student in biostatistics at CityUHK. Her research interest lies in high-dimensional statistical machine learning and data science with applications in genetics and genomics data.", "public_name": "Wenxin Jiang", "guid": "383e3b57-a0da-5d11-84c8-bb33736e98b8", "url": "https://pretalx.com/pyconhk2025/speaker/BLNXLK/"}, {"code": "YWFHKV", "name": "Jian Yin", "avatar": null, "biography": "Phd student of biostatistics at CityUHK", "public_name": "Jian Yin", "guid": "21b7f250-f5a1-5ddb-a4c1-7d26ddce5d7e", "url": "https://pretalx.com/pyconhk2025/speaker/YWFHKV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconhk2025/talk/CUPHVJ/feedback/", "origin_url": "https://pretalx.com/pyconhk2025/talk/CUPHVJ/", "attachments": []}]}}, {"index": 2, "date": "2025-10-12", "day_start": "2025-10-12T04:00:00+08:00", "day_end": "2025-10-13T03:59:00+08:00", "rooms": {}}]}}}