Originally published on LinkedIn↗.
I decided this time to write a little report about my experience at ScalaDays 2023 in Seattle↗, now that I’m back and the jet-lag is not kicking anymore. It was very different than my last time (2019 in Lausanne), maybe because this time I was also a speaker.
That was a nice experience, I was honored, and super happy to do that. I want to thank all people that discussed with me after the presentation and the people who liked it and gave me some personal compliments. I feel really thankful for that. It was a great experience, and I’m particularly thankful to the PC for selecting me, and from the organization side to Allyson Alexandrou↗ for her excellent and continuous help.
If you want to have a look at my slides, they’re here on gitlab↗.
Thanks to my lab CodeLounge↗, the Software Institute↗, and Università della Svizzera italiana↗ for the possibility of teaching at the MSDE Master↗ and for supporting this trip. A final thank you to my long-standing TA, Marco Raglianti↗, and to all the students that attended my course over all these years, the ones who liked it and the ones that through their constructive criticism helped me to improve it: This experience would have not been possible without you.
On the Conference, Talks and the Community
In general, the community has been very welcoming. It was cool connecting with new people and chatting about both Scala and a multitude of topics, technical and not. It was super fun to meet again Bill Venners↗ and his wife Siew and share the memories of the city tour in Lausanne. His talk was plenty of things I loved to teach and study - from Turing machines to program synthesis and something I’m working on for a talk - AI assisted programming (see here↗).
One of the main unexpected things I had was hearing about some Software Engineering research in some of the talks. I worked with Alloy and it was cool to hear it mentioned at the end of Raúl Raja Martínez↗ from 47 Degrees I Part of Xebia (now Xebia Functional). The context they use it is on a DSL to specify systems using temporal logic, Karat↗. The talk was actually about another library, Xef↗, to integrate AI workflows that they’ve developed in Kotlin and in Scala. I will definitely experiment it a little for some of the work we do at CodeLounge to support research in economics↗.
Another interesting topic is related to how to manage people: Maria Livia Chiorean↗ from Expedia Group↗ gave her unique point of view on how she moved from a technical role to a managerial role, including how she can still write Scala part-time and what she could get from the language that helped her to perform good people management. Program comprehension was another topic involving SE research that I found time to chat about, this time with Szymon Rodziewicz↗ from VirtusLab↗. I hope there will be some opportunity to do some work together that involves the Scala ecosystem. It was also cool knowing about how VirtusLab works with partners by talking with Peter Ratcliffe↗. Tomasz Godzik↗ was also great in introducing me to the Metals internals during the Spree and I hope I will find the time to finish the task and maybe submit a PR (maybe someone has already finished that ‘easy’ code action though). His talk is among the ones I have missed unfortunately, so I will have a look at the recording as soon as it will be available. In general, the work that VirtusLab↗ is doing on the Scala tooling has been amazing. Krzysztof Romanowski↗ also discussed what are the requirements for the most effective build tool for Scala (thanks, by the way, for the nice chat about Jetbrains tooling). Again from VirtusLab, the Keynote by Paweł Marks↗ highlighted many of the positive and more critical aspects of the state of the Scala language including frameworks like Spark. Spark was also the topic of a presentation by Denny Lee↗ and Ginger Holt↗ about a Scala client powered by Spark Connect↗. It’s a quite nice addition to the Spark ecosystem, enabling a decoupled client-server architecture to connect to a Spark cluster remotely.
The keynote by Daniel Spiewak↗ was on a completely different topic and quite uncommon to see - micro-optimization - and I was blown away from the presentation skills, the quality of the talk, and the ability he had to engage the audience. It was very interesting to learn about the performance effects and interaction of high-level features of Cats with lower-level aspects of the JVM.
If this was a software engineering conference, some of the presented work would definitely have won an award. I want to give huge kudos to August Nagro↗ for the awesome work he has done with Magnum↗. It’s really a fresh look on working with DBs in Scala and I wish it gains the success it deserves. I am an old fan of slick but I think I want to rewrite some new and old code. Automatically generated repositories? Really a killer feature↗! I also discovered that Scala 3 now has annotation macros↗ - and from quite some time actually - I should definitely pay more attention to the recent additions to the language. ducktape↗ by Aleksander Rainko↗ is another cool library that leverages macros in Scala 3, reducing boilerplate code to transform similar case classes, enum to enum, etc. Again related to data transformation - a library called Gallia was presented by Anthony Cros↗ (who has a super interesting background on bioinformatics, by the way). I could not attend the talk but for what I’ve seen from github, this will be among the first recordings I’ll be looking at when they’ll come up online.
Somehow related to meta-programming used both by Magnum and ducktape - Jack Viers↗ showed us how nice it is to write a Scala compiler plugin. Given the nightmares I still have after my little experience on writing a Java compiler plugin↗, it was really refreshing. I need to find a toy project to experiment with it. On the compiler, I think that the work that the Scala Center↗ has done through the compiler academy↗, as presented by Anatolii K.↗, is one of the most interesting examples of community effort done to involve new contributors in an organized and structured way. People from the Scala Center also presented advance language features of Scala 3 and its compiler. In particular, Guillaume Martres↗ did an interesting talk about polymorphic function types (I love to learn more about all the interesting improvements in the language), and James Thompson↗ talked about incremental compilation and the way it works in Scala 3.
Interoperability is also something that the Scala community seems to be moving investing some effort in. I’ve been amazed on how ScalaPy↗ makes it easy to call python from Scala, and in Seattle I’ve learned that there is a library, slinc↗ by Mark Hammons↗, that leverages Java 17 Project Panama, and Scala 3 metaprogramming features, to allow interoperability with C. I find the library very elegant, especially in the way it supports referring to C types, declaring interfaces to C functions, and aggregating such functions into traits.
There are a few interesting talks that I missed and that I need to watch online, in particular the one by Zainab Ali↗ about functional streams and of Haoyi Li↗ on its amazing work on the ecosystem of libraries that he built for Scala (in particular one we used significantly, Fastparse↗).
On Seattle
Seattle is definitely among my favorite cities in the US! Last time I went there was more than 10 years ago and just for a couple of nights.

This time I could explore the city a little more. The Space Needle is a classic…
… and nearby the Museum of Pop Culture↗ is also an interesting venue (and the building has been evidently designed by Frank Gehry↗). Lots of childhood memories there, including this one:

The boat tour on the harbor gave fantastic views of the skyline (except maybe for the container ship and the dramatic clouds)…

… and the street art is really amazing, e.g. this heron:

The underground tour↗ and the related story is one of the most funny & interesting experiences you can get to learn about some history of the city…

… and the Pike Place Market↗ is one of the best places to hang out for food in the city, especially because most shops are locally owned.

