North Bay Python 2025

To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
10:15
10:15
25min
From FinTech to Fin Tech
Adrianna Tan

Like many young and ambitious people in the late 00s and early 10s, Adrianna thought that tech would change the world. It did, but in which direction?

After running startups, working at startups, working on open source, working in government, Adrianna is now making waves doing tech at.. an aquarium. For the last 12 years, she has also been the cofounder of an Indian nonprofit that works to teach Scratch and Python programming skills to underprivileged children in Mumbai and Pune.

Along the way, she’s learned a few things about what technology can and cannot do. She’s now interested in what happens when computers happen to people, most just in computers alone.

Come hear about her journey, and how she still hopes that computers can bring joy to people.

Barn
10:50
10:50
25min
Or Else! An Exploration of Obscure Control Flow
Amethyst Reese 🌸

Everyone knows how an if-else block works, but what about a for-else block? Or try-except-else? What do those do, and how can they help us write cleaner code? What other hidden gems await us in the halls of Python grammar? Come join us for an adventure into depths of the Python world less traveled.

We'll start with a brief look at the fundamentals of program control flow, and how our choices as developers influence the readability and maintainability of our code. We'll look at some easy ways to use lesser-known syntax elements to make common code patterns more obvious, and compare and contrast them with equivalent alternatives.

Next, we'll start to pull back the curtains a bit on how Python handles more complex control flow mechanisms, like generators and decorators, and look at ways to leverage those features to build higher order functionality. Lastly, we'll get a bit reckless and look at how Python makes it possible to create our own systems for control flow, and consider committing some light crimes in the name of code readability.

We might even implement the highly desired "do-while" loop while we're at it.

Barn
11:20
11:20
25min
No ISPs, No Masters: Modern Mesh Networking with Python
Philip James

Decentralized, accessible mesh networking is finally within our grasp, and the ecosystem around it is powered by Python. Want to chat without any centralized ISP? How about setting up your own private Internet of Things network? Or maybe you just want to stay in touch in areas without cell signal. Mesh networking has you covered. In this talk, we'll cover the underlying LoRaWAN technology that's powering modern mesh networking, the advantages and limitations of current meshnet implementations, the simplest ways to get started, and how to write Python code that communicates over the mesh.

Barn
11:45
11:45
85min
Lunch
Barn
13:10
13:10
25min
Focus, Flow and Joy, and other DevOps ideals for Developing Software in Highly Regulated Environments
Simon Merrick

“We’d love to be able to do DevOps but we can’t because of our privacy security compliance requirements” is a refrain shared by many technology teams, saddled with security and compliance requirements. However, The last decade of software delivery has demonstrated that security, reliability, quality and speed are not zero-sum trade-offs. 


In this talk we take a look at a payments platform team and how they navigated the red tape of PCI DSS to adopt DevOps principles and practices and how it helped them improve their security, software delivery and made maintaining and demonstrating compliance much easier.

Barn
13:40
13:40
25min
Python Scientific Sorcery With Efficient Code
Parul Gupta

Looking to make your scientific code faster and more efficient for training and prototyping? In the AI era, computing requirements and expenses are outpacing available resources. To stay ahead, efficient code is no longer a luxury - it has become a NECESSITY.

We will delve into the best practices and techniques for an optimized utilization of Python scientific libraries, including NumPy, Pandas, and SciPy highlighting common pitfalls and failure modes that can hinder performance. By going through some live demos ("what could possibly go wrong?" - North Bay Python 2024), we will learn how simple changes to our code can lead to significant optimizations, resulting in faster and more capacity-friendly solutions. We will gain insights into advanced programming concepts, such as NumPy vectorization, column-based vs row-based data frames and arrays, and many more.

Whether you're a data scientist, machine learning engineer, researcher, or software engineer, we will showcase tips and strategies that can improve the efficiency of your code and accelerate your AI projects.

Barn
14:15
14:15
25min
"It’s About Ethics in AI Alignment" – Resistance in the Age of AI-Governed Speech
Maddy Muscari

Remember gamergate? The phrase "It's about ethics in AI alignment" should be a joke—but it's not. AI alignment is shaping who gets to speak, what gets remembered and how truth is defined.

Application developers, not AI researchers, are the ones implementing these systems—which means AI governance isn’t just a policy problem; it’s a codebase and product problem.

This talk deconstructs alignment through a lens of control:

  • How authoritarian data controls like constitutional classifiers and red-team RLHF training are damaging reasoning models.
  • The "slippery slope" of allowing these kinds of classifiers to find their way into human communications
  • Why AI alignment is not just about safety—it’s about deciding who gets to define epistemic reality.
  • How engineers can identify, challenge, and counteract AI-mediated censorship in the tools they build.

If alignment becomes invisible, it becomes unchallengeable. If practitioners don’t resist now, AI won’t just shape knowledge—it will shape what can even be thought.

Key Takeaways:
✔ Understand how alignment architectures are being adapted for human speech control.
✔ Recognize when AI alignment becomes silent censorship.
✔ Resist epistemic capture by designing systems that preserve interpretability and agency.

Barn
14:40
14:40
35min
Afternoon Tea
Barn
15:15
15:15
25min
Cakeprehensions: A Recipe for Success with Comprehensions
Melanie Arbor

Have you seen Python’s comprehensions but found them odd and intimidating? You’re not alone! Whether you’re just starting out with Python, or you’ve been using it for a long time, I wouldn’t blame you for steering clear of the strange “this for this in that” syntax. But fear not; I will rescue you with cake!

We'll walk through for loops, and how comprehensions are their tasty cousins. We'll talk about the various comprehensions we have at our disposal, including dictionary comprehensions, and comprehensions with conditionals. And then, like a towering 3-tiered cake, we'll try our hand at nested comprehensions.

This talk will arm you with a mental anchor to fall back on every time you write a comprehension, regardless of how simple or complex. Over time—if you use this recipe enough—you won’t even need to crack open the cookbook. We will ask…

What do we want? Cake!
When do we want it? As we loop over this iterable!

You’ll leave hungry for those confusing-looking Python treats… and cake.

Barn
15:45
15:45
25min
The Source of Change: Bettering Online Open Source Communities Can Begin with You
Kattni

Participating in online open source communities can be a positive experience, but it isn't necessarily so for everyone. Stories abound of mistreatment of project maintainers and community contributors, including bullying, doxing, even acts of outright violence. But those negative experiences don't have to happen! Creating a safe and welcoming environment for open source development begins with you. Discover how you can affect positive change in your own project space and the spaces of others within the open source community through practical and achievable actions. You will gain a better understanding of the problem, and the changes necessary to begin addressing it. Unfortunately, there may always be those who are not interested in being a part of this solution. You will learn ways to ensure you are able to take care of yourself within this reality, while breaking the pattern of negativity within the spaces willing to accept a positive change. You play a critical role in building and maintaining communities that are welcoming, inclusive, and safe. Explore how you, the rest of your community, and the health of your project, will benefit from making your community better.

Barn
16:20
16:20
25min
Some Assembly Required: Lessons from Lego, K'Nex, & Mario Kart
Jeremy Tanner

The Lego experience is more than just a collection of premium priced bricks in a box. If one looks closer, it's full of guidance for the Python developer (or developers that write some Python), including; interoperability, backward compatibility, design, and documentation. This brief rant will highlight ways your project can meet developer expectations, and pitfalls to avoid so your project won't be cast aside like a disappointing toy.

Barn
10:15
10:15
25min
The Tangled Web We Weave: Continuing Education Through Silly Projects
Joe Kaufeld

Where'd that yellow schoolbus come from?

There are many things we're told aren't worth building because experts have done them already. Cryptography? Let the experts handle it. Algorithms? Same. Web frameworks? Yep. As a professional web developer focusing on arcane uses of Django (and others) for arcane purposes, it occurred to me a little while ago that I didn’t actually know how a web framework worked. How does routing route? How does middleware work? How do variables in URLs work without regex? (Spoiler: they don't.)

So... I wrote one.

The Tangled Web We Weave is a love letter to learning and to doing things they tell you aren't worth your time. Come and get some inspiration on learning the answers to questions you don't know either... even if some folks say it's silly.

What to expect

  • Tips on how to tackle giant problems
  • Three big takeaways learned while designing a WSGI web framework from the ground up
  • Support and encouragement

Who's this for?

Anyone who's feeling like they need a push to learn something new, anyone who wants to know some weird facts about web frameworks, and anyone who wants to learn a little bit about the beautiful science of learning with Python.

Barn
10:50
10:50
25min
Python In The Small
Glyph

Python is the biggest programming language in the world. According to the TIOBE index, it is more than 10% ahead of its closest competitor (C++). It is the 800 pound gorilla in the programming language world, used in some of the largest systems on the biggest networks in tech.

But all that success comes along with … overhead. In this talk I will discuss the ways that Python can scale back down to a smaller size along various axes, and the reasons why it needs to, if we want it to continue to survive.

Barn
11:20
11:20
25min
Djangonaut Space: How Mentorship Programs Impact The Open Source Community
Lilian

Djangonaut Space is a mentorship program created to address the problem of sustainability for open source projects. Now into its 4th session, it helps grow the community and bridge the gap between new contributors and long-time maintainers, ensuring the web framework and its eco-system continues to thrive and adapt to changing needs.

I will share my experiences and insights about Djangonaut Space as a new contributor and session organizer. Whether you’re new to open source, or a long-time maintainer, or a community leader, a mentorship program can have many benefits for your community. Learn how you can get involved, or how you might borrow ideas to create a successful mentorship program for your community.

Barn
11:45
11:45
85min
Lunch
Barn
13:10
13:10
25min
From Hobby to Planet Scale: 5 Different Ways to Deploy Python
Mike Van Winkle

You're finally done building your super awesome world-changing python project and now you want to get it out there. Where do you start? DIY? Premium Services? In this talk I will cover 5 different ways to deploy Python and when you should use them. Whether you have a small hobby site that you want to deploy on the cheap, or have a big project you expect to scale, we will discuss all the things you need to consider when deploying Python. I will present a matrix of decision vectors (complexity, reliability, scale, cost, fun) and how each approach stacks up and examples and references of each.

The approaches included in this talk will be:

Self-managed (self-hosted) VPS using native ubuntu – This approach is best suited for hobby sized or small to medium projects where the primary deciding factor is either cost or learning.

Self-managed VPS hosting with Docker – This approach is also suitable for small projects but having to install and manage docker containers introduces additional complexity, though that complexity may be useful once you need to scale.

Serverless using AWS Lambda – This approach can be cost effective for small to medium projects, but the complexity may not be worth it for hobby sized projects.

Serverless using Kubernetes – This is a very complex approach but is likely the best way to affordably scale to planet scale.

Premium services like Vercel or Render – This approach is great for some projects but not for all. I will cover the when and when not to consider using premium services.

Barn
13:40
13:40
25min
A Neurodivergent Career--Making Work Fit Us
Joelle Maslak

Neurodivergent brains can excel at tech, but excelling in formal employment can be more difficult! Most jobs are designed for the mythical neurotypical brain, and many are a particularly poor fit for even well-qualified neurodivergent brains. Learn about strategies that might work for different kinds of neurodivergent brains to adapt these neurotypical-centric jobs to neurodivergent brains. Knowing what adaptations can actually help and how to get those adaptations is important! This talk will give some examples and strategies to shape a job to fit a neurodivergent brain better. It will also encourage those with lead, partnership, or management responsibility to consider alternatives to the ways we've always done things, to allow more people to do amazing work in tech.

This talk will draw from 25 years of professional experience both in tech and in neurodivergent community. It will go beyond simple answers to neurodiverstiy in the workplace ("Wear noise cancelling headphones!") and talk about what a job that actually fits some neurodivergent brains might look like. How do we communicate/collaborate with coworkers? Get feedback? Use technology and scripting to assist us? I will mix tech solutions and non-tech solutions to the problems with neurotypical-centric employment.

Barn
14:15
14:15
25min
Key Security Considerations for Publishing Your First Mobile App with Python
Margaret Fero

Maybe you already have a successful app you’re thinking of packaging for mobile for the first time, or maybe you’re going from concept to native app. Either way, there are a handful of security and privacy considerations to keep in mind for both your and your users’ safety as you package applications for Android and iOS. In this talk, we’ll go over some key considerations for iOS, for Android, and shared by both major US app stores. After this talk, you’ll have a straightforward checklist to cover the most important security and privacy aspects of app packaging and distribution so you can focus on the fun parts of your app.

Barn
14:40
14:40
35min
Afternoon Tea
Barn
15:15
15:15
25min
Variables and objects: it's pointers all the way down
Trey Hunner

In Python, assignment statements don't copy objects, and data structures don't actually contain objects. These two surprising facts have a lot of interesting consequences and are the reason behind many of Python's design decisions.

In this talk, we'll explore the reference-like nature of Python's variables and objects, noting both the benefits and gotchas involved.

Among other ideas, we'll see that in Python:

  • The word "change" is ambiguous
  • Copying is usually explicit
  • Mutable default values are a gotcha layered on another gotcha
  • Infinitely recursive data structures aren't a concern
  • And tuples aren't always immutable

During the process, we'll poke at our own mental model of Python and we'll get a bit pedantic at times.

Join us to learn how in Python, it's pointers (or references, names, bindings, or aliases) all the way down.

Barn
15:45
15:45
25min
Python Untethered: Building Robust Embedded Systems
Oliver Rew

When code finally leaves your IDE, the destination is often not the cloud or a PC, but an embedded device in a home, office, or even the wild. However, developing applications for the embedded space comes with its own unique set of challenges and pitfalls. Whether designing for the home or enterprise, embedded devices require additional considerations for usability, reliability, and maintainability.

In this talk, we'll explore real-world challenges of embedded Python development and provide practical solutions drawn from both DIY projects and enterprise deployments. You'll learn strategies for:

  • Ensuring system reliability through power failure tolerance and fault handling
  • Building secure remote access and upgrade capabilities
  • Implementing effective monitoring and observability
  • Managing hardware constraints and system resources
  • Designing flexible configuration systems that work in the field

Whether you're a hobbyist looking to make your home automation more robust or a professional developer designing industrial systems, you'll walk away with concrete patterns and best practices to build more reliable embedded Python applications.

Barn
16:20
16:20
25min
Prompt engineering & social justice: what we know so far
Tilde

Large language models are only as good as the data we feed into them. Unfortunately, we haven't quite dismantled racism, sexism, and all the other -isms just yet. Generative AI isn't going away, so let's apply a harm reduction lens. Given the imperfect tools that we have, how can we write LLM prompts that are less likely to reflect our own biases? In this session, we'll will review 5 current research papers straddling the intersection of prompt engineering and social science. We'll also walk through an interactive live demo in Python, showing how to apply this research to real world problems. You'll leave with some ideas about how you, as users and builders of generative AI applications, can iterate towards a more equitable world.

Barn