Renato Cavalcanti, Senior Software Engineer at Lightbend is an amazing speaker at many different conferences and he kindly took the time to answer a few questions for us about his experience with Scala and Functional Programming as well as his thoughts on the community and his experience. We hope you enjoy this interview, we definitely enjoyed it!
- Tell us about yourself, what’s your background, when did you fall in love with software engineering?
Ah! That’s probably unexpected, but I have an unusual background. I have a psychology degree from the Federal University of Rio and I came to Europe to study philosophy in Paris. To pay the cost of life I started to work part-time as developer. I learn some basics with a friend before I left Brazil and that helped me a lot when I was in France. That was pretty much unexpected to me, because I didn’t know I would find it exciting.
- What made you adopt Scala as your functional language? How did you learn Scala?
I didn’t pick Scala as my functional language. It’s the other way around. I discovered FP because of Scala. My first contact with Scala was a presentation that Luc Duponcheel gave at the Belgian Java User Group. At that moment, I don’t think I fully understood what was going on, but I simply got the feeling that there was something for me there and that I had to learn it. I just followed my guts without much thinking.
- What's it like working for Lightbend?
It’s really nice and exciting. Sometimes really challenging because of the distributed nature of our teams and because we are bending the light. At any given moment of the day there is someone in the globe writing an email that we want/need to read. On the other hand, it’s also very flexible. Because the teams are distributed doesn’t matter much when do you work, everybody is in a different timezone anyway. That helps a lot to find a good work/life balance and have more quality time with the kids for example.
- How do you feel using Scala benefits your line of work?
I think that Scala shines when it comes to the type system. It really allows us to produce well-typed and intuitive APIs by removing lots of the boilerplate.
- What's the most scalable project you have worked on?
I can’t disclose much of it, but I once worked on a project that was dealing with processing of digitalised documents. The system was reaching its limited, especially at the end of the month when lots of payslips needed to be processed. We needed to rethink a huge chunk of it. Funny fact, when we refactored ServiceA and made it much more resilient and performant, we broke ServiceB down the chain. It couldn’t cope with the amount of data flowing to it. That was a good example that you need to be reactive from A to Z. Half reactive is no reactive.
- What were the first functional languages you started using?
Well, I guess it was Scala. :-)
- What do you think the future holds for Scala?
I’m really looking forward to Scala 3.0. As I was saying, the Scala type system helps you a lot in building intuitive APIs. That will only gets better with Scala 3.0.
- What is your favourite aspect on working with Scala?
The type system. I’m sounding repetitive. :-)
- How do you stay up to date on all things functional and new technologies?
That’s a very good questions. You can’t keep yourself really up to date, but it’s important to have a least some knowledge about everything happening around you. And when you need it, you know where to look for information. For me, what works best, are blogs, conference talks and hanging out with the community at events. You hear and read from different sources and bit by bit you keep growing your knowledge.
- In terms of women in tech, how can we encourage more women to take up tech as their career choice?
That’s a hard one. I wish I had an answer to that. I guess that the first thing to do is to make sure we have a safe environment for everybody. I’m not only talking about women in tech, but to all groups that are underrepresented.
- Do you attend many community events and conferences? If yes, what would be your favourite one and why?
Yes, I do.
Conferences are only good with we create a nice / safe environment to foster social contact. For that matter, I believe that all Scala conferences are doing great: Scala Days, Scala Exchange, Scala World, Bee Scala, Scalar, etc. I don’t have a favourite. Each edition is different and I always go back home with a good vibe.
- Do you have a favourite speaker - who would it be and why?
That’s also difficult to say. I can name a few that always have a beautiful and/or exciting story to tell. Right now I can think on Runar Bjarnason, Bill Venners, Dean Wampler, Jon Pretty, Manuel Bernhardt. There are so many, I’m probably missing a bunch of them.
- What advice would you give someone who wants to learn Scala?
Start slowly. Scala is a very dense language and there are many communities inside the Scala community, ie: Akka/Reactive (Lightbend) and the Typelevel folks.
This can be overwhelming if you come from classical Java world.
- What’s the toughest interview process you have been part of?
Oh, it was not technically challenging, but once I got a programming assignment that I had to code on a Windows machine using Eclipse and a AZERTY keyboard. I’m a Mac, IntelliJ and QWERTY guy. They didn’t allow me to code on my own machine. That was a total disaster. I couldn’t type anything and couldn’t finish it. I didn’t get the job and after the facts, I think that was a good thing. My computer and my keyboard are an extension of my brain and hands. An employer should understand it and know that forcing another environment won’t help them evaluate anything.
- We hold a monthly Scala in the City meet up where each month we choose a different topic, if you could choose any Scala topic to hear about, what would it be?
I want to hear more about Event Sourcing, Distributed System and Microservices.