Another active contributor to the Scala Community, Daniela Sfregola is the maintainer of a few open source projects and organizer of the London Scala User Group meetup. She is also writing a book with Manning Publications, titled “Get Programming with Scala”.
In her talk Refactor all the things! at Scala Days Lausanne, Daniela will analyze snippets of code and highlight common Scala anti-patterns that make them difficult to understand. In advance of the talk, we asked Daniela about her transition from studying ancient Latin and Greek to Scala, the challenges of learning Scala as a newcomer and the details of her upcoming talk.
What is your most favorite Scala Days story or memory?
My favorite Scala Days memory happened last year in Berlin. I was relaxing after the end of the conference and having a lovely chat with Darja (Editor’s note: Darja Jovanovic, Communication Manager at EPFL, Scala Center) and other people from the Scala Center on how to make this event more welcoming and accessible to people that maybe do not have the same opportunities that we have. In only one year, I am so pleased to see the massive effort that the committee has put towards diversity and inclusion: for the first time, the event is having overall lower ticket prices, as well as student discounts, a diversity scholarship, and childcare support. Kudos to the organizers for making this event even more awesome than before!
What’s your background and what does your current role involve?
I spent most of my college years translating ancient text from Latin and Greek. I did so much of it that when the time came I decided to start a degree in the most far away from ancient Latin and Greek topic I could find – in other words, Computer Science. I am currently a Senior Software Engineer in London, helping companies develop their backend systems – mainly using Scala. My current role involves writing compiler plugins and macros, which means screaming at the Scala compiler (even though it is usually my fault…), waiting for it to complete, and celebrating when my code does not explode in production.
What’s the biggest highlight of your career so far?
Without a doubt, my open source contributions and projects. Dedicating some of your time and talent to open source is a great way to give back to the community while learning and improving your coding skills at the same time! I am also currently writing a book with Manning, titled “Get Programming with Scala”, which will hopefully help people getting started with the language in a simple and fun way.
Why did you choose Scala and what kind of problems does it solve for you?
Scala is a unique language: it combines the OOP and FP paradigms in a really interesting way. It is also so flexible and so much fun to work on! When I started with Scala a few years ago, it was the perfect language to start doing some FP, without abandoning my OOP roots completely. Today, Scala helps me write awesome code by switching from an OOP to FP style and vice versa, depending on the context and requirements of my application.
What is the biggest challenge Scala developers are facing today?
Building a hybrid language is not easy: building a hybrid community is even more challenging! At times, I feel that our community is still divided between those that like OOP versus those that like FP. Scala is both about OOP and FP, which are both important parts that make the Scala language unique.
What can help address this challenge?
Community events, such as Scala Days, and open source collaborations are essential to bringing people with different ideas and coding styles together doing both OOP and FP.
Who should attend your talk at Scala Days and why?
My talk aims at everyone who is new to the language or who would like to improve their Scala coding. Learning the syntax is just the first step towards mastering a new language. Idiomatic expressions and good practices must also be adapted to produce code that is both readable and performant. In this talk, we’ll discuss snippets of code and highlight common Scala anti-patterns that make them difficult to understand. We’ll also discuss how to refactor them to improve their readability. At the end of this session, you are going to be able to recognize code smells and refactor your code to make it easier to reason about and maintain, as well as avoid common pitfalls and possible bugs.
Whom would you like to connect with at the conference?
I enjoy talking to people about anything Scala-related, so I’d love to meet people who love Scala and discuss what they are working on and what kind of challenges they are facing. Also, I regularly mentor newcomers to the language, so if you’d like some tips on how to get started and/or improve your coding style, please make sure to stop by and say hi!