PyCon Portugal 2025 🇵🇹
Highlights from presenting at this year's conference in Cascais.
After being home for just a week after SciPy, it was time for PyCon Portugal. This year's conference was in Cascais, which is just a little west of Lisbon. Upon landing in Lisbon, I, against my better judgement crashed in my hotel room, which was surprisingly ready when I arrived around 10 AM. Part of the problem was that, other than the conference and working, I hadn't made any plans for my time in Portugal. Around 2 PM, I managed to force myself to leave in order to fight off the jet lag. I headed towards the center and grabbed my first pastel de nata of the trip and then checked out the nearby Carmo Archaeological Museum, followed by a much bigger than expected seafood and rice lunch, which appeared to be Portugal's version of paella and to my surprise was served in the pot.1 Afterwards, I headed up to Castelo de São Jorge and took a guided tour, which included some of the off-limits archaeological sections, before calling it a day.
The following morning I opted for an easier day and took a two-hour pastel de nata baking class at Homecooking Lisbon, where we made the classic sweet entirely from scratch: from puff pastry to custard. Prior to that class, I had no clue how puff pastry was made, and while I don't think I will ever go through the trouble of making it myself, it was incredibly interesting to go through the process. I also would never of guessed how they get the puff pastry to form rings around the custard – the trick to the signature shape is to roll up the puff pastry into a log and slice it crosswise, then place the spiral cross-sections of the puff pastry in the baking tins and use your thumb to push down the center and then pull up the dough along the sides of the tins.
Once we got to the custard, things started to get easier. At the end, we got to taste our handmade creations along with ginja (a sweet Portuguese liqueur made from sour cherries), which I knew I liked from previous trips to Portugal. Given that we were a bunch of amateurs, I didn't have high expectations for the pastéis de nata, but they were indeed delicious – I guess it's hard to go wrong with those ingredients 😋 Everyone was given some extras to take home upon the conclusion of the class, and, after saying goodbye to my baking partner (an Englishman traveling with his wife and son to meet up with his relatives that came from Tacoma of all places – just like my last trip), I headed back to my hotel on the bus to start my work day.
Clockwise from top left: ruins of the Carmo convent, exhibit in the Carmo Archaeological Museum, me making puff pastry in the baking class, our pastéis de nata before going into the oven, our pastéis de nata fresh out of the oven, the view of Lisbon from one of the castle walls at Castelo de São Jorge. Source: Stefanie Molin.
En route, I got a message from my friend, Rodrigo Girão Serrão, who was running the program committee this year, asking if I could give a talk in addition to the workshop I was giving on the final day because some people had dropped out at the last minute. I was able to get this approved quickly with my employer, and thankfully, pick the slot.
The final activity I ended up booking when I couldn't get myself to leave the hotel room on the day of arrival was a visit out to the Alentejo region, of which, I only knew about the wine. I met up with the guide and the only other participant, a woman from Madrid, in the center early in the morning. I had booked the tour in English, and she had booked it in Spanish, but we both spoke both languages, so I was asked how good my Spanish was, and I kid not, I said no more than five words in response (I believe it was yo creo que bastante bien), and it was then decided we would to it in Spanish, based on how the words sounded. I was also then bombarded with the questions I always get about why I speak Spanish so well, but I didn't mind because, truth be told, I had been feeling for months now at this point that I had been getting rusty – so much so, that I had been watching a lot of Spanish films and series recently to not fall out of practice. The guide happened to be Brazilian and his Spanish was really Portuñol,2 so I was very grateful that I had been brushing up in the weeks prior.
Our first stop was the UNESCO World Heritage Site of Évora, where we visited the Roman Temple of Diana, the Chapel of Bones, which is a chapel made entirely out of human bones, and a very unique exhibit they had next to it of nativity scenes from around the world, which I found unexpected and truly fascinating. When we were given free time, I ended up wandering around and chatting with my fellow tour participant in Spanish. We also stopped by a bakery to try queijadas de Évora, which is a local sweet orange cheese tart 😋
The next stop was a stroll around Castelo de Montemor-o-Novo for more context about the area in past times, followed by a visit to the Couteiro-Mor / Herdade do Menir vineyard, where we were greeted by our guide with empty wine glasses, which was a new experience for me (I've never had to carry the glass around). The vineyard guide took us through the rows of grapes to trace through the entire process of the winemaking there, showing us each of the machines and describing how they are used by the mid-sized producer. Once we got up to fermenting the juice, we were brought up to a giant steel tank of a white wine that was nearly ready to be bottled, and we learned what the glasses were actually for: we got to open the spigot and sample the wine directly from the steel tankard. Then, we tried some local cheeses and chorizos with four other wines they were in the process of bottling, before they showed us the bottling and labeling machines.
Clockwise from top left: azulejos in the Church of St. Francis, section of the Chapel of Bones, nativity scenes from around the world (Mexico and Iraq are the first two). Source: Stefanie Molin.
By the time I got back to my hotel, it was happy hour, so I sat down in the lobby for the free tapas-style meal they have for people with status and listened to the singer, who I remembered from two years prior. She sang a beautiful, Portuguese-version of "The Girl from Ipanema," but then opted for English songs,3 so I headed up to my room to get ready to work the second half of the workday (I took a half-day).
As one of the volunteers involved in the program for this year's event, I had every intention of being on time for the first day's morning keynote, but I ended up having some gastrointestinal issues overnight and needed to take it easy. Thankfully, this episode was NOTHING like the food poisoning I suffered the night before my three-hour pandas workshop at PyCon CZ 2023 in Prague. I ended up arriving within 30 minutes of the scheduled start time, and, after getting my badge, I walked to the room with one of my contacts. The entrance was right next to the speakers, and I didn't want to barge in like that, so I decided to wait. However, after the time it was supposed to have ended came and went, I poked my head in to check what was going on, only to see the speakers were not doing the final Q&A, but rather appeared to be mid-talk. At this point, the urge to sit won out, and I walked in with some other stragglers. The talk went on for another 20 minutes at least, and I began to wonder if I had actually arrived just on time that morning 🤔
Punctuality and sticking to the schedule ended up being a huge problem for the entire event (not unlike years past), but the content was good. My favorite talks were "An A11y for better SEO" by Sandro Costa and "What's new in Python 3.14" by Anže Pečar (a friend and fellow program committee member who also hadn't planned on giving a talk).
At lunch and the coffee breaks, finding a free chair in the shade was not easy, but I lucked out on my first attempt, sitting next to someone I had crossed paths with at many conferences, but never really spoken to, Cristián Maureira-Fredes. Out of the blue, he said to me that he always gets the urge to speak to me in Spanish, but didn't know if I spoke it, which I cleared up, and then we spent most of the breaks chatting in Spanish, along with a PyLadies Conference organizer, Maria José.
That evening several of us went out to drinks, where I was again asked why I speak Spanish and so well (this ended up becoming a daily occurrence as another native speaker would join the group each day it seemed). I took a short walk on the beach afterward before heading back to my hotel to prepare for my unexpected talk engagement.
The second day of talks was also not without shuffling and excitement. I made sure I was early for Pablo Galindo Salgado's keynote. However, the room was nearly empty, so in hindsight, I would have been better just arriving on time 😉 After the first coffee break, I presented "Data Morph: A Cautionary Tale of Summary Statistics," which was very well received; one attendee who wrote, "The examples showing how summary statistics can be misleading are amazing!" Later on, Pablo ended up also giving a talk to fill in for someone during which the venue lost power from the heat.
Despite the conference ending on the following day, we had a closing session since not everyone attends the tutorial day; here, I was invited to the front with the other volunteers for a round of applause 😊 before we headed over to the social event. I made a point to introduce myself to Pablo because despite having presented at several of the same conferences and working at the same company (on opposite sides of the globe), we had never actually met 😅
Several of us left the social event after a drink to grab dinner, and, while chatting with old and new friends, I learned something that changed my world view: growing up I was taught there are seven continents, but it turns out that the number is country-dependent, with my European and South American counterparts at the table all insisting it was six continents because the Americas are one 🤯 I also learned that Portuguese call the immersion blender a "magic wand" (Harry Potter must be a great chef), and I got confirmation on a fact that I learned from the Brazilian tour guide a few days earlier: if two Portuguese people have a kid, they have to name it from an approved list.
Saturday, the final day of the conference, was dedicated to workshops, each two hours long. I started off by attending Cristián's workshop "Understanding and expanding Python: hand-on experience with the Python internals," which took me outside of my comfort zone, working with C. It was a really nice overview of CPython's structure and how you would go about contributing to the Python language, and I made sure to encourage Cristián to do more workshops in the future after he mentioned it was his first.
After lunch, I went to Rodrigo's "The Pokémon trainer's guide to Polars" workshop – I seem to end up in a Polars workshop once a year, but I never actually end up using it. I was still tweaking mine, and I figured I could continue to do so if I finished the exercises early (plus I was curious to see my friend's workshop because I had only ever seen his talks). Rodrigo had to present a second workshop afterward, so he once again could not make it to my pre-commit workshop (this has becoming a running joke with this workshop), but we did manage to do something the conference had not yet seen at this point: we got people to the final session on time because we both left the coffee break early to set up our respective rooms 😆 As luck would have it, most of those people came to my "(Pre-)Commit to Better Code" workshop – Rodrigo announced this when he visited, while his attendees were doing exercises 😆 (it was more of a tutoring session, which can be very rewarding too).
Feedback from my session was extremely positive. One attendee shared, "This workshop was favorite thing from the entire event ✨" and another wrote, "I feel I really learned something valuable. It's an easy-to-follow, step-by-step tutorial where I never felt overwhelmed by the sheer amount information I got on the topic! Thank you very much for what you've taught me today!" ❤️
Not ready to say goodbye to the beach yet, I took a seaside stroll along the coast with Rodrigo afterward before heading back to Lisbon to participate in a dining in the dark experience at my hotel. Dining in the dark has been something I have wanted to try for a while now, and thankfully, the food was delicious (and they told you what it was later). I did the pairing with the wines, and that ended up being the only thing I got completely right (the tawny port with the dessert), besides a few ingredients here and there. Several things I had never considered as challenges presented themselves during the experience: how do you know if you finished your food? which side of the knife are you attempting to cut with? where is the bottle of water after your table mate moved it? I went in thinking I didn't like ceviche, only to find out that the appetizer I had enjoyed (perhaps, my favorite item of the meal), was a ceviche with three different types of fish. It definitely challenged my preconceived notions and also made me more grateful for my sight. The restaurant was a chain called Dans le Noir, with locations around the world, and I would recommend it.
To cap off the evening, I met up with Rodrigo, Cristián, Maria José, Pablo, and Anže in the center, where a few of us picked up some pastéis de nata to bring home,4 and then we strolled down to the waterfront. After a while of chatting, a few of us started feeling pretty tired, so we said our goodbyes.
The next morning I headed to the airport; I had stopped by El Corte Inglés earlier in my trip for Portuguese wine and olive oil to bring back, so I didn't need to worry about shopping there. This turned out to be very beneficial as I was met with the World's Longest Passport Control LineTM that took nearly an hour to clear. Upon my arrival back home, Rodrigo shared an article he had written about all the last-minute conference program changes called "PyCon Portugal 2025 programme mafia," which really put into perspective just how much shuffling was done onsite – it was way worse than what I had gleaned from our discussions during the event. All that being said, I think the event turned out very well, and I look forward to the next installment; here's hoping it's in the Algarve, which I have yet to explore.
- I always forget how large portions are in Portugal; it's not just the US. ↩
- A mix of Portuguese and Spanish. ↩
- The tour guide had asked what kind of music I wanted to listen to in the car, and my response was anything but English, but preferably Portuguese. We ended up listening to a lot of Brazilian music, especially Tim Maia. ↩
- The place that was picked by the others happened to be my favorite: Manteigaria - Fábrica de Pastéis de Nata. When I returned to the hotel, the hostess from the dining in the dark experience saw them in my hand and told me "good choice," so I'm clearly not alone. ↩
Never miss a post: sign up for my newsletter.