PyCon Lithuania 2024

503 days working full-time on FOSS: lessons learned

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

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

In this talk I will share some 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
  • 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 3 questions... Ask my colleagues!


This provides a rough outline for the talk.

Introduction (~5min)

Personal and professional context for the talk:

  • Who am I?
  • What FOSS project have I been working on since the 14th of November of 2023?
  • 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?

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.

The speaker's profile picture
Rodrigo Girão Serrão

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 https://mathspp.com/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.