Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion north-bay-python-2026/videos/an-economy-of-empathy.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "The historical roots of the current-day tech sector is infected with eugenic ideals, misogyny, and fascism. It's not hard to trace a line from William Shockley, inventor of the transistor, to current powerhouses such as Peter Thiel, Sam Altman, Elon Musk, and others\u2014each espousing subtle or not-so-subtle visions of a techno-utopian future devoid of \"low IQ\" citizens.\n\nWhether purposefully or not (maybe a bit of both), technology has aided and abetted in the creation of an environment that favors the wealthy and privileged and preys on the disadvantaged.\n\nOpen software provides an avenue to tip the scales from a ruthless market toward an economy of empathy. We must emerge from the grasp of our troubled past, not by ignoring it, but by reckoning and repairing the broken pieces.\n\nContent warning: Graphic descriptions of oppression, violence, sexual abuse, child abuse and animal abuse.",
"duration": 1628,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Anonymous functions in Python, or lambdas, are misunderstood, unloved, and in need of a good home. As constructs, most folks avoid them, but there are whole worlds of possibilities for good (and bad) designs that are just waiting to be uncovered.\n\nWe'll talk about what lambdas are, what they're for, and how you can use them effectively -- and some ways to use them that will get your PR rights revoked.",
"duration": 1620,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "2024 held the first Python conference for which I wasn't hosting a significant number of work-related activities, including hosting a sprint. After wandering lost for the first two days of sprints, I decided I was going to learn something new, and I knew who I wanted to teach me. This decision would result in major changes in my life, from finding a community and a purpose, to discovering trauma and a place to heal. In this talk, you'll learn how small changes to how you review code and interact with others can make an immense difference in how the interactions are perceived. Through my journey, I will share the lessons I learned about the importance of communication, learning from mistakes, and creating a safe space. Join me, and find out how you can make the most of opportunities to improve someone's life, including your own.",
"duration": 1583,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Many skills that come easily to you can feel impossible to others. As a tech-interested person, this likely includes several valuable skills you don\u2019t realize you have. The technology industry prioritizes developing technical skill, but doesn\u2019t always recognize the components of those skills or value the ability to transfer the fundamentals of those skills to others. Luckily for us, the Python community prizes the core skills you need to share your skills with others.\n\nIn this talk, I address a few examples of skills you probably have at least one of, tell you why that skill is valuable to your friends and neighbors right now, and introduce some core principles from my background in technical and crisis communication that you can use to help your community build newly-valuable technical skills. By the end of this presentation, you\u2019ll hopefully have a new appreciation for at least one of your existing skills, and some new skills to help you share it with those around you!",
"duration": 1873,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
2 changes: 1 addition & 1 deletion north-bay-python-2026/videos/cursed-comedy.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "One of the benefits of having a partner in (code) crime is developing a rapport and asking dangerous questions that lead to unfortunate code.\n\nFollow along as we admit our sins, crack wise about the methods of our madness, and reveal some truly powerful (if probably inadvisable) ways you can make Python do your bidding.\n\nFrom cursed struct implementations to abusing runtime type hinting for great power to bending the import system to its breaking point we'll try to amuse you while talking about what magic might be too much magic.",
"duration": 1313,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Python developers are used to working with APIs that have documentation, versioning, and some expectation of stability. Websites offer none of that \u2014 yet many Python systems depend on web data every day.\n\nThis talk reframes web scraping and extraction as an API design problem under extreme uncertainty. Instead of focusing on selectors or parsing techniques, we\u2019ll focus on how to design Python-facing interfaces that can survive change.\n\nWe\u2019ll explore topics such as optional fields, backward-compatible schema changes, defensive parsing, and meaningful error semantics. We\u2019ll also discuss how breaking changes affect downstream users, especially when your data feeds analytics pipelines, dashboards, or automated systems.\nBy the end of the session, attendees will have a clearer mental model for treating web data as a volatile dependency and practical strategies for designing Python APIs that protect users from inevitable change.",
"duration": 803,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "With twenty some-odd bits of state and several hundred instructions, Modern Western Square Dancing is a pipelined architecture that executes on groups of humans and provides challenging programming puzzles, in a context that brings people together and builds real-life in-person bonds.\n\nFrom its origins in Black slave culture in the early United States, to something inflicted on us in grade school, square dancing as it is performed around the world has been described as \"uniquely American\". We'll talk about lessons from \"group theory performed as a team sport, set to music\", or \"dancing for math nerds\", from the propaganda of Henry Ford, to post WWII American expansion, to how gay culture has struggled with assimilating straight dancers. And maybe offer some lessons we can take into our own communities.",
"duration": 2085,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Sometimes we set out to create a project with clearly defined scope, with the best of intentions for maintainability, usability, and clarity. Then, if we\u2019re lucky, users show up and want to do something else. It starts small - a feature here, an edge case there. How do we navigate \u2018scope creep\u2019 in open source projects and the tension between what we set out to build, what we can competently maintain, and what users actually want? Told through the history of JupyterHub, a project for hosting Jupyter notebook servers targeted explicitly at small single-machine groups, which is now used routinely to serve thousands of students and researchers; something which was explicitly and deliberately out of scope for the project from day 1. But users want what they want.",
"duration": 1628,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Python powers Netflix's recommendation engine, processes petabytes at Spotify, and handles financial calculations worth trillions of dollars. Yet, developers constantly debate whether Python is \"too slow.\" This paradox reveals a fundamental misunderstanding about Python's true superpower: orchestration over computation. The real question isn't \"Is Python fast enough?\" It's \"What should Python be doing?\"\n\nMany developers want to use Python when building high-performance systems, but often lack clear guidance on where Python is the right choice and where it may become a bottleneck. Without a decision framework, developers either prematurely rewrite working Python code in C++/Rust (adding complexity without proportional benefit) or keep everything in Python and hit performance walls, leading to systems that are neither fast nor maintainable. This talk cuts through the performance mythology to reveal where Python excels and when it struggles. \n\nBy the end of this session, attendees will leave with a clear decision framework and practical architectural patterns they can immediately apply to their own projects. Whether you're evaluating an existing \"slow\" Python service or designing a new system from scratch, you'll have concrete tools to determine where Python belongs and where computation should move to compiled languages. You'll know how to structure these boundaries effectively and avoid the common pitfalls that add complexity without delivering real performance gains.\n\nKey Takeaways:\n1. Decision framework for orchestration vs. computation: Four-question evaluation to determine what belongs in Python versus compiled languages \n2. Three architectural patterns for integrating Python with high-performance code: When and how to use each pattern effectively (with code examples)\n3. Anti-pattern recognition: Build intuition for justified complexity versus technical debt",
"duration": 1302,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "One day I decided that I should create my own delightfully ridiculous and convoluted board game. I furiously typed all the game mechanics into a spreadsheet. But, what if my game wasn\u2019t fun?\n\nAs with many challenges I\u2019ve faced, Python emerged as the hero of this story. Discover how I simulated my game in Python and calibrated it toward perfection. Learn about the challenges and triumphs I faced when turning my spreadsheet into a fun playable board game.",
"duration": 1345,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "It's never been more important to have reliable, best-effort secure, and best-effort resilient technology to support activist causes where you live, across the country, and across the world. In this talk, you'll get a starter pack for battle-tested tech stacks, built from years of experience running infrastructure for organizations of every scale. From nationwide support for presidential campaigns to state-wide vaccine rollout programs to single-person data activism efforts, there 's tools and techniques that run at low-or-no budget and which help you support the groups you care about.",
"duration": 2062,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
2 changes: 1 addition & 1 deletion north-bay-python-2026/videos/state-of-exception-s.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Errors. They happen. Sometimes we wish they wouldn't but they do and the code we write and the systems we build have to handle that. The processes by which we detect failures and handle them varies a lot though and the \"right\" way to deal with failures has been a topic of discussion generally only eclipsed by how to do packaging and how to format code.\n\nDifferent languages, platforms, and frameworks all not only handle errors differently but frequently have entirely different ways of thinking about what an error even is. I'd like to take you on a bit of a philosophical exploration about what happens when things go wrong, how we know they've gone wrong, and what we do about it.",
"duration": 1407,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "It's a system. It's people. It's systems of people. It's people in a system.\n\nWhen we design for automation and technology, we are designing for people and people systems. Our best designs understand the difference between what helps humanity, and how to place decision making at the right level of autonomy.\n\nThrough the lens of Lisa Bainbridge's seminal 1983 paper \"The Ironies of Automation\", we can update our current understanding of where designing with AI can avoid the worst anti-patterns and embrace the best of autonomy for socio-technical systems.",
"duration": 1594,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Cats are notoriously unbothered, adaptable creatures which seems like the kind of energy we could all use more of in our open source communities. It\u2019s all too easy to be reactive all the time and let the current state of events, tech news, world news and internal changes set your course. This is where cats come in. They do not care about the news, internal or external, they just adapt and continue to pursue their own goals. As Pythonistas, leaders and project maintainers, I believe we can learn from the cat.\n\nIn this talk I will discuss strategies for staying on target with your goals, communicating with team members about what\u2019s important and working around what isn\u2019t and share a few tricks for absorbing and releasing everything that comes in via a high information environment. You may not be able to sleep 20 hours a day, but you can control your attention and your approach to a changing world and keep pursuing your goals.",
"duration": 1522,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Joelle is a network engineer for Netflix, where she uses Python to configure and monitor a network that spans the globe. She started programming on an Apple II when she was 5 and has worked in many different IT roles over her 30 year long career. She'll always enjoy infodumping to you about how computer networks work, about nearly any area of networking, such as how long-distance fiber communication works or what happens behind-the-scenes when you connect to a Wifi network (so feel free to ask her!). She holds dual degrees, one in Computer Science and the other in Gender, Women, and Sexuality Studies, which help fuel her vision of a world where tech empowers rather than controls. Outside of work and her research interests (she is involved in research that benefits the neurodivergent and the queer communities), she loves to tinker with toy operating systems and old computing technology.",
"duration": 1539,
"language": "eng",
"recorded": "2025-04-26",
"recorded": "2026-04-26",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "For the first time in the history of computer science, actual practicioners of software engineering appear to be having a serious go at using automated code generation tools to produce entire programs. The industry has not yet agreed that this is an unqualified disaster.\n\nOn the other hand, we have known for quite a long time that there are a number of things that computers cannot do: not things that are merely difficult to solve, but things that are actually impossible. One particularly salient example is asking a computer program to figure out what a (possibly different) computer program even does. This raises a number of fascinating questions about the act of asking computers to write our code for us, and the roles of us as software engineers, now, and in the not-too-distant future.\n\nWe're going to focus on the act of specifying a problem, and verifying whether whether our solution to a problem meets that specification. How do we judge whether something is \"correct\"? How much of a problem can we ask a computer to solve? Is there still a place for not doing everything completely automatically?\n\nThis talk combines observations from foundational computer science, from the emergence of automated software testing, and some recent observations about the performance of recent-generation LLMs acting autonomously. We will raise some questions. We might answer 1-2 of them.",
"duration": 2179,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Some might call my career one stricken with ADHD. I prefer to call it one filled with curiosity, and an itch to learn. From writing 8-bit assembly language for Mototola pagers in the 1980s to marketing semiconductors that perform compression and encryption operations in the 1990s to building websites in the 20xxs, in retirement, I've been fortunate to find my tribe in the eleventy community (eleventy being a static website generator).\n\nDuring the last 20+ years, there's been an undercurrent of me being excited by the web. In the last 3 years, I've found a home as a helper and community resource developer, and I'm loving every minute of it.\n\nI built my first website around 2004. It was a volunteer effort to build a new site for a new school. I happened to be in the right place at the right time. MovableType was the static site generator of the day and I milked it to build the site that I would end up maintaining for nearly 10 years.\n\nIn 2005, I was fortunate to attend the first \"An Event Apart\" in Philadelphia, where Jeffrey Zeldman, Eric Meyer, and Jason Santa Maria blessed me with feedback on this fledgling new school website. Talk about being in the right place at the right time.\n\nFast forward to 2021, and finding Jekyll, I built a site for a local tennis pro. I soon realized that Jekyll wasn't being actively maintained. But eleventy was emerging to fill its shoes. So off I was to build a personal site for myself and a few others.\n\nThe more I found myself googling about how to get the most out of eleventy, I came to believe that somebody should build a site to aggregate all of those useful blog posts that I was finding. That somebody would be me. Thus, on May 1, 2023, the 11ty Bundle website came into being. Today, it consists of over 1,600 blog posts by more than 450 authors, along with a showcase of over 1,400 sites build with eleventy.\n\nThe community is focused, vibrant, and welcoming and it's wonderful to be a part of it. It's keeping me feeling young and alive.",
"duration": 2181,
"language": "eng",
"recorded": "2025-04-25",
"recorded": "2026-04-25",
"related_urls": [
{
"label": "Conference schedule",
Expand Down