PyConDE & PyData Berlin 2024

525 days working full-time on FOSS: lessons learned
04-24, 13:45–14:15 (Europe/Berlin), B05-B06

I've been working full-time on a Python FOSS project for 525 days, so what did I learn?

Am I a better (Python) programmer?
Am I a better teammate?
Am I a better person?

In this talk I will share some of the lessons I learned over the course of these 525 days:

  • how to get a tech job in this day & age
  • how to put your ego aside when working with others (who know more than you!) and how to deal with mistakes
  • how to interact with users & contributors online
  • how it feels to collaborate to a large codebase

As for the first three reflective questions, you'll have to ask my colleagues!


Outline

Introduction (~5min)

Personal and professional context for the talk:
- Who am I?
- What FOSS project have I been working on for 525 days?
- Who am I working with?

Lesson learned 1 – how to get a tech job (~5min)

In this segment of the talk I share the story of how I got this job.
This will explain how my writing on my blog contributed to establish some reputation and how my (Python-focused) social media presence connected me with the person who would eventually become my employer.

Lesson learned 2 – put your ego aside (~5min)

In this segment of the talk I explain how I deal with PR reviews and how I've learned to embrace the criticism, taking into account that all of your work is scrutinised every time you make a PR.
I'll also tell the story of how I made a couple of blunders in successive PRs, how my team dealt with those, and what I got away from those weeks when I underperformed.

Lesson learned 3 – interacting with users & contributors (~5/7min)

This segment of the talk covers the other end of the interactions on a FOSS project, answering questions like:
- How should you behave when interacting with users making feature requests?
- What about users that report “bugs” that would be “solved” if they read the documentation carefully?
- How do you review external PRs, leave feedback, and request changes?

Depending on how the audience reacts to this segment, I might also tell an anecdote about how bad I felt when rejecting an external PR and how that feeling was amplified tenfold when I found out that the external PR came from a “Python personality”, which also contains another lesson because the person whose PR was rejected handled it in the most graceful way possible.

Lesson learned 4 – working on a large project (~5min)

I will dedicate this segment of the presentation to talk about the strategies I use to deal with the fact that the project I work on is too big for me to keep all of it in my head.
This includes my note-taking system and my PR checklist.

Wrap-up (~2min)

To wrap up the talk, I'll summarise my learnings and share a bullet-point list of the ones that are more likely to be helpful to others.


Expected audience expertise: Domain

None

Expected audience expertise: Python

None

Abstract as a tweet (X) or toot (Mastodon)

Rodrigo has been working full-time on FOSS for 525. Join him as he shares some of the key lessons he learned during that time.

Public link to supporting material, e.g. videos, Github, etc.

https://mathspp.com/talks

Rodrigo has always been fascinated by problem solving and that is why he picked up programming – so that he could solve more problems. He also loves sharing knowledge, and that is why he spends so much time writing articles in his blog mathspp.com/blog, writing on Twitter @mathsppblog, and giving workshops and courses. You can also find his past talks on github.com/mathspp/talks.

His main areas of scientific interest are mathematics (numerical analysis in particular) and programming in general (with a preference for the Python and APL languages), but Rodrigo also enjoys reading fantasy books, watching silly comedy movies and eating chocolate.