At Rasa, our team is building the standard infrastructure for conversational AI. Behind the scenes, the people of Rasa come together from diverse backgrounds to solve today's most interesting challenges in NLP and dialogue management. We're pulling back the curtain to highlight a few of the humans behind the bots.
Today we're talking with Christina Koss, Software Engineer at Rasa. We'll learn Christina's story and explore the day-to-day projects and technologies they're passionate about.
Hi, Christina. Tell us about yourself! What was your path to joining Rasa?
I had almost finished my Master's in Computational Neuroscience and didn't want to immediately dive into the next academic project afterwards. Rather, I wanted to see what working in a company would be like. I wasn't sure what exactly I was looking for (and hadn't really started looking yet), but programming has always (well, since I learned it at the age of 12) been an interest of mine.
A friend of mine was working at Rasa at the time, he sometimes talked about his work and it sounded quite cool. I also liked the focus on Open Source.
When he left Rasa so his position became free, he got me in contact with Tom, I had a job interview and started at Rasa soon afterwards. First it was only a half-time working student contract. After getting my Master's degree, I decided to stay at Rasa and extend my contract.
So my path to Rasa has kind of been a coincidence, but one that I'm really happy about!
Take us through a typical day as a Software Engineer. What types of projects do you work on?
As a software engineer, my job is to work on the development and implementation of our software. We work together in a team, so there are a few meetings each week where we plan together what needs to be done to improve Rasa Open Source and Rasa X and to share our progress with each other and with other teams.
Other than that, I spend most of my time implementing new features or fixing existing bugs. This always needs some time first to figure out how to best do that, and then of course writing the code.
I also review other people's code. Every bit of code that goes into our software needs to be seen (and approved) by at least two Rasa engineers, the one who wrote it and another one, to ensure good quality. Doing those reviews is also a great way for me to improve my own skills by seeing how others write their code.
Another part of my daily tasks is supporting the community on the forum by answering questions or forwarding them to my colleagues.
Which areas of your work are you most passionate about?
I really like fixing bugs.
Of course, some of them are more relevant than others, and we don't have the time to fix them all. A big, constantly evolving software will probably never be bug free. But still, bugs are mistakes and they bug me :D, so it is always satisfying to get rid of one and make the experience of working with our software more smooth.
Also, talking through code together with someone else is great. Most of the time, that happens in the form of review comments, but sometimes I'll have a look at an issue together with a coworker before starting to or while tackling it and talk through different ideas for how to approach it. That is a great opportunity to learn from each other and pick up some new tips and tricks.
What's an important problem you're solving at Rasa?
I've recently been responsible for the new configuration feature. It's been the first time for me to take care of such a big thing, from the first draft of the implementation proposal via actual implementation and several stages of feedback from the team to it being released this week with the Rasa Open Source 2.0 alpha.
The configuration feature makes it easier for Rasa Open Source users to get started with a new project. Previously, they would always have to manually specify the configuration for their model. Now, a default configuration can be used automatically. We will likely improve this further in the future, such that the configuration will be selected in a smarter way dependent on the given training data.
How would you describe Rasa in three words?
Supportive, challenging, fun. (If I could do four, the next one would be "feedback-oriented".)
Supportive: At Rasa, you're never alone. When getting stuck somewhere or having a question, it's easy to find someone who takes some time to answer or help. Also, the leadership team is always asking for feedback on how to support everyone best, and they have done a great job at helping us all with the transition to being fully remote during the last few months. In general, all processes at Rasa are very feedback-oriented, so if there is anything that you could imagine being better / nicer / easier in a different way, it is always welcomed (and often explicitly asked for) to bring that up.
Challenging: The pace at Rasa is fast. We release software updates every month, and revise our goals and targets each quarter to always move in the best direction. For me, that requires constant mental adjusting and a clear focus on what needs to be done. Also, one of the company values is "Challenge yourself to be exceptional", and with the wide range of engineering topics I am still unfamiliar with, there is a lot of opportunity for me to live up to that ;)
Fun: The team offsite at the beginning of the year, where everyone got together in a castle for a few days, was great. And even during every-day business, entertainment doesn't come short. We recently started a book club, and I really enjoy it when there is a thread or two with puns and friendly banter going on in the "random" channel on Slack to lighten up a Friday afternoon.
How do you collaborate with other teams at Rasa?
We meet every second week with both engineering teams, the research team and the customer success team to share what we've been working on.
For some of our tasks, we also collaborate closer with one of the other teams. E.g. when a new feature is planned that builds on a lot of research work, or when the customer success team has feedback from a user that is relevant for what we do.
We communicate mostly through Slack channels, and also work collaboratively on documents. Usually, one person would write up an idea/plan/summary, everyone else gives input via comments, and then we iterate on the original idea a few times until everyone agrees with it. If necessary, we do an extra meeting to discuss a specific topic, but most things can be sorted out asynchronously.
What does a culture of diversity mean for you at Rasa?
At Rasa, people from many different countries and backgrounds come together. That is reflected e.g. in interesting lunch conversations when people talk about their experiences. As a second aspect, I'd like to mention inclusion. It is not only having a diversity of people and perspectives at the company that matters, but also including them when shaping the company's path and goals. Rasa encourages all employees to bring in their opinion. For some important topics, the leadership team does not just make the decisions alone, but the ideas are communicated openly from the beginning and feedback from everybody is sought. This is especially the case for decisions about how to address diversity and inclusion.
How has working at Rasa helped your professional development?
Rasa is my first job after university. So even just these 6 months have done a ton for my professional development!
I can plan my tasks and coordinate work with a team much better. Also, with Software Engineering I've started to kind of explore a whole new universe. Before I started at Rasa, I knew how to code, but I was only vaguely familiar with the concept of databases and had never heard terms like "continuous integration" or "deployment".
As I'm moving forward to start a PhD soon, I'll take these newly discovered things with me and try to incorporate at least some of them more in my academic work. I'm looking forward to setting up my research project with a small CI pipeline and automatic dependency installation :D
What's the most interesting thing you've learned lately?
Work-related, I recently took care of a Rasa X release for the first time. During that I learned a lot about how our CI pipeline works and how many things are automated to ease our work.
Other than that, I learned yesterday that the band Wintergatan is building a second and better version of their Marble Machine. If you don't know them, you should really check it out! It's a sort of music box including several instruments (e.g. snare drum, bass guitar, vibraphone) that are played by running more than 1000 marbles through the machine. It's ... hard to describe but truly amazing, and there's a video series on Youtube if you want to have a look.
What's the best career advice you've received?
You don't have to know what you'd like to do for the next 40 years, or what you want your whole career to look like. It's fine to decide based on what you'd like to do now, and then you can adjust while you're going.
Keeping that in mind has taken off a lot of pressure for me when trying to make decisions.
Thanks Christina! You can find Christina onGitHub.
Want to team up with Rasa? We're hiring! Find open positions on the Engineering team and other roles on ourJobs Board.