503 days working full-time on FOSS: lessons learned

PyCon Portugal 2024


Abstract

This session’s header image I worked full-time on a Python FOSS project for 503 days, so what did I learn?

In this talk I will share some of the lessons I learned over the course of these 503 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 code base

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.

Watch the recording