company

Building a self-motivated learning mindset: Core engineering at Redpanda

Meet Lena Anyusheva, one of Redpanda’s Core engineers and the resident founder of Redpanda’s book club

By Lena Anyusheva on March 18, 2022

Time to read icon8 min read

Introduction

I was born in Elista, Russia, and have lived in Russia on and off my whole life. I was a National Olympiad winner in Russian language in school. I have also studied French, Latin, Spanish, German, and my ethnic language Kalmyk. You could say that I’ve always been interested in languages, not just programming languages.

Today, I’m a Software Engineer on Redpanda’s Core team.

My engineering story — from fintech to Google

I earned my BS and MS in Applied Mathematics and Informatics, which is essentially a kind of Computer Science degree offered in Russia. My first work experiences, though, were actually in the finance industry. I worked in the technology divisions and on the engineering teams at several banks. My first internship was at Deutsche Bank, where I went on to work part-time for one year following my internship. I then accepted another internship at Goldman Sachs in London. When I completed that internship, I returned to Moscow and joined a hedge fund there called WorldQuant, where I did quantitative analysis. So, the first three companies I worked for were all finance companies, and then I pivoted and decided to work for Google.

Everyone was surprised when I made that change because they thought I would remain in finance, and I had thought that might be the industry I stayed in, too. However, I got an interview at Google and in that interview I learned about Stadia, which is Google’s cloud gaming platform. I thought the Stadia platform was exciting, so when they offered me a job in Germany I moved to Germany and started working there. I got to work on Stadia when it was still a bit of a secret project at Google, which was neat.

The motivation for joining Redpanda

On one hand, it can be really cool to work at Google-level companies and be an engineer on that kind of scale. You get to work with a lot of data and you have a lot of users. While I’m still more junior in my career, though, it was important to me to join an environment where things move faster. At a startup, you have the opportunity to learn faster, to make mistakes and recover from them faster, and to contribute to the architecture of a platform from the very beginning. This desire motivated me to pursue my current role in the Core engineering team at Redpanda.

I learned about Redpanda through Twitter. One of my acquaintances from university started working here and was Tweeting about Redpanda’s pull requests from Github, and I saw that Alex Gallego was responding to him on Twitter. It’s not every day, or every company, that a CEO Tweets about your pull requests, so that left an impression on me!

Not only that, but the concentration of talent here at Redpanda is crazy to me. There are other people like me who have worked for Google or other big tech companies, and there are engineers and developers who haven’t worked for a company at that scale but are naturally incredibly talented at what they do. It’s a diverse culture with opportunities to learn from everyone.

I also really liked that Redpanda is source-available. At a lot of the bigger companies I’ve worked for, their code base is very private. But, working here, I can share the code I’m working on and engage with the community.

My approach to cultivating engineering expertise

Before coming to work at Redpanda, I had previous experience working with C++ and Python. However, I wasn’t familiar with C++20, data streaming, or working with Seastar, which is the framework that we use. This was my first job in infrastructure so, while I have the experience of implementing business logic from previous jobs, I’ve had to do a lot of learning for my job on the Core team. The way I see it, the job of a good engineer is to always be learning and improving your skill sets.

In addition to this being my first infrastructure role, this is also the first job I’ve had working with distributed systems. When using databases as an application developer, you simply put the message into the database and you know that it’s there. When you need it, you will get it and you don’t care if the data center goes down or something because you know the data will still be there when it’s back up. However, when implementing distributed systems such as Redpanda, it’s your job to think about all the “what if’” situations to ensure data is never lost.

In light of these differences, I started a book club within Redpanda to help myself and other engineers keep learning about databases and distributed systems so we can further enhance our knowledge from a strong foundation of the basics. We’re currently reading one chapter each week of Database Internals by Alex Petrov , and then we discuss what we’ve learned and ask each other questions.

There are both junior and more senior team members in the book club, so we get some really good discussions going between team members who have questions and team members who have more hands-on experience working with these technologies. My goal in starting the book club was to provide a safe space for our team to start at the beginning and learn all the terminologies and technologies that we will use here. Our engineers have such diverse backgrounds that it’s unlikely for all of us to come into this company and be experts in every single one of the programming languages and technologies we work with. The book club helps us standardize knowledge across the team.

A big learning benefit I see in working here is that we focus on the same key technologies in our work each day. So, while we do work with a lot of different technologies, they’re not always changing. This makes it easier to not only learn the tech needed to be a good engineer here, but to also see how your knowledge is improving over time.

For example, just like I was learning about distributed systems when I first started here, I’m still learning about them now, but at a more advanced level. It feels rewarding to be able to contribute more meaningfully to conversations now, and to be able to track all the progress I’ve made. At other companies, I’ve had to work with many technologies that were constantly changing, which can be exciting, but you also don’t get to have a deeper understanding of the systems you’re working on.

As I’ve continued expanding my engineering knowledge and skill sets since starting at Redpanda, I’ve learned that it’s important to really put effort into finding good sources of information. Learning from inaccurate or outdated information can make things confusing. If you start with good sources, continued learning is much easier. Some of my favorite sources of information I’ve found are C++ Stories, C++ Tips of the Week, and Jean Guegant’s Github blog. For me, a good learning resource is well written and provides a lot of context and structure in their discussions.

Conclusion

I’ve heard first-hand accounts of the struggles people experience working with other streaming data platforms. I’m excited to see how everything I’ve learned and contributed to Redpanda impacts this industry.

I enjoy making complex systems and concepts clear, not just for myself but for others. In the future, I hope to write some technical articles that accomplish this in some regard or other, and I think writing a book would be exciting, too.

When I’m not working or actively learning new things, I enjoy figure skating for fun, and I’m just starting to learn turns and twizzles.

If you want to learn more about my engineering background or my work at Redpanda, you’re welcome to follow or message me on Twitter at @lenka_colenka. You can also join our Slack community or get started with Redpanda here.

Related articles