An engineer’s view on building a Rewards and Referral product

April 2021
An engineer’s view on building a Rewards and Referral product

As a high-growth software company, LotusFlare knows that overcoming difficulties is part of bringing exceptional products to life. That is why we created, and continue to expand, our knowledgeable, hard-working and innovative team. By working on interesting projects and mission-critical systems our employees enhance their knowledge and develop new skills. One of our colleagues is Jelena Arsenijevic, a Server Engineer in the Rewards and Referral team, based in Belgrade, Serbia. Today she tells us more about the product she is working on, how she organizes her day, the challenges she faces and what she has learned so far at LotusFlare.

Can you tell us more about Rewards and Referral and your role in this team?

JELENA: The Rewards and Referral product is one module within our technology platform. Its purpose is to drive customer acquisition, engagement and retention on digital products. Our Rewards and Referral program consists of different features, such as activity based rewards, elite tier programs and daily rewards. For example, when someone tops up their account, they could receive a voucher for a latte at Starbucks. There is also a spin wheel feature where users get a chance to win a random reward such as a free ticket to the cinema.

I was here when the Rewards and Referral Team was formed and that was really cool because it was the first time I got a chance to design and develop components from scratch. It was exciting to see it all working in production later on.

What technologies and tools do you work with?

JELENA: As the majority of the business logic for Rewards and Referral is in Lua I mostly use this programming language. Part of the code is written in Scala, but this is more for scheduling tasks or rewards. Other than that, we use Cassandra, Redis and Kafka as databases. All of our servers are on AWS so being familiar with infrastructure is also crucial.

What is the most challenging aspect of your role?

JELENA: The most challenging part of my role is to ensure things are ‘bulletproof’ but also adjustable. I have to make sure the implementation is robust and reliable, but also flexible enough to support design changes. Since this is a pretty new module that we wrote from scratch, this means both designing and adjusting it in months to come. The main challenge is designing it in such a way so that we can sustain changes easily, and not refactoring bottom up to support any new requirements. That is not always possible, but it is a challenge.

blog-slika-.png

What are the pros and cons of working in an international team?

JELENA: I think the main benefit is getting to know and work with great engineers all over the world, there’s always an opportunity to learn something new. Working in different timezones has its benefits in quicker response to any issues, but on the other hand finding a meeting time that works for everyone can be challenging. My main concern used to be communication, since you don’t share an office with your teammates, but this was never an issue with daily syncs and writing regularly on Slack. The biggest challenge in my opinion is that it takes much more time to form culture across remote teams.

What does your typical day at work look like?

JELENA: It starts with a nice cup of coffee, planning the day’s work ahead and then getting to it. I usually take a lunch/walk break in the middle of the day and the afternoon is typically reserved for meetings. Lately, since I have been working from home I didn’t have a very consistent schedule. Some days I would start later to catch some sun in the morning (or just sleep in), and some days I would finish earlier to spend some quality time with my family and pick up my work later on in the evening.

What do you like about working at LotusFlare?

JELENA: So far it has been the opportunity to work on a product that many people all around the world use every day and being able to work on the design and development of new features. I also enjoy learning about new technologies and in general how a large scale product works in production. My colleagues at LotusFlare are always ready to jump in and help or just grab a (online) cup of coffee, so a huge kudos to all.

How would you describe LotusFlare to someone that is considering joining our team?

JELENA: It is very dynamic and fast paced and you will learn a lot quickly. It depends on the team and what you will be doing, but you will be thrown in the deep end. Expect to be given independence and bear responsibility for your work, but don’t be alarmed. That doesn’t mean you won’t get all the support you need. You will learn a lot, and grow as an engineer.

There is no doubt that working at LotusFlare is both rewarding and challenging. If you are interested in working with us please check out our Careers page for more information.