{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.0.dev0"}, "schedule": {"url": "https://talks.nixcon.org/nixcon-2025/schedule/", "version": "4.12", "base_url": "https://talks.nixcon.org", "conference": {"acronym": "nixcon-2025", "title": "NixCon 2025", "start": "2025-09-05", "end": "2025-09-07", "daysCount": 3, "timeslot_duration": "00:05", "time_zone_name": "Europe/Zurich", "colors": {"primary": "#ff8b00"}, "rooms": [{"name": "Aula (4.101)", "slug": "4673-aula-4101", "guid": "78e86540-5a1e-526b-a5a0-3cced83e331a", "description": null, "capacity": 450}, {"name": "Lecture Hall (5.002)", "slug": "4674-lecture-hall-5002", "guid": "65393070-f244-5f37-9f0b-9bb3a0c49b3d", "description": "5.002", "capacity": 100}, {"name": "Workshop room 1 (4.0114)", "slug": "4675-workshop-room-1-40114", "guid": "ca4b1489-5074-589a-b721-0f4b222cc9a7", "description": null, "capacity": 50}, {"name": "Workshop room 2 (4.0115)", "slug": "4676-workshop-room-2-40115", "guid": "ab95d89d-0f4d-5dee-879c-a2534e2b890a", "description": null, "capacity": 50}], "tracks": [{"name": "Sponsored", "slug": "6192-sponsored", "color": "#5400ff"}], "days": [{"index": 1, "date": "2025-09-05", "day_start": "2025-09-05T04:00:00+02:00", "day_end": "2025-09-06T03:59:00+02:00", "rooms": {"Aula (4.101)": [{"guid": "b4304bad-5097-52b2-b428-125c97cf78a5", "code": "QEN3WD", "id": 79332, "logo": null, "date": "2025-09-05T10:00:00+02:00", "start": "10:00", "duration": "00:35", "room": "Aula (4.101)", "slug": "nixcon-2025-79332-opening-ceremony", "url": "https://talks.nixcon.org/nixcon-2025/talk/QEN3WD/", "title": "Opening Ceremony", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Opening of the conference", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/QEN3WD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/QEN3WD/", "attachments": []}, {"guid": "5fd7beda-c898-5ae3-975a-03ce25a43820", "code": "9VKFRM", "id": 73183, "logo": null, "date": "2025-09-05T10:45:00+02:00", "start": "10:45", "duration": "00:45", "room": "Aula (4.101)", "slug": "nixcon-2025-73183-sustainable-nix-2025-state-of-the-union", "url": "https://talks.nixcon.org/nixcon-2025/talk/9VKFRM/", "title": "Sustainable Nix 2025 - State of the Union", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Lets explore how to ensure the sustainability of the Nix ecosystem with community leads including the SC and Foundation. We will dive into what it takes to create and maintain a robust, reliable environment for years to come. Covering the community\u2019s milestones in 2024, from infra to governance, and about both the hard-won lessons and the innovations shaping Nix\u2019s future.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WNKTLV", "name": "Ron Efroni", "avatar": "https://talks.nixcon.org/media/avatars/WNKTLV_uxr9w1k.webp", "biography": "Ron is CEO and co-founder of Flox and President of the NixOS Foundation. A former software engineer and leader in large-scale product development, Ron led developer products at Meta, supporting 20,000+ engineers. Realizing the limitations of existing tooling and recognizing the superpowers of Nix, Ron co-founded Flox to help build a more sustainable Nix and make it accessible to the wider engineering community.", "public_name": "Ron Efroni", "guid": "6e6be514-046c-5706-a132-d1ce5b4f73dd", "url": "https://talks.nixcon.org/nixcon-2025/speaker/WNKTLV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/9VKFRM/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/9VKFRM/", "attachments": []}, {"guid": "ed25f8fb-e5ef-5f5e-83b9-49ff5b150f54", "code": "CDU788", "id": 80838, "logo": null, "date": "2025-09-05T11:40:00+02:00", "start": "11:40", "duration": "00:10", "room": "Aula (4.101)", "slug": "nixcon-2025-80838-nixos-mediation-a-free-mediation-service", "url": "https://talks.nixcon.org/nixcon-2025/talk/CDU788/", "title": "NixOS Mediation - a free mediation service", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Presenting https://nixos-mediation.org/ ; what it is, how you can benefit from it, and a small retro.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XGGYJH", "name": "Jonas Chevalier (zimbatm)", "avatar": "https://talks.nixcon.org/media/avatars/XGGYJH_k5PUyDS.webp", "biography": "OSS and Nix enthusiast, author of little tools (direnv, treefmt, ...), director of Numtide.", "public_name": "Jonas Chevalier (zimbatm)", "guid": "f8e376a2-6b93-5167-84b8-639a9ce17cb4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/XGGYJH/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/CDU788/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/CDU788/", "attachments": []}, {"guid": "cc4831d2-3ecc-5464-9c5f-1b95cb6a2771", "code": "YCDXZM", "id": 78621, "logo": null, "date": "2025-09-05T13:30:00+02:00", "start": "13:30", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-78621-introducing-nixops4", "url": "https://talks.nixcon.org/nixcon-2025/talk/YCDXZM/", "title": "Introducing NixOps4", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "NixOps4 is the successor of NixOps.\r\nWhy did NixOps fail, and how does NixOps4 address its shortcomings?\r\nWill NixOps4 replace Terraform/OpenTofu?\r\nWill the demo work?\r\nhttps://github.com/roberth/nixcon-2025-slides\r\n`nix run github:roberth/nixcon-2025-slides`", "recording_license": "", "do_not_record": false, "persons": [{"code": "BRZUUD", "name": "Robert Hensing", "avatar": "https://talks.nixcon.org/media/avatars/BRZUUD_BBfjVwx.webp", "biography": "Nix Steering Committee, Nix team member, NixOps maintainer, Hercules CI founder", "public_name": "Robert Hensing", "guid": "f3c0fc81-5ce0-5db5-b24a-c82a6feddd81", "url": "https://talks.nixcon.org/nixcon-2025/speaker/BRZUUD/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/YCDXZM/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/YCDXZM/", "attachments": []}, {"guid": "9bedc11f-0c8b-57c4-8221-efb564184efc", "code": "NGPKNY", "id": 75563, "logo": null, "date": "2025-09-05T14:05:00+02:00", "start": "14:05", "duration": "00:45", "room": "Aula (4.101)", "slug": "nixcon-2025-75563-free-software-talk-and-discussion", "url": "https://talks.nixcon.org/nixcon-2025/talk/NGPKNY/", "title": "Free Software (Talk and Discussion)", "subtitle": "", "track": null, "type": "Short workshop", "language": "en", "abstract": null, "description": "This talk explores the challenges and opportunities faced by the free software movement today. It offers a broad reflection on what \"freedom\" means in modern computing \u2014 and why it's more relevant than ever. Touching on questions of trust, corporate co-option, licenses, and the ethics of technology, it emphasizes the role of community engagement and governance structures. With urgency and clarity, it calls on developers to think beyond code and to take responsibility for the digital world we are collectively building.\r\n\r\nThe talk will be followed by an involved discussion with the audience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EPF9DU", "name": "Zo\u00eb Kooyman", "avatar": "https://talks.nixcon.org/media/avatars/EPF9DU_VJbRwbp.webp", "biography": "Zo\u00eb Kooyman is the executive director of the Free Software Foundation (FSF). She has a deep interest in the visual and digital nature of modern society, and holds a Master of Arts in Preservation and Presentation of the Moving Image from the University of Amsterdam. Here, her understanding of copyright was profoundly influenced by the concepts of copyleft and user freedom. She then spent the next years living and working around the world as a project director for a wide range of assignments, soaking up experiences along the way. She found her way to Boston and the FSF in 2019 as program manager and was named executive director in 2022.", "public_name": "Zo\u00eb Kooyman", "guid": "db4a15af-b73d-565b-9c5b-e68b57eb6a7d", "url": "https://talks.nixcon.org/nixcon-2025/speaker/EPF9DU/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/NGPKNY/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/NGPKNY/", "attachments": []}, {"guid": "515bba5d-2816-5f78-ab7d-b07ffd1602f1", "code": "XJ9JLH", "id": 78456, "logo": null, "date": "2025-09-05T15:00:00+02:00", "start": "15:00", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-78456-flatpaks-the-nix-way", "url": "https://talks.nixcon.org/nixcon-2025/talk/XJ9JLH/", "title": "Flatpaks the Nix way", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Nix and Flatpak are often seen as solving similar problems from different angles: one declarative and reproducible, the other sandboxed and user-friendly. But what happens when you try to make them work together? And why would you want to do it?\r\n\r\nIn this talk, I\u2019ll present nix-flatpak (https://github.com/gmodena/nix-flatpak), an open-source project to declaratively manage Flatpak apps with Nix. This project started as a personal learning experiment to understand Nix, flakes, and module design, and grew into a practical tool to bridge the Nix and Flatpak ecosystems.\r\n\r\nWe\u2019ll cover:\r\n- A quick primer on Flatpaks and why they matter for desktop NixOS users\r\n- How Flatpak installations are managed declaratively in nix-flatpak\r\n- Architecture decisions and tradeoffs: convergent state vs full reproducibility\r\n- How to test and validate the module logic across system and user installations\r\n- What\u2019s ahead: improving UX, stability, and community feedback\r\n\r\nThe talk is intended to be interactive. I\u2019ll share how the project evolved, but also open the floor to ideas, questions, and use cases from the community. Your feedback will directly shape the future of nix-flatpak.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NT3MFS", "name": "Gabriele Modena", "avatar": "https://talks.nixcon.org/media/avatars/NT3MFS_sKI4qst.webp", "biography": "Nix and NixOS enthusiast.", "public_name": "Gabriele Modena", "guid": "a62e508e-ff49-55be-924e-14d75655c535", "url": "https://talks.nixcon.org/nixcon-2025/speaker/NT3MFS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XJ9JLH/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XJ9JLH/", "attachments": []}, {"guid": "ffb4f818-0b18-5861-91ae-ecf99dcdfb09", "code": "QXZJ9H", "id": 79117, "logo": null, "date": "2025-09-05T15:35:00+02:00", "start": "15:35", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-79117-the-nix-binary-cache-and-aws", "url": "https://talks.nixcon.org/nixcon-2025/talk/QXZJ9H/", "title": "The Nix Binary Cache and AWS", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Behind the Scenes of `cache.nixos.org`: Scaling Nix\u2019s Binary Cache to Infinity\r\n\r\nThe Nix binary cache is the silent powerhouse of the Nix ecosystem: every day, it fields thousands of requests per second\u2014amounting to nearly 6 billion requests per month!\u2014for NixOS and Nix users worldwide. But what makes it work at scale, how\u2014or why\u2014is its simplicity a virtue, and how does an ongoing partnership between AWS and the Nix Foundation ensure its availability for years to come?\r\n\r\nIn this fireside chat, join Ron (Flox), Tarus (AWS), Tom Bereknyei and moderator Ross (Flox) for a conversation about:\r\n\r\n- What the Nix binary cache actually is\u2026\r\n- \u2026and why it matters for the community, reproducibility, and even the survival of historical software;\r\n- How AWS came to support `cache.nixos.org`\r\n- Why the binary cache\u2019s \u201cdumb\u201d design is a feature, not a bug;\r\n- What goes in the cache?\r\n- Challenges and lessons learned: scaling, cost optimization, and keeping things simple\r\n- Why this partnership is important for the Nix ecosystem\r\n\r\nWhether you\u2019re a builder, a Nix maintainer, a user, or just curious about how open source infra runs at global scale, this conversation will offer insights, anecdotes, and a look at how communities and clouds can support each other.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HLGYLF", "name": "Tarus Balog", "avatar": "https://talks.nixcon.org/media/avatars/HLGYLF_xUsykby.webp", "biography": null, "public_name": "Tarus Balog", "guid": "d607da86-1a50-57c9-ae86-a83428c9a940", "url": "https://talks.nixcon.org/nixcon-2025/speaker/HLGYLF/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/QXZJ9H/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/QXZJ9H/", "attachments": []}, {"guid": "40d0f640-19d9-58b1-ba62-09ede9a47948", "code": "XWQC8U", "id": 79038, "logo": null, "date": "2025-09-05T16:10:00+02:00", "start": "16:10", "duration": "00:45", "room": "Aula (4.101)", "slug": "nixcon-2025-79038-supply-chain-security-panel-discussion", "url": "https://talks.nixcon.org/nixcon-2025/talk/XWQC8U/", "title": "Supply Chain Security Panel Discussion", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Nix is a very promising technology for fundamentally improving supply chain security.\r\nIn some ways its lives up to this promise already, in a lot of ways pieces of the overall puzzle are still missing, fall short in implementation, adoption or UX.\r\n\r\nOur panelists all work on supply chain security related tools and topics in the the Nix ecosystem, which we will use as a starting point to plainly discuss which issues they are trying to address and how they might fit into an overall picture.\r\n\r\nCome join us to find out what we all do and do not see in the overall picture, based on the puzzle pieces we, you or other people in the community are holding.\r\n\r\nOur panelists:\r\n* John Ericson\r\n* [Julien Malka](https://luj.fr)\r\n* Arian van Putten\r\n* Martin Schwaighofer\r\n\r\nModerator:\r\n* Shahar \"Dawn\" Or", "recording_license": "", "do_not_record": false, "persons": [{"code": "HMYGKG", "name": "Martin Schwaighofer", "avatar": "https://talks.nixcon.org/media/avatars/HMYGKG_Upm8TyP.webp", "biography": null, "public_name": "Martin Schwaighofer", "guid": "747e896f-f8d7-5085-aa1c-2b40bf7b5dcf", "url": "https://talks.nixcon.org/nixcon-2025/speaker/HMYGKG/"}, {"code": "QK7SWS", "name": "Arian van Putten", "avatar": null, "biography": "I do NixOS things", "public_name": "Arian van Putten", "guid": "edc70fc3-a886-54fd-a2a6-40a2c5154641", "url": "https://talks.nixcon.org/nixcon-2025/speaker/QK7SWS/"}, {"code": "9DTP9V", "name": "Shahar \"Dawn\" Or", "avatar": "https://talks.nixcon.org/media/avatars/9DTP9V_sbRxRyg.webp", "biography": "Author of the [Full Time Nix](https://fulltimenix.com) podcast and open source contributor ([watch me work](https://www.youtube.com/@molybdenumsoftware))", "public_name": "Shahar \"Dawn\" Or", "guid": "ed7c0a81-a9c5-5e2b-ba36-a21e166294fe", "url": "https://talks.nixcon.org/nixcon-2025/speaker/9DTP9V/"}, {"code": "JSHHAQ", "name": "Julien Malka / Luj", "avatar": "https://talks.nixcon.org/media/avatars/JSHHAQ_XS5uCpv.webp", "biography": "PhD student on software supply chain at T\u00e9l\u00e9com Paris during the day, NixOS contributor at night.\r\n\r\n[https://luj.fr](https://luj.fr)", "public_name": "Julien Malka / Luj", "guid": "2ec4e42c-56b5-5e28-9115-3aab9d49ec35", "url": "https://talks.nixcon.org/nixcon-2025/speaker/JSHHAQ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XWQC8U/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XWQC8U/", "attachments": []}, {"guid": "688ddc1b-7737-5973-9337-dfb3bcb1cbc5", "code": "WDXCBX", "id": 79335, "logo": null, "date": "2025-09-05T17:05:00+02:00", "start": "17:05", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79335-sponsored-lightning-talk-flox", "url": "https://talks.nixcon.org/nixcon-2025/talk/WDXCBX/", "title": "Sponsored Lightning Talk - Flox", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Sponsored Lightning Talk - Flox", "recording_license": "", "do_not_record": false, "persons": [{"code": "9QXT9Y", "name": "Rok Garbas", "avatar": "https://talks.nixcon.org/media/avatars/9QXT9Y_gGSRBBf.webp", "biography": "Rok is an Engineer at Flox.\r\n\r\nWherever he worked, he put users first, either as a Release Engineer at Mozilla or as a consultant at Tweag. UX/DX became the language to \"talk\" to the users. Knowing that communicating the ideas is as important as having the technical skill is what makes Rok stand out. Understanding users and knowing how to talk to them is what brings a smile to Rok's face every day.", "public_name": "Rok Garbas", "guid": "d24ae321-a70b-5fa7-99d2-2c4d1a92b3a4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/9QXT9Y/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/WDXCBX/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/WDXCBX/", "attachments": []}, {"guid": "b310f4e7-9147-5196-813c-4b39fb8c869d", "code": "LXR7DK", "id": 79341, "logo": null, "date": "2025-09-05T17:10:00+02:00", "start": "17:10", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79341-sponsored-lightning-talk-determinate-systems", "url": "https://talks.nixcon.org/nixcon-2025/talk/LXR7DK/", "title": "Sponsored Lightning Talk - Determinate Systems", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Sponsored Lightning Talk - Determinate Systems", "recording_license": "", "do_not_record": false, "persons": [{"code": "78HEKS", "name": "Cole Mickens", "avatar": null, "biography": null, "public_name": "Cole Mickens", "guid": "e050b185-c2a5-566a-a8ae-65bc061fbfb9", "url": "https://talks.nixcon.org/nixcon-2025/speaker/78HEKS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/LXR7DK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/LXR7DK/", "attachments": []}, {"guid": "933fc77c-f0a1-50c7-bb6e-4f7cf3b11a55", "code": "HMKXYP", "id": 74833, "logo": null, "date": "2025-09-05T17:15:00+02:00", "start": "17:15", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-74833-how-i-wish-bazel-had-nix-develop", "url": "https://talks.nixcon.org/nixcon-2025/talk/HMKXYP/", "title": "How I wish Bazel had nix develop", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Nix's package composition model makes developer environments a natural extension of its core abstractions. A simple `shell.nix` declaration combined with `nix develop` provides native tooling access and IDE integration that other build systems struggle to achieve without significant engineering investment.\r\n\r\nAt LinkedIn, I experienced this contrast firsthand while migrating Go repositories to Bazel. I spent six months reverse-engineering Bazel's sandbox internals, writing custom rules to extract SDK paths, generate `direnv` configurations, and create LSP settings files. This enabled developers to use native Go commands via shell and IDE within Bazel workspaces, which proved crucial for broader adoption ([Bazelcon 2024 talk](tinyurl.com/srini-bazelcon-talk) on this topic).\r\n\r\nIn this talk, I'll contrast months of custom engineering against Nix's declarative approach - just a few lines of config that solve the same problem in a manner that's harmonious with the build system.", "recording_license": "", "do_not_record": false, "persons": [{"code": "T3C8QA", "name": "Srini", "avatar": "https://talks.nixcon.org/media/avatars/T3C8QA_oEQJPr1.webp", "biography": "Hi there, I'm Srini. I previously worked at Apple Maps and LinkedIn, primarily in the build systems space. I'm a recent Nix convert (my primary expertise is in Bazel) and I'm looking forward to delving deep into all things nix and being a part of the community!", "public_name": "Srini", "guid": "fe67fb16-58a9-5cc2-8e60-94e1ffe10b69", "url": "https://talks.nixcon.org/nixcon-2025/speaker/T3C8QA/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/HMKXYP/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/HMKXYP/", "attachments": []}, {"guid": "f522f7cd-32f0-56fb-bf9a-dfd1de0288bb", "code": "VP7NYN", "id": 79338, "logo": null, "date": "2025-09-05T17:20:00+02:00", "start": "17:20", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79338-consulting-driven-open-source", "url": "https://talks.nixcon.org/nixcon-2025/talk/VP7NYN/", "title": "Consulting Driven Open Source", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "How consulting companies can help businesses do Open Source. Lessons from practical experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XGGYJH", "name": "Jonas Chevalier (zimbatm)", "avatar": "https://talks.nixcon.org/media/avatars/XGGYJH_k5PUyDS.webp", "biography": "OSS and Nix enthusiast, author of little tools (direnv, treefmt, ...), director of Numtide.", "public_name": "Jonas Chevalier (zimbatm)", "guid": "f8e376a2-6b93-5167-84b8-639a9ce17cb4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/XGGYJH/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/VP7NYN/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/VP7NYN/", "attachments": []}, {"guid": "34ca1f4c-d674-5b2e-abd1-5558cae58a65", "code": "RDSBZN", "id": 79102, "logo": null, "date": "2025-09-05T17:25:00+02:00", "start": "17:25", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79102-ricochets", "url": "https://talks.nixcon.org/nixcon-2025/talk/RDSBZN/", "title": "Ricochets", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "I made a thing to manage the Linux machines of my friends and family: https://sraka.xyz/posts/ricochets.html, it's a hack with a custom NixOS default channel :)", "recording_license": "", "do_not_record": false, "persons": [{"code": "3H9WGK", "name": "Yvan Sraka", "avatar": "https://talks.nixcon.org/media/avatars/3H9WGK_fu7WDWl.webp", "biography": "I hold a master\u2019s degree in mathematics and computer science applied to biology from Sorbonne University in Paris. I discovered C++ programming as a child and have been actively involved in open-source communities ever since. My professional experience includes work in 3D graphics, developer tooling, compilers, and runtime design using Rust and Haskell. I\u2019ve taught systems programming, computer architecture, and DevOps to master\u2019s students, and I\u2019ve also designed algorithm competitions and coding workshops for kids and teens, helping them build small video games. I\u2019m currently based in Belgium, working as a NixOS consultant for Numtide. In my free time, I enjoy biking, hiking, climbing, and cooking.", "public_name": "Yvan Sraka", "guid": "2454aa05-c55a-50e0-a5b1-5e2fedb58815", "url": "https://talks.nixcon.org/nixcon-2025/speaker/3H9WGK/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/RDSBZN/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/RDSBZN/", "attachments": []}, {"guid": "67a69cc6-98fc-553f-8b54-4c4d6363ac0d", "code": "KTXAHT", "id": 79340, "logo": null, "date": "2025-09-05T17:30:00+02:00", "start": "17:30", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79340-sponsored-lightning-talk-cachix", "url": "https://talks.nixcon.org/nixcon-2025/talk/KTXAHT/", "title": "Sponsored Lightning Talk - Cachix", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Sponsored Lightning Talk - Cachix", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQSXAR", "name": "Domen Ko\u017ear", "avatar": "https://talks.nixcon.org/media/avatars/RQSXAR_TFbBgVI.webp", "biography": "I'm mainstreaming Nix using cachix.org and devenv.sh", "public_name": "Domen Ko\u017ear", "guid": "618ca90e-ab98-5edf-9cc9-0234bfd9a69e", "url": "https://talks.nixcon.org/nixcon-2025/speaker/RQSXAR/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/KTXAHT/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/KTXAHT/", "attachments": []}, {"guid": "f58c32c5-ebd7-5086-989d-55fa4c95b758", "code": "3QH3PZ", "id": 79112, "logo": null, "date": "2025-09-05T17:35:00+02:00", "start": "17:35", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79112-jail-nix-a-library-to-easily-jail-your-nixos-derivations-in-bubblewrap", "url": "https://talks.nixcon.org/nixcon-2025/talk/3QH3PZ/", "title": "jail.nix - A library to easily jail your NixOS derivations in Bubblewrap", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Given the amount of software written in memory unsafe languages, and the rise in supply chain attacks, I prefer to run as much software as possible within some kind of security boundary (mostly using bubblewrap and qemu). [Bubblewrap](https://github.com/containers/bubblewrap) is the sandboxing tool at the core of Flatpak, but it is intentionally designed to be very low level.\r\n\r\nUsing bubblewrap, one can write wrappers for every package on their system, but getting the flags right can be error prone, and often lead to annoying debug cycles to get a program to run correctly.\r\n\r\n`jail.nix` is a nix library I have been working on to make wrapping Nix derivations in bubblewrap jails more ergonomic by using higher level combinators to achieve concrete objectives (like giving a program access to the network, or allowing it to render to a Wayland compositor).\r\n\r\nThe library is open source, the source [can be found here](https://git.sr.ht/~alexdavid/jail.nix).\r\n\r\nThis talk will give a tour of the features of jail.nix and how to integrate it with a NixOS configuration.", "recording_license": "", "do_not_record": false, "persons": [{"code": "37L9DK", "name": "Alex David", "avatar": "https://talks.nixcon.org/media/avatars/37L9DK_M8RF1g2.webp", "biography": "Hi, I'm a software developer working at [garnix](https://garnix.io). I've been spending the past few years tinkering with nix in my homelab in my free time.", "public_name": "Alex David", "guid": "38ed96ab-792f-5926-9269-fea6b8c3590b", "url": "https://talks.nixcon.org/nixcon-2025/speaker/37L9DK/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/3QH3PZ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/3QH3PZ/", "attachments": [{"title": "The slides for my talk!", "url": "/media/nixcon-2025/submissions/3QH3PZ/resources/slides_DHO9Lb0.pdf", "type": "related"}]}, {"guid": "7a69d0eb-1e36-5b0a-9e14-718042c10e13", "code": "XSSVLD", "id": 79337, "logo": null, "date": "2025-09-05T17:40:00+02:00", "start": "17:40", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79337-systemd-sysupdate-systemd-repart-nixos-ota-updates", "url": "https://talks.nixcon.org/nixcon-2025/talk/XSSVLD/", "title": "systemd-sysupdate + systemd-repart + Nixos = \u2764\ufe0f OTA Updates", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "This talk is for engineers, architects, and developers building embedded, IoT, or appliance-like Linux systems that need reliability and secure remote updates.\r\n\r\nThis session provides a quick overview of how to construct a robust, A/B-style OTA update mechanism using only features that are already upstreamed in NixOS and systemd.\r\n\r\nWe will explore the synergy of this trio:\r\n\r\n- NixOS: Used as the declarative foundation for building bit-for-bit reproducible, small, hardened, and immutable system images.\r\n- systemd-repart: To define the A/B partitioned disk layout directly from the NixOS configuration itself.\r\n- systemd-sysupdate: As the on-device engine for securely fetching, deploying, and atomically activating a new system version, with automatic rollbacks on boot failure.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KWCVSS", "name": "Jacek Galowicz", "avatar": "https://talks.nixcon.org/media/avatars/KWCVSS_XmtxSV2.webp", "biography": "Jacek Galowicz is the CEO of Nixcademy and Applicative Systems GmbH (DE) and Corp. (US), where he has trained over 400 engineers in Nix and NixOS and helped numerous companies accelerate their adoption of Nix. Before that, Jacek co-founded Cyberus Technology GmbH, where he worked on hypervisor technology and advanced test automation. He has an extensive background in the security and operating systems industries, and as a software engineer, Jacek ported the NixOS integration test driver to Python in 2019. He is also the author of the C++17 STL Cookbook.", "public_name": "Jacek Galowicz", "guid": "9a1f0256-70eb-5e9f-b91c-f3e4bfa3e4a4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/KWCVSS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XSSVLD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XSSVLD/", "attachments": []}, {"guid": "8ffa14dd-db1c-59b0-a839-4cd180cfcdab", "code": "SHJ7FR", "id": 79116, "logo": null, "date": "2025-09-05T17:45:00+02:00", "start": "17:45", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79116-building-a-nix-binary-cache-for-fun-and-profit", "url": "https://talks.nixcon.org/nixcon-2025/talk/SHJ7FR/", "title": "Building a Nix Binary Cache for Fun and Profit*", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "One of the core parts of NixOS is the binary cache, but with limited real-world implementations, there aren't many opportunities to explore and learn the in-depth details of how they work. The speaker, having recently built one, will share some lessons learned, and let everyone know how interesting they can be.\r\n\r\n**Profit not guaranteed", "recording_license": "", "do_not_record": true, "persons": [{"code": "VRS8FD", "name": "@techknowlogick", "avatar": "https://talks.nixcon.org/media/avatars/VRS8FD_unf23Ew.webp", "biography": "Matti has been involved in Open-Source development for many years, and now primarily works on building Gitea, an open-source Git and CI/CD service, and numerous other projects.", "public_name": "@techknowlogick", "guid": "5508ae7a-c472-5c62-968e-2d723c0e71f0", "url": "https://talks.nixcon.org/nixcon-2025/speaker/VRS8FD/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/SHJ7FR/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/SHJ7FR/", "attachments": []}, {"guid": "f224088d-7a66-59fc-824b-8548d9cad37b", "code": "GRXDCW", "id": 74541, "logo": null, "date": "2025-09-05T19:30:00+02:00", "start": "19:30", "duration": "01:00", "room": "Aula (4.101)", "slug": "nixcon-2025-74541-how-to-fix-infinite-recursion", "url": "https://talks.nixcon.org/nixcon-2025/talk/GRXDCW/", "title": "How To Fix Infinite Recursion", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "We welcome you to the first Nix improv gala event. Four candidates from the crowd compete against each other. They each get the same task and have to explain in 1 minute how they solve it \u2013 as entertaining as possible! For example: How do you fix infinite recursion?", "recording_license": "", "do_not_record": true, "persons": [{"code": "SZWFY8", "name": "berber", "avatar": null, "biography": null, "public_name": "berber", "guid": "b80a3022-cd8f-5eec-a626-db8e69d41e2e", "url": "https://talks.nixcon.org/nixcon-2025/speaker/SZWFY8/"}, {"code": "XDAJRS", "name": "lennart", "avatar": null, "biography": null, "public_name": "lennart", "guid": "dad60744-5d08-5b07-bc08-eec22cc6270a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/XDAJRS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/GRXDCW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/GRXDCW/", "attachments": []}], "Lecture Hall (5.002)": [{"guid": "fc84191e-ffde-580c-819b-c12255a71972", "code": "S8SKEG", "id": 78934, "logo": null, "date": "2025-09-05T10:45:00+02:00", "start": "10:45", "duration": "00:45", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78934-what-if-github-actions-were-local-first-and-built-using-nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/S8SKEG/", "title": "What if GitHub Actions were local-first and built using Nix?", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "We're going to dive into examples behind how GitHub Actions can be designed  using Nix,\r\nwhile having little to no difference between local development environment and CI running somewhere else.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQSXAR", "name": "Domen Ko\u017ear", "avatar": "https://talks.nixcon.org/media/avatars/RQSXAR_TFbBgVI.webp", "biography": "I'm mainstreaming Nix using cachix.org and devenv.sh", "public_name": "Domen Ko\u017ear", "guid": "618ca90e-ab98-5edf-9cc9-0234bfd9a69e", "url": "https://talks.nixcon.org/nixcon-2025/speaker/RQSXAR/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/S8SKEG/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/S8SKEG/", "attachments": []}, {"guid": "b7394d88-623a-5f82-b579-0cbc3d49424a", "code": "SNFQ7J", "id": 79070, "logo": null, "date": "2025-09-05T11:40:00+02:00", "start": "11:40", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79070-rewriting-the-hydra-queue-runner-in-rust", "url": "https://talks.nixcon.org/nixcon-2025/talk/SNFQ7J/", "title": "Rewriting the Hydra Queue Runner in Rust", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "The Hydra Queue Runner is a critical component responsible for orchestrating and executing build tasks within the Hydra infrastructure.\r\nIts reliability and efficiency are paramount for our Nix community, serving as a key component of the Nixpkgs infrastructure that builds the world's largest package set.\r\nA significant challenge with the current implementation lies in the communication between the Queue Runner and the builders.\r\nThis system, built on SSH, directly read from and wrote to the running Nix daemon, which imposed a hard limit on connected builders.\r\n\r\nThis talk will begin by explaining the current Hydra CI infrastructure and how Hydra works as a whole, looking at the evaluator, Queue Runner, PostgreSQL, hydra-notify, and hydra-web components and how they interact with one another.\r\nWe will then detail the comprehensive redesign and re-implementation of the Hydra Queue Runner, transitioning from its existing architecture to a robust, high-performance solution built in Rust, specifically to overcome these limitations.\r\nWe will present an overhaul of the remote communication protocol, migrating from the SSH implementation to gRPC, leveraging its benefits for performance, type safety, and interoperability.\r\nThis change also benefits our ability to introduce generic messages unrelated to the Nix protocol, which enables the monitoring of the system utilization of all builders, making scheduling decisions more agile.\r\nFurthermore, we introduced comprehensive tracing capabilities, making the new Queue Runner significantly more debuggable and maintainable.\r\nWe will then dive into the build pipeline, distinguishing between steps and runnables, examining the changes made to the build queues (now handling each platform with a separate queue) and what is needed to resolve a derivation.\r\nLastly, we will present compelling benchmarks demonstrating how these changes have significantly accelerated builds and enabled a substantial increase in the number of concurrently connected machines.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3Y3ESV", "name": "Simon Hauser", "avatar": "https://talks.nixcon.org/media/avatars/3Y3ESV_kUuckaB.webp", "biography": "Software developer at Helsinki Systems GmbH", "public_name": "Simon Hauser", "guid": "3e2921f3-9128-5632-a512-5318e758d8e6", "url": "https://talks.nixcon.org/nixcon-2025/speaker/3Y3ESV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/SNFQ7J/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/SNFQ7J/", "attachments": [{"title": "Slides", "url": "/media/nixcon-2025/submissions/SNFQ7J/resources/nixcon-2025-pr_wajQQ8Z.pdf", "type": "related"}]}, {"guid": "a2ae64a2-a5a9-5429-9821-8115e0c34c85", "code": "MAEMPM", "id": 74291, "logo": null, "date": "2025-09-05T13:30:00+02:00", "start": "13:30", "duration": "00:45", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-74291-you-can-t-spell-devshell-without-hell", "url": "https://talks.nixcon.org/nixcon-2025/talk/MAEMPM/", "title": "You can't spell \"devshell\" without \"hell\"", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Ever wondered how \u201cnix develop\u201d works? What kind of arcane horrors make our reproducible developer environments work? In this talk we\u2019ll begin by explaining how \u201cnix develop\u201d works, then we\u2019ll use that understanding to explore what it looks like to create an improved devshell experience, including improved startup times, extension to shells other than Bash, and adding packages without needing to exit and re-enter the shell. Along the way we\u2019ll discuss some of the cursed idiosyncrasies of different shells, and some of the patterns for working around them. In the end we\u2019ll all need therapy, but we\u2019ll know more about how our shells are conspiring against us and why we should all be using Fish.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PRX9DE", "name": "Zach Mitchell", "avatar": "https://talks.nixcon.org/media/avatars/PRX9DE_B4ATbNf.webp", "biography": "I'm a man of many talents, some of which are useful. I'm an engineer at Flox working on the CLI. I'm also the Official Flox Meme Lord. I did a PhD in physics building femtosecond pulsed lasers and doing quantum mechanics simulations. I did a stint on the Nix Documentation Team. I'm an amateur curler (like the Olympic sport) and Flox sponsored my team. I'm program chair for Planet Nix. I never know where my circus of a life is going to take me next.", "public_name": "Zach Mitchell", "guid": "bff984fc-1c24-5fcb-8c20-cf56dd7b461e", "url": "https://talks.nixcon.org/nixcon-2025/speaker/PRX9DE/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/MAEMPM/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/MAEMPM/", "attachments": []}, {"guid": "43cc301b-8af6-54e2-8eb5-7e163468a1b8", "code": "KX7AMW", "id": 78971, "logo": null, "date": "2025-09-05T14:25:00+02:00", "start": "14:25", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78971-the-road-towards-a-nixos-ui", "url": "https://talks.nixcon.org/nixcon-2025/talk/KX7AMW/", "title": "The Road\u2028 Towards a \u2028NixOS UI", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Imagine a Sim-City-style interface for managing your infrastructure: drag a\r\nmachine onto the field, connect it to a service, and you're done.\r\n\r\nBehind the scenes, the clan.lol project turns that visual layout into the correct\r\nNix modules - automatically configuring machines, managing secrets, and setting\r\nup a mesh VPN.\r\n\r\nIn this presentation we detail: \r\n\r\n- **Visualize and Configure Networks in 3D**\r\n    - A \"Sim City\" inspired 3D-UI to configure your selfhosted network without writing Nix!\r\n\r\n- **Portable Multi-Machine Module System**\r\n    * Network-wide modules that configure multiple machines\r\n    * Support for complex, role based relationships between machines (e.g. client, server)\r\n    * Generation and distribution of secrets via generators\r\n\r\n- **Multi VPN support**\r\n    * Support for running multiple VPNs at once\r\n    * Deployment picks best suitable VPN connection\r\n    * Extensible interface so users can define their own.\r\n\r\n- **Multi-Platform support**\r\n    * Integrated MacOS support with nix-darwin.\r\n    * Service Provisioning support", "recording_license": "", "do_not_record": false, "persons": [{"code": "GMEKD3", "name": "Kenji Berthold", "avatar": "https://talks.nixcon.org/media/avatars/GMEKD3_HtqfXBs.webp", "biography": "a NixOS hacker and freelancer.\r\nMore information at:\r\nhttps://kenji.page/", "public_name": "Kenji Berthold", "guid": "72211c6d-b428-5c2c-98dd-c66ac1bb2f63", "url": "https://talks.nixcon.org/nixcon-2025/speaker/GMEKD3/"}, {"code": "S3GV37", "name": "Qubasa", "avatar": "https://talks.nixcon.org/media/avatars/S3GV37_ifu2RJv.webp", "biography": "Hi I'm  Qubasa, I'm a systems developer and  part of the clan.lol project.\r\nI have a passion for solving complex technical challenges, and Nix  is my tool of choice for managing complexity.", "public_name": "Qubasa", "guid": "57b333a0-f170-54b3-b37a-9f7beaf35cd6", "url": "https://talks.nixcon.org/nixcon-2025/speaker/S3GV37/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/KX7AMW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/KX7AMW/", "attachments": [{"title": "The Road\u2028 Towards a \u2028NixOS UI - Slides", "url": "/media/nixcon-2025/submissions/KX7AMW/resources/clan-nixcon25-_kDTs5kq.pdf", "type": "related"}]}, {"guid": "f28e2069-21fc-5188-ae70-f74c881470de", "code": "3XBNPB", "id": 78677, "logo": null, "date": "2025-09-05T15:35:00+02:00", "start": "15:35", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78677-is-nixos-ready-for-the-cra", "url": "https://talks.nixcon.org/nixcon-2025/talk/3XBNPB/", "title": "Is NixOS ready for the CRA?", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "The Cyber Resilience Act (CRA) is the EU's most important regulation for software in the last decade. While it makes an exception for open-source software and impact NixOS directly, any commercial product that includes NixOS has to comply with the CRA to allow offering in the EU.\r\n\r\nIn this talk, we give insights into the CRA\u2019s requirements, showcase that Nix tooling with its focus on reproducibility is very well positioned for compliance, and point out the unsolved shortcomings. We focus on the update mechanism, SBOM tooling (together with matching CVEs from vulnerability mechanisms), and support durations.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UN8R7J", "name": "Lukas Beierlieb", "avatar": "https://talks.nixcon.org/media/avatars/UN8R7J_cFKikgb.webp", "biography": "Lukas Beierlieb is a software engineer at Cyberus Technology and a PhD student at the University of W\u00fcrzburg, both with a focus on virtualization technology. He does not want to imagine a world in that development systems and environments are not managed with Nix.", "public_name": "Lukas Beierlieb", "guid": "5165469e-1cc7-58ab-8c34-f20e03b578a2", "url": "https://talks.nixcon.org/nixcon-2025/speaker/UN8R7J/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/3XBNPB/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/3XBNPB/", "attachments": []}, {"guid": "a1f6facb-9b1f-5500-b09d-d5daf567ba85", "code": "UPHTPD", "id": 79107, "logo": null, "date": "2025-09-05T16:10:00+02:00", "start": "16:10", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79107-nix-based-development-environments-at-shopify-reprise", "url": "https://talks.nixcon.org/nixcon-2025/talk/UPHTPD/", "title": "Nix-based development environments at Shopify (reprise)", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Over the past year at Shopify we've undergone a lot of changes internally. We moved from cloud development to local development, multirepo to monorepo, and Homebrew / Apt to Nix. Today, the majority of development is being done inside Nix-based environments. Some may recall that Shopify was using Nix back in 2019[1], so what happened?\r\n\r\nThis talk will cover:\r\n* Why that effort stalled\r\n* How devenv reignited interest in Nix\r\n* How we approached incrementally migrating a huge collection of projects\r\n* Where we're at today, and lessons learned along the way\r\n* The many benefits Nix has brought\r\n* The challenges of supporting a large polygot org with developers working at every layer of the stack\r\n* Where we're headed\r\n\r\n[1] https://www.youtube.com/watch?v=rYzjKCIqUVk", "recording_license": "", "do_not_record": false, "persons": [{"code": "QC89HL", "name": "Josh Heinrichs", "avatar": "https://talks.nixcon.org/media/avatars/QC89HL_biDA4Nb.webp", "biography": "Working on developer tooling at Shopify from Saskatoon, Canada.", "public_name": "Josh Heinrichs", "guid": "200298fd-1578-5445-9b1d-fe47950033eb", "url": "https://talks.nixcon.org/nixcon-2025/speaker/QC89HL/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/UPHTPD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/UPHTPD/", "attachments": [{"title": "slides", "url": "/media/nixcon-2025/submissions/UPHTPD/resources/nix-at-shopify_bE3Wdum.pdf", "type": "related"}]}, {"guid": "515d79e1-ae7e-5175-b218-f7e5deb362a9", "code": "FMTH39", "id": 78940, "logo": null, "date": "2025-09-05T16:40:00+02:00", "start": "16:40", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78940-my-first-nix-aha-a-newcomer-s-perspective", "url": "https://talks.nixcon.org/nixcon-2025/talk/FMTH39/", "title": "My first Nix Aha!: A Newcomer\u2019s Perspective", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Abstract:\r\nWhen I first saw a colleague of mine typing \"nix-shell\", I had no idea what it did \u2014 but running it felt like magic. A swirl of \"/nix/store/...\" messages later, a fully working dev environment, with all the right tools and no system mess! Like Alice, I was \u201ccuriouser and curiouser.\u201d\r\n\r\nIn this talk, I\u2019ll share the key \u201caha!\u201d moments from my first few weeks with Nix \u2014 how I came to understand derivations, the Nix store, and pure builds. I\u2019ll walk through the \u201cfrom confusion to clarity\u201d moments that helped me go from feeling lost in a sea of unfamiliar terminology to confidently writing my first Nix expressions. Along the way, I\u2019ll highlight the resources, metaphors, and mental models that made the biggest difference \u2014 and the ones that didn\u2019t.\r\n\r\nThe Nix community is filled with passionate and experienced users, but for newcomers, the learning curve can feel overwhelming. This talk is not a tutorial, but a reflection: a newcomer\u2019s perspective on what it\u2019s like to learn Nix today, what helped me \u201cget it,\u201d and where the community can do more to support others on the same journey. \r\n\r\nTarget Audience:\r\n- Beginners or those who are still wrapping their heads around Nix. \r\n- More experienced users who want to improve the Nix learning experience will also benefit, as they\u2019ll gain a fresh perspective on how to present these concepts.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LGJVRQ", "name": "Kavisha Kumar", "avatar": "https://talks.nixcon.org/media/avatars/LGJVRQ_lJwSrr4.webp", "biography": "Kavisha Kumar is a Bazel Build Architect at ASML. A recent Nix convert, she brings a fresh perspective on what it\u2019s like to learn Nix from scratch. Her journey from confusion to clarity has made her passionate about improving the onboarding experience for newcomers.", "public_name": "Kavisha Kumar", "guid": "cdb77ca8-a21e-508a-a61d-313405432a39", "url": "https://talks.nixcon.org/nixcon-2025/speaker/LGJVRQ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/FMTH39/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/FMTH39/", "attachments": []}, {"guid": "67694328-b187-5f3c-b33c-f8809a7cce2d", "code": "MKJPLZ", "id": 78825, "logo": null, "date": "2025-09-05T17:10:00+02:00", "start": "17:10", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78825-life-without-kubernetes-hosting-mirrors-with-nixos", "url": "https://talks.nixcon.org/nixcon-2025/talk/MKJPLZ/", "title": "Life without Kubernetes: Hosting Mirrors with NixOS", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Kubernetes is good for many machines with complex networking setups, but not that good for a 2-machine one, especially when there's only one maintainer and zero documentation.\r\n\r\nAt [GeekPie](https://github.com/ShanghaitechGeekPie), I've migrated [our mirror infrastructure](https://mirrors.shanghaitech.edu.cn/) to NixOS and in this talk I want to show how Nix helps us achieve more with less code & maintenance.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WZER98", "name": "Sizhe Zhao", "avatar": "https://talks.nixcon.org/media/avatars/WZER98_tGAGUMW.webp", "biography": "Hi, I'm an undergraduate student at ShanghaiTech University and the president of the [GeekPie Association](https://github.com/ShanghaitechGeekPie).\r\nCurrently I'm maintaining the university's mirror infrastructure at <https://mirrors.shanghaitech.edu.cn/> which runs NixOS.\r\nI contribute to Nixpkgs and the ecosystem and I'm also a Summer of Nix 2025 participant.\r\nEarlier the year I've hosted NixOS CN Meetup #1, the first regional conference on Nix in China.", "public_name": "Sizhe Zhao", "guid": "e04d512d-44df-53f3-84e7-3de5aac7a76a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/WZER98/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/MKJPLZ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/MKJPLZ/", "attachments": []}, {"guid": "5aa21df9-bebd-5634-8333-0f6d3e2d6343", "code": "EP7AHE", "id": 78866, "logo": null, "date": "2025-09-05T17:40:00+02:00", "start": "17:40", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78866-what-can-t-be-configured-with-nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/EP7AHE/", "title": "What *can't* be configured with Nix?", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "From a seat at NixCon, it may feel like Nix can do anything, solve any problem, but is that true? It's time to find the limits of configuration with Nix.. if there are any.", "recording_license": "", "do_not_record": true, "persons": [{"code": "CDQRBU", "name": "June Stepp", "avatar": null, "biography": null, "public_name": "June Stepp", "guid": "9ec1de05-6c75-5984-9dfd-84db18083980", "url": "https://talks.nixcon.org/nixcon-2025/speaker/CDQRBU/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/EP7AHE/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/EP7AHE/", "attachments": []}], "Workshop room 1 (4.0114)": [{"guid": "91f26f5a-fb8c-50c3-aee4-9e40cfe44071", "code": "DAAMER", "id": 79118, "logo": null, "date": "2025-09-05T13:30:00+02:00", "start": "13:30", "duration": "01:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-79118-a-journey-into-nix-with-flox-how-to-convince-your-boss-security-department-peers-neighbours", "url": "https://talks.nixcon.org/nixcon-2025/talk/DAAMER/", "title": "A Journey into Nix with Flox (& how to convince your boss, security department, peers, neighbours)", "subtitle": "", "track": null, "type": "Short workshop", "language": "en", "abstract": null, "description": "Ready to bring Nix into your team\u2019s day-to-day? This interactive workshop shows you how Flox bridges the gap between Nix usage and a production-ready workplace\u2014arming you with the tools, tactics, and success stories you need to:\r\n\r\nSell Nix Internally:\r\n\r\nCraft a compelling \u201cwhy Nix?\u201d pitch for engineers, managers, and IT\r\n\r\nOvercome common objections around complexity and onboarding\r\n\r\nUnblock Nix Adoption:\r\n\r\nDefine and share reproducible environments-as-code\u2014no root privileges required\r\n\r\nLeverage Flox\u2019s binary cache to deliver prebuilt packages in minutes\r\n\r\nHands-On Hacking Session:\r\n\r\nScaffold a new Nix-based project using Flox manifests\r\n\r\nDebug and iterate live: \u201cworks for me\u201d guarantees across macOS, Linux, and ARM\r\n\r\nReal-World Wins & Lets Convince Your Boss, Peers, IT/Security Dep:\r\n\r\nExplore case studies from Fortune 500s who adopted the ways of Nix\r\n\r\nLearn best practices for multi-team collaboration, CI/CD integration, and stakeholder buy-in\r\n\r\n\r\n\r\nWhat You\u2019ll Walk Away With:\r\n\r\nA tested playbook for pitching, piloting, and scaling Nix with some Flox help!\r\n\r\nA working Flox+Nix demo project you can show your boss tomorrow\r\n\r\nTemplates for stakeholder presentations, success metrics, and rollout plans\r\n\r\nInsider tips and tricks from engineers who have \u201cbeen there, built that\u201d", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQDQXV", "name": "Tanja Ulianova", "avatar": null, "biography": null, "public_name": "Tanja Ulianova", "guid": "7a0a683d-dd6f-54c9-8bc8-13f08da92712", "url": "https://talks.nixcon.org/nixcon-2025/speaker/HQDQXV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/DAAMER/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/DAAMER/", "attachments": []}, {"guid": "34a37b3c-ea6e-5550-ab9c-1db4a2abe0f4", "code": "SGTUF7", "id": 79086, "logo": null, "date": "2025-09-05T15:00:00+02:00", "start": "15:00", "duration": "02:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-79086-getting-started-with-nix-common-mistakes-and-how-to-dodge-them", "url": "https://talks.nixcon.org/nixcon-2025/talk/SGTUF7/", "title": "Getting Started with Nix: Common Mistakes and How to Dodge Them", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "New to Nix? Want to finally understand what the hype is about\u2014or help someone else get started? This workshop is your gateway into the world of reproducible builds, declarative environments, and dependency sanity.\r\n\r\nDesigned for developers who are curious but haven\u2019t yet made the leap, this hands-on session introduces the core concepts of Nix from the ground up. We\u2019ll walk through installation (yes, including flakes), basic CLI usage, and the Nix language fundamentals, all with plenty of time for experimentation and Q&A. You\u2019ll get your first taste of what makes Nix different\u2014from the store model to derivations\u2014and how it can change the way you develop, test, and deploy software.\r\n\r\nExpect a collaborative, beginner-friendly environment where questions are welcome and real-world use cases are front and center. Whether you\u2019re a solo hacker, part of a team trying to reduce \u201cit works on my machine\u201d problems, or just Nix-curious, this workshop will help you build confidence and momentum for your Nix journey.\r\n\r\nBring your laptop, a terminal, and an open mind. You might just leave with a new favorite tool\u2014and a deeper appreciation for the Nix ethos.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9QXT9Y", "name": "Rok Garbas", "avatar": "https://talks.nixcon.org/media/avatars/9QXT9Y_gGSRBBf.webp", "biography": "Rok is an Engineer at Flox.\r\n\r\nWherever he worked, he put users first, either as a Release Engineer at Mozilla or as a consultant at Tweag. UX/DX became the language to \"talk\" to the users. Knowing that communicating the ideas is as important as having the technical skill is what makes Rok stand out. Understanding users and knowing how to talk to them is what brings a smile to Rok's face every day.", "public_name": "Rok Garbas", "guid": "d24ae321-a70b-5fa7-99d2-2c4d1a92b3a4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/9QXT9Y/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/SGTUF7/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/SGTUF7/", "attachments": []}]}}, {"index": 2, "date": "2025-09-06", "day_start": "2025-09-06T04:00:00+02:00", "day_end": "2025-09-07T03:59:00+02:00", "rooms": {"Aula (4.101)": [{"guid": "5ec683b9-0b89-55b0-885b-454ac63c7ece", "code": "XVBSXD", "id": 81384, "logo": null, "date": "2025-09-06T10:45:00+02:00", "start": "10:45", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-81384-saturday-opening-ceremony", "url": "https://talks.nixcon.org/nixcon-2025/talk/XVBSXD/", "title": "Saturday Opening Ceremony", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Opening day 2", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XVBSXD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XVBSXD/", "attachments": []}, {"guid": "8406df54-a04e-5e11-90bc-c95d3d1c0cf1", "code": "GCGE7K", "id": 79111, "logo": null, "date": "2025-09-06T11:00:00+02:00", "start": "11:00", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-79111-the-bikes-have-been-shed-the-official-nix-formatter", "url": "https://talks.nixcon.org/nixcon-2025/talk/GCGE7K/", "title": "The bikes have been shed: The official Nix formatter", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "The history of how the [official Nix formatter](https://github.com/NixOS/nixfmt) was successfully established, along with its struggles and lessons.\r\n\r\nWe go over:\r\n- How Nix didn't have a formatter for its first 15 years before the first ones were written\r\n- How an RFC to standardise the formatter took 3 years, 50 meetings and 600 comments to get accepted\r\n- How one of the most active codebases with 40k Nix files and 15k monthly commits got fully reformatted\r\n- What problems still exist and what the future of Nix formatting holds", "recording_license": "", "do_not_record": false, "persons": [{"code": "XGFLV9", "name": "Silvan Mosberger", "avatar": "https://talks.nixcon.org/media/avatars/XGFLV9_GHrbKd7.webp", "biography": "Joined the Nix community in 2017 and has gotten increasingly more involved ever since. Joined the [Nix Group at Tweag](https://www.tweag.io/group/nix/) in 2021. Ran the weekly [Nix Hour](https://www.youtube.com/playlist?list=PLyzwHTVJlRc8yjlx4VR4LU5A5O44og9in) from 2022 to 2024. Was part of the NCA to establish a [Nix governance constitution](https://github.com/NixOS/org/blob/main/doc/constitution.md) and subsequently run the first Steering Committee election. A [NixOS Foundation board](https://nixos.org/community/teams/foundation-board/) member since 2025. One of the main organisers of this years NixCon.", "public_name": "Silvan Mosberger", "guid": "4f72ed10-15b5-5b0d-a685-2e5d89d17a3d", "url": "https://talks.nixcon.org/nixcon-2025/speaker/XGFLV9/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/GCGE7K/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/GCGE7K/", "attachments": []}, {"guid": "a242207e-afda-5515-b494-1e2fd603188a", "code": "ZAHLMN", "id": 79213, "logo": null, "date": "2025-09-06T11:35:00+02:00", "start": "11:35", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-79213-derivationbuilder-extracting-nix-s-sandboxing-logic-for-library-use", "url": "https://talks.nixcon.org/nixcon-2025/talk/ZAHLMN/", "title": "DerivationBuilder, extracting Nix's sandboxing logic for library use", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "The most subtle part of Nix's store layer is the exact logic used to sandbox derivations. Mess up the daemon protocol, Local Store SQLite usage, drv file parsing, or other such things, and things should blow up immediately. [Fail Fast](https://en.wikipedia.org/wiki/Fail-fast_system) helps a lot! Mess up the sandboxing logic, however, and you might not notice for a while until you try to build just the right sort of derivation.\r\n\r\nFor most of Nix's history, the sandboxing logic has been embedded within the build scheduling logic (which builds or downloades dependencies) thus entangling it with hefty other machinery that makes all sorts of assumption about how IO, concurrency, etc. should work. In other words, it was not written in a way that made it easy to use from any other program but Nix itself. In the last few months, however, we've finally untangled it and moved it into its own component, and then reworked it to give it a simple interface for FFI. In this talk, we'll briefly go over that work, and then demonstrate its use a simple example executable written in a friendlier language than C++.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NEVY87", "name": "John Ericson", "avatar": null, "biography": null, "public_name": "John Ericson", "guid": "5677d7a0-1bc2-510d-b77e-ff2f984a5c32", "url": "https://talks.nixcon.org/nixcon-2025/speaker/NEVY87/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/ZAHLMN/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/ZAHLMN/", "attachments": []}, {"guid": "f3f0fdf2-811c-530a-bf71-5111fda0bf12", "code": "RZPTFK", "id": 79067, "logo": null, "date": "2025-09-06T13:30:00+02:00", "start": "13:30", "duration": "00:45", "room": "Aula (4.101)", "slug": "nixcon-2025-79067-steering-committee-foundation-board-panel", "url": "https://talks.nixcon.org/nixcon-2025/talk/RZPTFK/", "title": "Steering Committee & Foundation Board Panel", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Discussion & Q&A", "recording_license": "", "do_not_record": false, "persons": [{"code": "GPNZBZ", "name": "NixOS Foundation board", "avatar": null, "biography": "-", "public_name": "NixOS Foundation board", "guid": "9e9c90fd-ec2a-5e4c-8ffa-8452ba2fd9b8", "url": "https://talks.nixcon.org/nixcon-2025/speaker/GPNZBZ/"}, {"code": "XJUUKE", "name": "Nix Steering Committee", "avatar": null, "biography": null, "public_name": "Nix Steering Committee", "guid": "2778be23-a61b-59d5-8cbe-3c9fd39f04a6", "url": "https://talks.nixcon.org/nixcon-2025/speaker/XJUUKE/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/RZPTFK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/RZPTFK/", "attachments": []}, {"guid": "00ea9c43-4bd8-561f-bf86-7f123148d132", "code": "RJSMCA", "id": 78838, "logo": null, "date": "2025-09-06T14:25:00+02:00", "start": "14:25", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-78838-garn-a-faster-friendlier-nix-in-typescript", "url": "https://talks.nixcon.org/nixcon-2025/talk/RJSMCA/", "title": "garn: A Faster, Friendlier Nix in TypeScript", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Nix is a powerful tool, but it also comes with some well-known problems: a steep learning curve, bad error messages, and slow evaluation. What if we could solve these three problems in one stroke?\r\n\r\ngarn is an experiment in doing just that. With garn, you define derivations with TypeScript instead of in the Nix language. TypeScript is familiar to most developers, well-documented, and supported by rich editor tooling - thus lowering the learning barrier. And instead of stack traces, you mostly get (much nicer) type errors. \r\n\r\ngarn also rethinks the CLI, clarifying the core user-facing concepts in Nix, and how they relate to one another. What *exactly* is a devshell? A check? A NixOS configuration? What operations make sense with them? By thinking of these as first-class objects instead of \"just derivations\", garn makes the UX more approachable, and more powerful.\r\n\r\nThe currently-released version of garn generates Nix code, which means we still incur the cost of (often slow) Nix evaluation. But we are working on a second version which ditches Nix evaluation altogether, and uses Nix only to build .drv files. This opens the door to substantial speed improvements, with techniques such as pre-evaluating Nix (FFI) code, caching evaluation in a finer-grained way, async IFD, and even using WASM as an alternative to IFD. \r\n\r\nThis talk will show how garn works both above and under the hood. It's aimed at anyone interested in making Nix faster and more accessible.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SXAW7X", "name": "Julian Kirsten Arni", "avatar": "https://talks.nixcon.org/media/avatars/SXAW7X_DFcXExB.webp", "biography": "Julian was born in Brazil, but has lived in India, the US, Germany and now Switzerland. He is the CEO of garnix; prior to that, he variously cowrote the Haskell servant web framework, worked at a newspaper, started but never finished a philosophy PhD, and was Brazilian chess champion under 16.", "public_name": "Julian Kirsten Arni", "guid": "f847fda1-ff3c-5fe7-ab28-5776b3a234e1", "url": "https://talks.nixcon.org/nixcon-2025/speaker/SXAW7X/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/RJSMCA/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/RJSMCA/", "attachments": []}, {"guid": "fd6937f2-9993-56ad-9a63-80831aa54d77", "code": "RF93ZE", "id": 79124, "logo": null, "date": "2025-09-06T15:00:00+02:00", "start": "15:00", "duration": "00:25", "room": "Aula (4.101)", "slug": "nixcon-2025-79124-how-nixos-is-built-from-pull-request-to-your-nix-store", "url": "https://talks.nixcon.org/nixcon-2025/talk/RF93ZE/", "title": "How NixOS is built: From Pull Request to your `/nix/store`", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Let's follow the lifecycle of a change in Nixpkgs; from opening the Pull Request until the change makes it our local `/nix/store`. We'll explore all the CI systems involved in this process, how they interact, where and how they're defined in our codebases, and finally the security implications of each step.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SZAJPG", "name": "Dionysis Grigoropoulos", "avatar": "https://talks.nixcon.org/media/avatars/SZAJPG_u3DDJzF.webp", "biography": "SRE by trade, but my interests lie in security, decentralization, radio communications, self-hosting and automation.\r\nFOSS contributor to various projects, blog available at https://blog.erethon.com/, recently fell in love with NixOS.", "public_name": "Dionysis Grigoropoulos", "guid": "69742f03-dad7-5e6b-b496-0f47cdef3b90", "url": "https://talks.nixcon.org/nixcon-2025/speaker/SZAJPG/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/RF93ZE/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/RF93ZE/", "attachments": []}, {"guid": "fe0976c4-7245-592a-8ad0-85cb5a0b4235", "code": "Q8VUKL", "id": 73840, "logo": null, "date": "2025-09-06T15:35:00+02:00", "start": "15:35", "duration": "00:20", "room": "Aula (4.101)", "slug": "nixcon-2025-73840-finix-an-experimental-os-featuring-finit-as-pid-1-to-explore-the-nixos-design-space", "url": "https://talks.nixcon.org/nixcon-2025/talk/Q8VUKL/", "title": "finix - an experimental os, featuring finit as pid 1, to explore the NixOS design space", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "NixOS is a remarkably flexible and powerful operating system, but its stability and scale can make it a challenging environment for exploring unconventional ideas. finix is an experimental Nix-based OS I built to break free from some of the constraints of upstream NixOS \u2014 a fully functional, Nix-built system that embraces rapid and bold experimentation over stability.\r\n\r\nThis talk will walk through how I built finix, how I reuse much of NixOS\u2019s scaffolding, and why I chose to try a different init system, finit. But more than the implementation details, I want to share how having a small, purpose-built codebase has created space to rapidly prototype ideas \u2014 like alternative service frameworks or minimal module sets \u2014 and see what works. finix isn\u2019t meant to replace anything, but it could serve as a useful place to explore concepts that might one day feed back into the broader NixOS ecosystem, or at least help us think differently about how it\u2019s designed.\r\n\r\nBeyond finix itself, I\u2019d like to use this talk to advocate for a more diverse ecosystem of sibling projects in the Nix community \u2014 especially to better support efforts like the Nix-based BSD project. Valuable ideas don\u2019t always need to go upstream to have an impact.\r\n\r\nThough built for experimentation, I run finix as my daily driver \u2014 and on my laptop, it\u2019s just as smooth and capable as NixOS. That reliability makes it a practical foundation for trying out new ideas in real-world use, and it\u2019s convinced me that we need more room for experiments like this \u2014 and more space for alternative perspectives in our community.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RCZQRA", "name": "aanderse", "avatar": "https://talks.nixcon.org/media/avatars/RCZQRA_KKZ6Ixi.webp", "biography": "Interested in all things nix.", "public_name": "aanderse", "guid": "395fdd0b-8c9a-59ae-8131-65197689d0f0", "url": "https://talks.nixcon.org/nixcon-2025/speaker/RCZQRA/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/Q8VUKL/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/Q8VUKL/", "attachments": []}, {"guid": "270d66eb-3d96-5360-8752-a92315f842a9", "code": "CPF8EH", "id": 78764, "logo": null, "date": "2025-09-06T16:05:00+02:00", "start": "16:05", "duration": "00:20", "room": "Aula (4.101)", "slug": "nixcon-2025-78764-when-not-to-nix-working-with-external-config-and-sops-nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/CPF8EH/", "title": "When Not to Nix: Working with External Config and SOPS Nix", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Nix has got so many bells and whistles to meet most of the requirements, staying declarative with modularised setup to allow code reuse. However, this comes with a bit of a challenge for those who are starting the Nix journey -- it can be quite complex, or at least so does it seem.\r\n\r\nThis talk focuses on some simpler approaches to use separate non-Nix files such as JSON, YAML and/or TOML for the configuration management. There are some gotchas around using file content, file as path, and potentially mixing and matching with Nix managed configs. The integration with other tools such as SOPS Nix will also be an interesting mix, where it is simpler to create a separate config file and substitute secret information with SOPS.\r\n\r\nOnce you know the tools and solutions of not using Nix to get started, the Nix journey will be an easier one to get started with, and perhaps actually lead you to further Nix usage for areas where Nix language makes it easier.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KPM9EB", "name": "Ryota", "avatar": "https://talks.nixcon.org/media/avatars/KPM9EB_Iu6bic9.webp", "biography": "Ryota has been immersed in Nix ecosystem for the past few years, starting with macOS originally, now to run NixOS for his main machine. In daytime he works as software engineer mainly focusing on Cloud Native ecosystem and solutions, and at night, he tinkers with Nix and Emacs.", "public_name": "Ryota", "guid": "a55bea00-493a-5bbb-8af0-df50cc74fb2a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/KPM9EB/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/CPF8EH/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/CPF8EH/", "attachments": []}, {"guid": "9bfba658-88b3-5271-b243-6e53accf9948", "code": "QZGSVN", "id": 78830, "logo": null, "date": "2025-09-06T16:35:00+02:00", "start": "16:35", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-78830-novacustom-coreboot-laptops-and-mini-pcs-focused-on-privacy-and-customisation", "url": "https://talks.nixcon.org/nixcon-2025/talk/QZGSVN/", "title": "NovaCustom: coreboot laptops and mini PCs, focused on privacy and customisation", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "This year, NovaCustom is a Silver Sponsor of NixCon25!\r\n\r\nBut did you ever hear of us?\r\n\r\nNovaCustom is a custom laptop supplier from the Netherlands. We provide laptops and mini PCs with Dasharo coreboot open source firmware. We have a strong focus on security, privacy protection and customisation. So(,) similar to NixOS. I guess these values are in our Dutch roots!\r\n\r\nAlongside this lightning talk, we invite you to visit our stand during NixCon25 on Saturday, the 6th of September. Here, we will showcase our V54 and V56 laptop Series (preinstalled with NixOS, what else?), as well as our Nuc BOX mini PC.\r\n\r\nWe are joining NixCon25 to see how we can strengthen the compatibility between NovaCustom computers and NixOS. Additionally, we are looking forward to get in touch with anyone for further discussions about hardware, firmware and software.\r\n\r\nDo we see you in Rapperswil-Jona? \ud83c\udde8\ud83c\udded", "recording_license": "", "do_not_record": false, "persons": [{"code": "GDTNZT", "name": "Wessel klein Snakenborg - NovaCustom", "avatar": "https://talks.nixcon.org/media/avatars/GDTNZT_a2NAIPy.webp", "biography": "Wessel Klein Snakenborg is passionate about technology since childhood. He launched NovaCustom in 2015, crafting tailor-made laptops with privacy and security in mind. With a focus on user-friendliness, NovaCustom continues to redefine the laptop experience, led by Wessel's commitment to innovation and collaboration.", "public_name": "Wessel klein Snakenborg - NovaCustom", "guid": "08e92919-54df-5d93-80f4-42a5d3c0a954", "url": "https://talks.nixcon.org/nixcon-2025/speaker/GDTNZT/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/QZGSVN/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/QZGSVN/", "attachments": []}, {"guid": "2fe9a802-eeaa-5345-a3a6-ba1592fa8f09", "code": "8DMXUU", "id": 79342, "logo": null, "date": "2025-09-06T16:40:00+02:00", "start": "16:40", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79342-how-jane-street-does-distributed-nix-builds", "url": "https://talks.nixcon.org/nixcon-2025/talk/8DMXUU/", "title": "How Jane Street does distributed Nix builds", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Sponsored Lightning Talk - JaneStreet", "recording_license": "", "do_not_record": false, "persons": [{"code": "CDW7KK", "name": "Aspen Smith", "avatar": null, "biography": null, "public_name": "Aspen Smith", "guid": "63283f21-fe25-5551-88dc-f46792917ebc", "url": "https://talks.nixcon.org/nixcon-2025/speaker/CDW7KK/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/8DMXUU/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/8DMXUU/", "attachments": []}, {"guid": "d0a63502-354d-55c1-9100-454baedc90fe", "code": "FBZBUS", "id": 79125, "logo": null, "date": "2025-09-06T16:45:00+02:00", "start": "16:45", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79125-share-your-daemons-with-your-peers", "url": "https://talks.nixcon.org/nixcon-2025/talk/FBZBUS/", "title": "Share your daemons with your peers", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "The `ssh-ng` store implementation allows connecting to remote daemons over ssh.\r\nHowever, between server management, key exchanges, and device discovery, SSH is not the most user friendly.\r\nUnfortunately `ssh-ng` is also the only store implementation for active remotes built into nix.\r\n\r\nLet's ignore that fact and forward a remote daemon via P2P instead.\r\nWhy would you do this?\r\nDoes this work?\r\nAnd what can we learn from it?\r\n\r\nThis talk might answer any or all of that.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YZ7XZS", "name": "Yannik Sander", "avatar": "https://talks.nixcon.org/media/avatars/YZ7XZS_SWKRgDN.webp", "biography": "Building with nix since before the pandemic, brought flake support to search.nixos.org, contribute to Nix and now aim to make the power of Nix more accessible to people who have something else to do.", "public_name": "Yannik Sander", "guid": "67b3272c-4060-58cf-b06c-77196ee93c1f", "url": "https://talks.nixcon.org/nixcon-2025/speaker/YZ7XZS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/FBZBUS/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/FBZBUS/", "attachments": []}, {"guid": "1482ed77-3aa5-53ef-8a12-a1c06b2b1585", "code": "FHMLKZ", "id": 79096, "logo": null, "date": "2025-09-06T16:50:00+02:00", "start": "16:50", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79096-nixci-demo", "url": "https://talks.nixcon.org/nixcon-2025/talk/FHMLKZ/", "title": "NixCI Demo", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "In this demo I will demo https://nix-ci.com/ to showcase how Nix can give us zero-config locally reproducible CI.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JNUVTH", "name": "syd", "avatar": "https://talks.nixcon.org/media/avatars/JNUVTH_Dr2bLKR.webp", "biography": "Long-time advocate for building software that works.\r\nCurrently building https://nix-ci.com.", "public_name": "syd", "guid": "1dc0465c-3b2b-5307-8be0-17189a9b9037", "url": "https://talks.nixcon.org/nixcon-2025/speaker/JNUVTH/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/FHMLKZ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/FHMLKZ/", "attachments": []}, {"guid": "a4a2481e-7a3a-5d93-b262-071ab53dedbc", "code": "X9RTAR", "id": 79343, "logo": null, "date": "2025-09-06T16:55:00+02:00", "start": "16:55", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79343-nix-ninja-incremental-builds-using-dynamic-derivations", "url": "https://talks.nixcon.org/nixcon-2025/talk/X9RTAR/", "title": "Nix Ninja \u2013 Incremental builds using dynamic derivations", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Nix builds packages from sources as monolithic units \u2013 if you change one source file, Nix rebuilds the entire package from scratch. We open-sourced nix-ninja which leverages the experimental \u201cdynamic derivations\u201d feature to bring compilation-unit level granularity to Nix builds.\r\n\r\nWe target ninja build files, a common format for describing build graphs used by popular build systems like CMake and meson. This means existing CMake/meson projects can use nix-ninja in place of a regular ninja binary to incrementally build using Nix as a backend.\r\n\r\nNix-ninja can compile CppNix today, but we\u2019re still very early in development. I\u2019d like to quickly introduce the project and inspire more interest in dynamic derivations.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8ZBCDA", "name": "Edgar Lee", "avatar": "https://talks.nixcon.org/media/avatars/8ZBCDA_KVIn77e.webp", "biography": null, "public_name": "Edgar Lee", "guid": "4259f797-b863-5487-8230-d53ed6badcd3", "url": "https://talks.nixcon.org/nixcon-2025/speaker/8ZBCDA/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/X9RTAR/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/X9RTAR/", "attachments": []}, {"guid": "0be886b5-f7c2-55dc-a011-8a712cf83481", "code": "WNQEA8", "id": 78563, "logo": null, "date": "2025-09-06T17:00:00+02:00", "start": "17:00", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-78563-recreational-receipt-printing", "url": "https://talks.nixcon.org/nixcon-2025/talk/WNQEA8/", "title": "Recreational Receipt Printing", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "I bought a receipt printer on eBay for $50, and it is one of the best purchases I've ever made. Here's how I packaged the drivers for Nix, how I legitimately use it in my every day life, and some significantly sillier Nix-related uses.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KG7QPF", "name": "Lillith \"Infinidoge\"", "avatar": null, "biography": "She/Her\r\n\r\nProgrammer and CS student at Purdue University, spending way too much time on the internet.\r\nI found Nix and NixOS late 2020/early 2021 and have been obsessed ever since.\r\nI'm also the one with the receipt printer.", "public_name": "Lillith \"Infinidoge\"", "guid": "c66e2339-1332-5b2e-a2b4-b4e70e82c177", "url": "https://talks.nixcon.org/nixcon-2025/speaker/KG7QPF/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/WNQEA8/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/WNQEA8/", "attachments": []}, {"guid": "71c5948a-b9db-56d7-b970-5407af44f996", "code": "XYRRBF", "id": 79344, "logo": null, "date": "2025-09-06T17:05:00+02:00", "start": "17:05", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79344-expressvpn-nix-securing-privacy-at-scale", "url": "https://talks.nixcon.org/nixcon-2025/talk/XYRRBF/", "title": "ExpressVPN & Nix: Securing Privacy at Scale", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Come join our Nix world domination plans inside ExpressVPN!\r\n\r\nMuch of the production pipelines for Lightway (our custom VPN protocol) and TrustedServer (our in-memory server architecture) are already there, but will Nix one-up our game?\r\n\r\nMy verdict is yes :D", "recording_license": "", "do_not_record": false, "persons": [{"code": "ED9AT3", "name": "Samuel Tam (@usertam)", "avatar": "https://talks.nixcon.org/media/avatars/ED9AT3_Vmit5gm.webp", "biography": "Just your everyday nixpkgs enjoyer maintaining some packages. Now working in ExpressVPN and specifically on TrustedServer, our in-memory server OS. Besides kicking off initiatives and the causal chores, always dreaming of how to sparkle in a little Nix to make things look fancier.", "public_name": "Samuel Tam (@usertam)", "guid": "9af803fb-a5a1-5cfe-94e3-8207b01fd3de", "url": "https://talks.nixcon.org/nixcon-2025/speaker/ED9AT3/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XYRRBF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XYRRBF/", "attachments": [{"title": "PDF Slides v2", "url": "/media/nixcon-2025/submissions/XYRRBF/resources/NixCon_2025_Sl_8oE3eml.pdf", "type": "related"}, {"title": "PPTX Slides v2", "url": "/media/nixcon-2025/submissions/XYRRBF/resources/NixCon_2025_S_dIP6x5w.pptx", "type": "related"}]}, {"guid": "c5a2c1d1-f819-5413-bea6-c68c137164f8", "code": "BABGSX", "id": 75779, "logo": null, "date": "2025-09-06T17:10:00+02:00", "start": "17:10", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-75779-agenix-shell-secrets-in-your-flake-s-shells-the-nix-way", "url": "https://talks.nixcon.org/nixcon-2025/talk/BABGSX/", "title": "agenix-shell: secrets in your flake's shells, the Nix Way", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Leveraging `age` and `agenix`, this project makes it easy to inject secret-containing environment variables into your flake-based `devShells`.\r\n\r\nIt simplifies onboarding for new developers by enabling secure secret sharing, and helps make projects more self-contained by removing the need for external secrets managers.\r\n\r\nhttps://github.com/aciceri/agenix-shell", "recording_license": "", "do_not_record": false, "persons": [{"code": "WJH7NG", "name": "Andrea Ciceri", "avatar": "https://talks.nixcon.org/media/avatars/WJH7NG_xAhuvks.webp", "biography": "Hi there! I've been passionate about Nix for over 6 years, actively contributing to the community while using it daily in my work. I currently work as a consultant specializing in DevOps solutions for the blockchain world (Ethereum and Cardano), though I often find myself diving into full-stack development and smart contracts as well.\r\n\r\nI've been a Linux user since forever and practically live in Emacs. I have a long-standing love affair with Haskell that I keep deepening, and in the past year I've also started exploring Rust, which is winning me over more and more.\r\n\r\nMy GitHub: https://github.com/aciceri/\r\nCV & portfolio: https://cv.aciceri.dev\r\nMy technical thoughts: https://blog.aciceri.dev/\r\nMastodon: https://functional.cafe/@aciceri", "public_name": "Andrea Ciceri", "guid": "df6f4375-7b6d-5a8c-b557-92120e8d0033", "url": "https://talks.nixcon.org/nixcon-2025/speaker/WJH7NG/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/BABGSX/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/BABGSX/", "attachments": []}, {"guid": "9176332c-d2cb-5317-9ecf-131296cdfaa8", "code": "PUWGED", "id": 79336, "logo": null, "date": "2025-09-06T17:15:00+02:00", "start": "17:15", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79336-maintaining-nixos-stability-for-years-cra-compliance-without-re-certification", "url": "https://talks.nixcon.org/nixcon-2025/talk/PUWGED/", "title": "Maintaining NixOS Stability for Years: CRA Compliance without Re-Certification", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "Shipping NixOS into products presents two challenges: the EU Cyber Resilience Act demands years of vulnerability management, SBOMs, and \u201esecurity by design.\u201c Additionally, every OS upgrade can necessitate costly re-certifications.\r\n\r\nA pragmatic solution is to offer long-term support for specific NixOS releases (24.05, 26.05, \u2026) and maintain a minimal, test-gated backport stream. This approach aligns with CRA obligations and avoids the re-certification cycle associated with frequent release changes.\r\n\r\nThis approach is packaged as Ctrl-OS (Cyberus Technology Resilient Linux): a community-oriented NixOS LTS with a five-year support period, CRA-readiness, CVE tracking with continuous patch delivery, and SLAs with guaranteed fix timelines.\r\n\r\nThe key takeaways are vendor-agnostic: strategies for mitigating re-certification risk and demonstrating security maintenance while adhering to the Nix philosophy.\r\n\r\nFurthermore, we will outline our plans for upstreaming and how to participate in the Ctrl-OS Open Beta to contribute to the development of a sustainable LTS narrative for NixOS.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PUUCFM", "name": "Florian Pester", "avatar": null, "biography": null, "public_name": "Florian Pester", "guid": "939eb070-2fc6-517d-a9d1-5456819cf044", "url": "https://talks.nixcon.org/nixcon-2025/speaker/PUUCFM/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/PUWGED/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/PUWGED/", "attachments": [{"title": "Slides", "url": "/media/nixcon-2025/submissions/PUWGED/resources/nixcon-break-s_ispkjqH.pdf", "type": "related"}]}, {"guid": "211d47c2-045a-5ce1-a084-c7a40f6dfb45", "code": "XSRZH8", "id": 79061, "logo": null, "date": "2025-09-06T17:20:00+02:00", "start": "17:20", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79061-nix-in-the-wild", "url": "https://talks.nixcon.org/nixcon-2025/talk/XSRZH8/", "title": "Nix in the Wild", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "In this talk, we\u2019ll share lessons from real teams using Nix in the wild: from startups building AI workflows to large orgs managing cloud infrastructure. Based on a series of interviews and stories, we\u2019ll cover what\u2019s working, what\u2019s not, and how teams are making Nix part of their day-to-day development.\r\n\r\nWe\u2019ll talk about:\r\n* Why teams decide to use Nix\r\n* How they roll it out across engineering\r\n* Common challenges and how people solve them\r\n* Real-world examples of Nix in CI, AI, and production environments\r\n\r\nIf you\u2019ve ever wondered what it\u2019s like to bring Nix to work\u2014this talk will give you a clear, honest look.", "recording_license": "", "do_not_record": false, "persons": [{"code": "B8XMSM", "name": "Ross Turk", "avatar": "https://talks.nixcon.org/media/avatars/B8XMSM_fYO5bya.webp", "biography": "Ross Turk is head of marketing and devrel at Flox. Ross brings more than 20 years of experience creating software, managing complex IT systems, and helping companies understand and serve developers.", "public_name": "Ross Turk", "guid": "16493231-6bc9-5309-851e-c240067471d3", "url": "https://talks.nixcon.org/nixcon-2025/speaker/B8XMSM/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/XSRZH8/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/XSRZH8/", "attachments": []}, {"guid": "e80eedbe-ebac-5af3-a9d7-d19bcd285851", "code": "ZUJADF", "id": 79339, "logo": null, "date": "2025-09-06T17:25:00+02:00", "start": "17:25", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79339-what-is-clan", "url": "https://talks.nixcon.org/nixcon-2025/talk/ZUJADF/", "title": "What is Clan?", "subtitle": "", "track": "Sponsored", "type": "Lightning talk", "language": "en", "abstract": null, "description": "A brief introduction to the Clan project and its goals \r\n\r\nhttps://clan.lol", "recording_license": "", "do_not_record": false, "persons": [{"code": "DV9PRU", "name": "Brian McGee", "avatar": "https://talks.nixcon.org/media/avatars/DV9PRU_lAjxhL1.webp", "biography": null, "public_name": "Brian McGee", "guid": "5ac1a726-faa6-5eb1-9d1f-0e4f1e016f3a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/DV9PRU/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/ZUJADF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/ZUJADF/", "attachments": [{"title": "Single slide to display during the talk", "url": "/media/nixcon-2025/submissions/ZUJADF/resources/clan-nix-con_MlZVbZH.png", "type": "related"}]}, {"guid": "d0772566-d59c-597d-b0bd-959a69091376", "code": "TQSJBE", "id": 79119, "logo": null, "date": "2025-09-06T17:30:00+02:00", "start": "17:30", "duration": "00:05", "room": "Aula (4.101)", "slug": "nixcon-2025-79119-styx-faster-substitution-less-disk-space", "url": "https://talks.nixcon.org/nixcon-2025/talk/TQSJBE/", "title": "Styx: Faster substitution, less disk space", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "I pushed a simple question\u2014how fast can I make NixOS updates\u2014way too far, and came up with something slightly crazy.\r\n\r\nThe result combines various technologies to deduplicate data in a Nix store both on disk and over the network, add differential compression, and also enable on-demand fetching, without compromising system performance.\r\n\r\nI'll describe the ideas behind the system, trade-offs, and performance numbers.", "recording_license": "", "do_not_record": true, "persons": [{"code": "LUFTYA", "name": "David Reiss", "avatar": "https://talks.nixcon.org/media/avatars/LUFTYA_5B6K9Lw.webp", "biography": "Nix enthusiast", "public_name": "David Reiss", "guid": "a243750a-0bb0-585d-a434-7bd782437d5b", "url": "https://talks.nixcon.org/nixcon-2025/speaker/LUFTYA/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/TQSJBE/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/TQSJBE/", "attachments": []}, {"guid": "3347e630-6dd6-5b0d-9715-69332387956f", "code": "TEPUWK", "id": 80826, "logo": null, "date": "2025-09-06T17:45:00+02:00", "start": "17:45", "duration": "00:15", "room": "Aula (4.101)", "slug": "nixcon-2025-80826-closing-ceremony", "url": "https://talks.nixcon.org/nixcon-2025/talk/TEPUWK/", "title": "Closing Ceremony", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": null, "description": "Closing ceremony\r\nSo long, and thanks for all the bees!", "recording_license": "", "do_not_record": false, "persons": [{"code": "BQHGLQ", "name": "Farhad Mehta", "avatar": "https://talks.nixcon.org/media/avatars/BQHGLQ_ZRdzNfX.webp", "biography": "Farhad Mehta belongs to a generation that made its first programming experiences in a functional language, and secretly grieves over the passing of those times. He believes that functional programming has the potential to make software less complex and more fun to write. He has worked in this area at INRIA in Paris (the home of OCaml and Coq), TU M\u00fcnich (the home of Isabelle/HOL), and the ETH Z\u00fcrich. He is currently Professor in Computer Science at the OST Eastern Switzerland University of Applied Sciences, where he, among other things, teaches Functional Programming and co-organizes the yearly [ZuriHac](zurihac.info) conference since 2017.", "public_name": "Farhad Mehta", "guid": "aff6f35b-22bb-5e26-aaec-e89e18ab0051", "url": "https://talks.nixcon.org/nixcon-2025/speaker/BQHGLQ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/TEPUWK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/TEPUWK/", "attachments": []}], "Lecture Hall (5.002)": [{"guid": "187e03da-d5cd-58e0-adf4-540ef9e3c78a", "code": "BMXTFW", "id": 78963, "logo": null, "date": "2025-09-06T11:00:00+02:00", "start": "11:00", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78963-nixos-on-loongarch64", "url": "https://talks.nixcon.org/nixcon-2025/talk/BMXTFW/", "title": "NixOS on LoongArch64", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "Explain the current state of the LoongArch64 ecosystem, issues encountered with the Nixpkgs/NixOS port, and what to expect next", "recording_license": "", "do_not_record": false, "persons": [{"code": "CEXTEY", "name": "Weijia Wang", "avatar": null, "biography": "Weijia Wang is a PhD student at Sorbonne Universit\u00e9, specializing in computer algebra and real algebraic geometry.", "public_name": "Weijia Wang", "guid": "ece7fa87-fb57-51c7-a953-fe007c4d07e0", "url": "https://talks.nixcon.org/nixcon-2025/speaker/CEXTEY/"}, {"code": "7EXSXX", "name": "Aleksana", "avatar": null, "biography": "NixOS developer", "public_name": "Aleksana", "guid": "8608b83f-f0a2-56d7-ac4c-7f4ac9f3b315", "url": "https://talks.nixcon.org/nixcon-2025/speaker/7EXSXX/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/BMXTFW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/BMXTFW/", "attachments": []}, {"guid": "526ef70d-3b52-5f6f-9e22-c09d06a0c29e", "code": "Y8TSAW", "id": 79041, "logo": null, "date": "2025-09-06T11:35:00+02:00", "start": "11:35", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79041-python-packaging-with-nixpkgs-pyproject-nix-uv2nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/Y8TSAW/", "title": "Python packaging with nixpkgs, pyproject.nix & uv2nix", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "There is a broad range of possibilities when packaging Python with Nix.\r\nThe amount of Python formats alone can be overwhelming: `requirements.txt`, `setup.py` & `pyproject.toml`, not to mention Conda!\r\n\r\nThis talk aims to explain Python packaging with Nix, focusing on `pyproject.nix` & `uv2nix`, but I will also talk about other approaches and their trade-offs.\r\n\r\nWe'll start off with a short primer on the different Python packaging formats & methods while explaining a few of the things that make Python packaging particularly murky & difficult.\r\n\r\nThen we'll go through a range of Nix packaging possibilities, starting with using plain nixpkgs & culminating in `pyproject.nix` & `uv2nix`.\r\nAlong the way the pros and cons of each will be explored and what approach to use when and where.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7EMDJR", "name": "adisbladis", "avatar": "https://talks.nixcon.org/media/avatars/7EMDJR_xwGYZGQ.webp", "biography": "Freelance Nix consultant and author of many tools in the Python/Nix space such as poetry2nix, pyproject.nix and uv2nix.\r\nIn nixpkgs he mostly enjoys working on lower level plumbing such as lib & stdenv, but also maintains Emacs & it's package ecosystem.\r\nPython developer in a previous life.", "public_name": "adisbladis", "guid": "3e08b4b9-4685-52ef-85a0-9a206c14c382", "url": "https://talks.nixcon.org/nixcon-2025/speaker/7EMDJR/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/Y8TSAW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/Y8TSAW/", "attachments": []}, {"guid": "516d6387-813f-52f5-803b-f0e1ae3d1d1b", "code": "7YWTUC", "id": 72195, "logo": null, "date": "2025-09-06T13:30:00+02:00", "start": "13:30", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-72195-internet-scale-routing-with-nixos", "url": "https://talks.nixcon.org/nixcon-2025/talk/7YWTUC/", "title": "Internet scale routing with NixOS", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "This talk will be in the format of an experience report. We will go over how to use the module system to declaratively manage BGP sessions, set up routing policies to manage traffic between hosts using addresses within advertised prefixes using systemd-networkd and nftables in a multi-upstream setup, and how to run a primitive anycast CDN. The talk will also include hiccups encountered while experimenting with the BIRD Internet Routing Daemon, Tailscale, and improvement plans.\r\n\r\nGitHub: https://github.com/stepbrobd/router\r\n\r\nSlides:  https://stepbrobd.github.io/router/slides.pdf", "recording_license": "", "do_not_record": false, "persons": [{"code": "UZLEP7", "name": "Yifei Sun", "avatar": "https://talks.nixcon.org/media/avatars/UZLEP7_xmwmytX.webp", "biography": "Jobless osu! std/mania player, unprofessional sysadmin, `nixpkgs` committer. Still fixing mismatched closing parens `))))))))))` from a college assignment. More about me [here](https://ysun.co/).", "public_name": "Yifei Sun", "guid": "305d5aad-3361-5e79-8031-76fb251a256a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/UZLEP7/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/7YWTUC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/7YWTUC/", "attachments": []}, {"guid": "65462fbe-943c-51e8-8a31-de504e08434d", "code": "BRJ8XS", "id": 79076, "logo": null, "date": "2025-09-06T14:05:00+02:00", "start": "14:05", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79076-nixos-compose-local-development-vms-made-easy", "url": "https://talks.nixcon.org/nixcon-2025/talk/BRJ8XS/", "title": "`nixos-compose`: Local development VMs made easy", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "When working on a software project, it can often be useful to spin up local development versions of services that run in production. This can be as simple as running a database to run your tests against, or as complicated as spinning up dozens of machines that talk to each other, while allowing you to observe and debug complex interactions. In some non-Nix projects, `docker-compose` is used for this successfully, but it requires a lot of manual configuration.\r\n\r\nIn projects where production machines are declared as NixOS configurations, the Nix ecosystem provides a lot of powerful building blocks for running VMs. But existing tools require a lot of manual configuration in order to run networks of VMs locally. They also have unintuitive interfaces and poor documentation, making it hard to use them (and, often, even to know about them!). \r\n\r\n`nixos-compose` addresses these problems. It's a polished CLI tool that makes it remarkably easy to:\r\n\r\nStart one or more VMs from a flake file,\r\nSSH into them for debugging,\r\nenable network communication between them, and\r\naccess VMs from the host.\r\n\r\nIn this talk, we\u2019ll tour through the features and implementation of `nixos-compose`.\r\n\r\n`nixos-compose` is an open-source tool built by garnix: https://github.com/garnix-io/nixos-compose", "recording_license": "", "do_not_record": false, "persons": [{"code": "Q8ZMQV", "name": "S\u00f6nke Hahn", "avatar": "https://talks.nixcon.org/media/avatars/Q8ZMQV_8GZaVL1.webp", "biography": "S\u00f6nke Hahn specializes in Functional Programming and has been using nix on and off since 2013. He also has a strong interest in Agile Software Engineering, from Test-Driven Development to team organization. He is the CTO of garnix.io.", "public_name": "S\u00f6nke Hahn", "guid": "a31c12e3-3ea2-5c1a-b9d7-74290a60fd21", "url": "https://talks.nixcon.org/nixcon-2025/speaker/Q8ZMQV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/BRJ8XS/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/BRJ8XS/", "attachments": []}, {"guid": "9df363d1-74ca-53fa-931e-41f81e467439", "code": "YGL3MV", "id": 79104, "logo": null, "date": "2025-09-06T14:40:00+02:00", "start": "14:40", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79104-nix-as-a-solution-to-embedded-linux", "url": "https://talks.nixcon.org/nixcon-2025/talk/YGL3MV/", "title": "Nix as a solution to embedded linux", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "In this talk we go over how we leveraged Nix to build our new Katla synthesizer. We go through setting up development environment, CICD, Linux kernel optimizations, cross-platform compilation and other steps that make Nix a standout solution when building hardware products with a team distributed around the globe.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AQFCVA", "name": "\u00d3li", "avatar": "https://talks.nixcon.org/media/avatars/AQFCVA_vLZ8GLG.webp", "biography": "Founder and CEO of genki instruments. Engineer, musician, Icelandic.", "public_name": "\u00d3li", "guid": "2e7a0c5c-9646-5915-ac35-0e70a0004b23", "url": "https://talks.nixcon.org/nixcon-2025/speaker/AQFCVA/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/YGL3MV/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/YGL3MV/", "attachments": []}, {"guid": "26f4df14-081e-54d1-857d-e9cba2101d56", "code": "3RHWND", "id": 78645, "logo": null, "date": "2025-09-06T15:10:00+02:00", "start": "15:10", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78645-a-field-guide-to-nix-at-the-corporate", "url": "https://talks.nixcon.org/nixcon-2025/talk/3RHWND/", "title": "A field guide to Nix at the Corporate", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "In this most remarkable presentation, I chronicle my extensive explorations through the untamed wilderness of enterprise landscape and the experiences of applying Nix within said corporate domain. \r\n\r\nThe audience shall discover the arcane rituals of cargo cults development, learn to navigate the treacherous waters of organisational silos and master the craft of sanctifying Nix usage. Like a seasoned naturalist cataloging the flora and fauna of some newly discovered archipelago, I have meticulously documented the peculiar behaviors of people unfamiliar with Nix, the resistance patterns towards making the effort to learn it, and the curious customs of playing the responsibility ping-pong.\r\n\r\nThis tongue-in-cheek talk aims to share a collection of arguments and concrete actions one can make, to convince others to use Nix at their workplace. The rebuttal of frequent misconceptions (Docker makes nix not needed) included.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SMHKG7", "name": "Aleksander Gondek", "avatar": "https://talks.nixcon.org/media/avatars/SMHKG7_cD4gssA.webp", "biography": "Alex is contracting for ASML, spearheading migration to Bazel build system. He enjoys solving complex challenges in a manner that results in simple solutions. Rust, Nix and Bazel enthusiast, he attempts to bring reproducibility and correctness to any software project he works on.", "public_name": "Aleksander Gondek", "guid": "7ca59965-57b8-5eea-bf2b-59cc76ec306f", "url": "https://talks.nixcon.org/nixcon-2025/speaker/SMHKG7/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/3RHWND/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/3RHWND/", "attachments": []}, {"guid": "931534d6-b04b-57e4-88a3-854a1bcb9c87", "code": "FZNRLC", "id": 79018, "logo": null, "date": "2025-09-06T15:45:00+02:00", "start": "15:45", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79018-embarrassingly-parallel-evaluations", "url": "https://talks.nixcon.org/nixcon-2025/talk/FZNRLC/", "title": "Embarrassingly parallel evaluations", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "**tl;dr:** _How we reduced evaluation time for 300+ packages from 5 mintues to 5 seconds._\r\n\r\n---\r\n\r\nNix offers an unparalleled collection of readily packaged C/C++ libraries, with the added benefits of cross-compilation support and a declarative configuration language. That's why we chose it to manage third-party dependencies for our Bazel-built monorepo.\r\nThis not-too-common use of Nix as a polyglot build system for external libraries and tools led us to approach Nix in a different way, both in how we think about it and how we used it. Our usage scenarios seemed rarely exercised an we found several opportunities for optimization in Nix code itself.\r\n\r\nAt the core of the problem, we had 300+ packages that we needed to evaluate and build on demand. These evaluation times quickly added up, and we had to rethink the design to get some optimizations.\r\nThis task set is embarrassingly parallel as each package evaluation is independent. But we realized along the way that full parallelism wasn\u2019t the best we could do.\r\n\r\nWe will explain how we leveraged nix evaluation caches (plural!), flakes, manually crafted store paths and parallel execution to reduce evaluation time from 5 minutes to 5 seconds, and bring other less quantifiable improvements.\r\nThe work led to a few interesting scripts and two main PRs to nix itself (see below), one of which is already merged and released while the second is subject to discussion because of its impact on other cached operations. We will use that discussion to illustrate the tradeoffs of caching parallel evaluation.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PFYCTR", "name": "Guillaume Maudoux (@layus)", "avatar": "https://talks.nixcon.org/media/avatars/PFYCTR_gKEe6nn.webp", "biography": "Guillaume Maudoux (a.k.a @layus on GitHub and elsewhere) is an engineer and researcher specialized in build systems.\r\n\r\nBased in Belgium, Guillaume blends a background in computer science, engineering, and applied mathematics with strong interests in correctness, reliability, and efficiency in software systems.\r\n\r\nGuillaume works at Tweag\u2019s Scalable Build Systems group. A team of engineers and researchers focused on developer productivity, robust tooling, and enterprise-scale build performance. His work focusses on integrating Nix into Bazel and in particular supporting remote execution. For some reason his skills are most appreciated in the robotics industry.\r\n\r\nYou may find him contributing to random open source projects because he never resists fixing a bug he found, and digging to uncover the root cause of problems. He will happily share his findings in blogs, conferences or around a coffeeC-w tea.\r\n\r\nGuillaume\u2019s reputation stems from his ability to bridge academic rigor with systems engineering pragmatism. His work helps teams build complex software more reliably, efficiently, and at scale.", "public_name": "Guillaume Maudoux (@layus)", "guid": "7893523e-a1ae-5df6-ac46-d0d734569f4d", "url": "https://talks.nixcon.org/nixcon-2025/speaker/PFYCTR/"}], "links": [{"title": "PR #10570 -- Share evaluation caches across installables", "url": "https://github.com/NixOS/nix/pull/10570", "type": "related"}, {"title": "PR #10590 -- Efficent parallel use of eval caches", "url": "https://github.com/NixOS/nix/pull/10590", "type": "related"}], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/FZNRLC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/FZNRLC/", "attachments": [{"title": "Slides", "url": "/media/nixcon-2025/submissions/FZNRLC/resources/Embarassingly__jIVH6Rm.pdf", "type": "related"}]}, {"guid": "1e692d57-0456-5134-bd21-b3854df856c1", "code": "HWQRXK", "id": 78628, "logo": null, "date": "2025-09-06T16:15:00+02:00", "start": "16:15", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78628-from-pixels-to-pure-derivations-deterministic-logos-with-nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/HWQRXK/", "title": "From Pixels to Pure Derivations: Deterministic Logos with Nix", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "When we think of reproducibility, we often focus on software builds, but what about the logos and visuals that represent our projects? In this talk, I\u2019ll share how I approached logo design for the NixOS project with the same rigor we apply to software: deterministic outputs, minimal storage overhead, and fully free tooling.\r\n\r\nI\u2019ll discuss the journey of building my own FOSS tooling to generate NixOS logos as SVGs from source code. Existing tools like Inkscape or Blender were either not parametric enough or not designed for clean, annotated vector outputs. By combining principles of CAD, typography, and color theory, I created a pipeline for reproducible, fixed-output derivations (FODs) that ensure all branding assets are versioned, verifiable, and easy to regenerate.\r\n\r\nThis talk will cover:\r\n1. The challenges of finding FOSS tools for parametric logo design.\r\n2. Deep dives into fonts, kerning, and color spaces to build a consistent design language.\r\n3. How I integrated FODs with verification tooling to ensure logo correctness.\r\n4. Lessons learned about repository hygiene and why developers should expose overlays and NixOS modules rather than forcing consumers to hack around flake outputs.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YLEH8S", "name": "Daniel Baker", "avatar": "https://talks.nixcon.org/media/avatars/YLEH8S_K4EDmwW.webp", "biography": "Daniel is engineer and mathematician turned software developer. He found Nix in late 2021 and has been supporting the NixOS marketing team nearly as long.", "public_name": "Daniel Baker", "guid": "abb69a46-2655-5d59-8e1c-409e2e749a8b", "url": "https://talks.nixcon.org/nixcon-2025/speaker/YLEH8S/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/HWQRXK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/HWQRXK/", "attachments": []}, {"guid": "134f9aad-2459-593a-8597-c856e9c2e63a", "code": "AZF8PR", "id": 78961, "logo": null, "date": "2025-09-06T16:50:00+02:00", "start": "16:50", "duration": "00:25", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-78961-kubernetes-on-nix", "url": "https://talks.nixcon.org/nixcon-2025/talk/AZF8PR/", "title": "Kubernetes on Nix", "subtitle": "", "track": null, "type": "Long talk", "language": "en", "abstract": null, "description": "Running a production grade kubernetes cluster is a non trivial task. Although many commercial and non-commercial solutions are available, each comes with its own limitations. Some are primarily meant to set up a single node development cluster, others have hardly any flexibility.\r\nHere NixOS comes to the rescue, allowing us to build our cluster the way we want.\r\nHowever, because of the complexity of such a multi host setup, this is a bit more work than a `services.kubernetes.enable = true;`.\r\n\r\nWe will look into the Kubernetes modules in NixOS, and how we can use them to set up a production grade  cluster. For this we will consider what certificates we need, and how we can utilize a secret management solution like agenix to deploy them.\r\n\r\nWe will also analyze how we can utilize Nix and the kubernetes addon-manager to configure our cluster from nix. Being able to install tools like ingress or the cert-manager is the final piece to describe the entire cluster in our nix config.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CJDBZQ", "name": "Lux", "avatar": null, "biography": "Hi, I'm a software engineer and primarily work on tools and systems to improve developer productivity.", "public_name": "Lux", "guid": "ab5e10dd-526c-5376-b3a1-3dbdc701e60a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/CJDBZQ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/AZF8PR/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/AZF8PR/", "attachments": [{"title": "slides", "url": "/media/nixcon-2025/submissions/AZF8PR/resources/talk_Osl9fNX.pdf", "type": "related"}]}, {"guid": "7064c6df-3ec3-535b-b0bc-e559c9e302a9", "code": "WUFEPF", "id": 79082, "logo": null, "date": "2025-09-06T17:25:00+02:00", "start": "17:25", "duration": "00:20", "room": "Lecture Hall (5.002)", "slug": "nixcon-2025-79082-applying-graph2diff-neural-repair-to-build-errors-in-nixpkgs", "url": "https://talks.nixcon.org/nixcon-2025/talk/WUFEPF/", "title": "Applying Graph2Diff neural repair to build errors in nixpkgs", "subtitle": "", "track": null, "type": "Short talk", "language": "en", "abstract": null, "description": "This talk is a progress report on my senior thesis, not a finished case study.\r\n\r\nBuild failures drain CI and human resources, and nixpkgs exacerbates the challenge due to its mix of languages and build systems. [BuildMedic](https://ieeexplore.ieee.org/document/8330201) (SANER, 2018) addresses dependency issues in Maven, and graph neural networks were tested at [Graph2Diff](https://dl.acm.org/doi/10.1145/3387940.3392181) (ICSEW, 2020). However, no analogous tool yet exists for Nix, where r-ryantm updates dependencies but rarely pinpoints the root cause.\r\n\r\nI am adapting the Graph2Diff approach to nixpkgs by harvesting failure-fix pull request (PR) pairs and extracting abstract syntax trees (ASTs) and build logs. The roadmap covers:\r\n1. Dataset creation,\r\n2. model design; and\r\n3. a workflow in which the GNN proposes edits.\r\n\r\nWhile it is possible to have an LLM perform repairs, in a large repository such as nixpkgs, the cost is significant and cannot be ignored. My goal is to incorporate automatic repairs into nixpkgs in a way that will make them feasible in the future and reduce the burden on maintainers.", "recording_license": "", "do_not_record": true, "persons": [{"code": "HH8MVK", "name": "Mutsuha Asada", "avatar": "https://talks.nixcon.org/media/avatars/HH8MVK_pXENb1g.webp", "biography": "- CS undergrad (B4) @ University of Tsukuba\r\n- Interested in Nix, software engineering and compiler toolchains\r\n- https://momee.mt\r\n- https://x.com/mutsuha_asada", "public_name": "Mutsuha Asada", "guid": "b49411c2-9ae8-5e82-8c8c-40a2ab9d79af", "url": "https://talks.nixcon.org/nixcon-2025/speaker/HH8MVK/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/WUFEPF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/WUFEPF/", "attachments": [{"title": "Applying Graph2Diff neural repair to build errors in nixpkgs", "url": "/media/nixcon-2025/submissions/WUFEPF/resources/NixCon2025_QhG65L2.pdf", "type": "related"}]}], "Workshop room 1 (4.0114)": [{"guid": "d46326c9-1d3d-5e26-99b0-382560d6df8b", "code": "CSWTHH", "id": 78788, "logo": null, "date": "2025-09-06T13:30:00+02:00", "start": "13:30", "duration": "02:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-78788-mastering-nixos-integration-tests-advanced-techniques-for-fast-and-robust-multi-vm-tests", "url": "https://talks.nixcon.org/nixcon-2025/talk/CSWTHH/", "title": "Mastering NixOS Integration Tests: Advanced Techniques for Fast and Robust Multi-VM Tests", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Join our two-hour, hands-on workshop to master the NixOS integration test driver!\r\n\r\nLearn to simulate complex, multi-host networks and explore modern features like testing with lightweight VMs. We'll cover new integration test driver features, using the interactive mode for powerful debugging, and share best practices to avoid flaky tests. This is a perfect opportunity to enhance your NixOS skills, build more reliable systems, and streamline your CI/CD pipelines with powerful, real-world testing. We will also have a look at some of the NEW debugging features of the test driver.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KWCVSS", "name": "Jacek Galowicz", "avatar": "https://talks.nixcon.org/media/avatars/KWCVSS_XmtxSV2.webp", "biography": "Jacek Galowicz is the CEO of Nixcademy and Applicative Systems GmbH (DE) and Corp. (US), where he has trained over 400 engineers in Nix and NixOS and helped numerous companies accelerate their adoption of Nix. Before that, Jacek co-founded Cyberus Technology GmbH, where he worked on hypervisor technology and advanced test automation. He has an extensive background in the security and operating systems industries, and as a software engineer, Jacek ported the NixOS integration test driver to Python in 2019. He is also the author of the C++17 STL Cookbook.", "public_name": "Jacek Galowicz", "guid": "9a1f0256-70eb-5e9f-b91c-f3e4bfa3e4a4", "url": "https://talks.nixcon.org/nixcon-2025/speaker/KWCVSS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/CSWTHH/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/CSWTHH/", "attachments": []}, {"guid": "447a8eea-618c-5e4d-8c77-41faa765ee4a", "code": "B9S93H", "id": 78863, "logo": null, "date": "2025-09-06T16:00:00+02:00", "start": "16:00", "duration": "01:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-78863-continuously-integrating-your-nix-config", "url": "https://talks.nixcon.org/nixcon-2025/talk/B9S93H/", "title": "Continuously Integrating Your Nix Config", "subtitle": "", "track": null, "type": "Short workshop", "language": "en", "abstract": null, "description": "Learn to add continuous integration checks to your Nix configuration in this hands-on workshop. We'll guide you through building automated pipelines that run tests, build your config, lint your code and catch configuration errors and mistakes on each change you make. \r\n\r\nParticipants will walk away with a CI pipeline for their Nix configs or projects, transforming how they manage their systems with confidence and reliability.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WDVLQP", "name": "Jo\u00e3o Thallis", "avatar": "https://talks.nixcon.org/media/avatars/WDVLQP_zlJjUut.webp", "biography": "Jo\u00e3o Thallis is a Product Engineer at Turn.io.\r\n\r\nHe started his programming journey creating games in his teenage years. He\u2019s working with functional programming using Elixir since 2018.\r\n\r\nHe lives in Brazil, loves cycling, traveling, open source, nix and neovim\r\n\r\nMy website: https://joaothallis.com", "public_name": "Jo\u00e3o Thallis", "guid": "72677da9-3e58-5789-8099-7e4c7556c82a", "url": "https://talks.nixcon.org/nixcon-2025/speaker/WDVLQP/"}, {"code": "JH7QZY", "name": "Claudio Neto", "avatar": "https://talks.nixcon.org/media/avatars/JH7QZY_imgMSAi.webp", "biography": "Software Engineer in Facilitapay from Goi\u00e2nia, Brazil, 28 years old.\r\nWorking with Elixir in banking, focusing on backend and DevOps. Interested in functional systems, infrastructure, and the Nix ecosystem.", "public_name": "Claudio Neto", "guid": "5b460e74-966f-592e-8601-8234309355ce", "url": "https://talks.nixcon.org/nixcon-2025/speaker/JH7QZY/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/B9S93H/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/B9S93H/", "attachments": []}], "Workshop room 2 (4.0115)": [{"guid": "c0a8dcdb-a73f-5082-93d8-8a10d4fc004a", "code": "REJ3LF", "id": 78436, "logo": null, "date": "2025-09-06T13:30:00+02:00", "start": "13:30", "duration": "02:00", "room": "Workshop room 2 (4.0115)", "slug": "nixcon-2025-78436-dendritic-pattern", "url": "https://talks.nixcon.org/nixcon-2025/talk/REJ3LF/", "title": "Dendritic pattern", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Take a couple of hours to jump-start a re-organization of some of your configurations (NixOS, nix-darwin, home-manager, etc.).\r\n[The dendritic pattern](https://github.com/mightyiam/dendritic) has been inspiring and being adopted by Nix users recently. Take a look and if it seems interesting, show up and Dawn (mightyiam) will help you get started on a branch, and share tools and techniques to help make refactoring configurations easier and safer.\r\nHopefully, you'd end up with code that is more readable, maintainable, clean and much more to your liking, if you jive with this pattern.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9DTP9V", "name": "Shahar \"Dawn\" Or", "avatar": "https://talks.nixcon.org/media/avatars/9DTP9V_sbRxRyg.webp", "biography": "Author of the [Full Time Nix](https://fulltimenix.com) podcast and open source contributor ([watch me work](https://www.youtube.com/@molybdenumsoftware))", "public_name": "Shahar \"Dawn\" Or", "guid": "ed7c0a81-a9c5-5e2b-ba36-a21e166294fe", "url": "https://talks.nixcon.org/nixcon-2025/speaker/9DTP9V/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/REJ3LF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/REJ3LF/", "attachments": []}]}}, {"index": 3, "date": "2025-09-07", "day_start": "2025-09-07T04:00:00+02:00", "day_end": "2025-09-08T03:59:00+02:00", "rooms": {"Workshop room 1 (4.0114)": [{"guid": "5ca6976c-ffa5-530c-bb04-acf37d70c458", "code": "E7CY83", "id": 79506, "logo": null, "date": "2025-09-07T10:00:00+02:00", "start": "10:00", "duration": "02:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-79506-hack", "url": "https://talks.nixcon.org/nixcon-2025/talk/E7CY83/", "title": "Hack", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/E7CY83/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/E7CY83/", "attachments": []}, {"guid": "d26cba99-21e3-54dc-aeff-9e6dc3644ff4", "code": "MPWSSF", "id": 79507, "logo": null, "date": "2025-09-07T13:30:00+02:00", "start": "13:30", "duration": "02:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-79507-hackier", "url": "https://talks.nixcon.org/nixcon-2025/talk/MPWSSF/", "title": "Hackier", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/MPWSSF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/MPWSSF/", "attachments": []}, {"guid": "adef3dba-0b5e-5207-a1c8-aea4f3e06160", "code": "V37HDD", "id": 79510, "logo": null, "date": "2025-09-07T15:30:00+02:00", "start": "15:30", "duration": "02:00", "room": "Workshop room 1 (4.0114)", "slug": "nixcon-2025-79510-hackiest", "url": "https://talks.nixcon.org/nixcon-2025/talk/V37HDD/", "title": "Hackiest", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/V37HDD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/V37HDD/", "attachments": []}], "Workshop room 2 (4.0115)": [{"guid": "4cbcaefa-eee3-5172-bf57-bb1780f8defe", "code": "JZVXZC", "id": 79505, "logo": null, "date": "2025-09-07T10:00:00+02:00", "start": "10:00", "duration": "02:00", "room": "Workshop room 2 (4.0115)", "slug": "nixcon-2025-79505-hack", "url": "https://talks.nixcon.org/nixcon-2025/talk/JZVXZC/", "title": "Hack", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/JZVXZC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/JZVXZC/", "attachments": []}, {"guid": "48cc0dcf-dbb5-5f97-aedb-66d54aa1f15e", "code": "KUUZBL", "id": 79508, "logo": null, "date": "2025-09-07T13:30:00+02:00", "start": "13:30", "duration": "02:00", "room": "Workshop room 2 (4.0115)", "slug": "nixcon-2025-79508-hackier", "url": "https://talks.nixcon.org/nixcon-2025/talk/KUUZBL/", "title": "Hackier", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/KUUZBL/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/KUUZBL/", "attachments": []}, {"guid": "9f7a3eb0-0aa0-574a-b8c5-8d2cf96f4e60", "code": "WUAMKK", "id": 79511, "logo": null, "date": "2025-09-07T15:30:00+02:00", "start": "15:30", "duration": "02:00", "room": "Workshop room 2 (4.0115)", "slug": "nixcon-2025-79511-hackiest", "url": "https://talks.nixcon.org/nixcon-2025/talk/WUAMKK/", "title": "Hackiest", "subtitle": "", "track": null, "type": "Long workshop", "language": "en", "abstract": null, "description": "Hacking, spontaneous talks, projects, and more", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2025/talk/WUAMKK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2025/talk/WUAMKK/", "attachments": []}]}}]}}}