A Day in Life of a Yodling Backend Engineer

Szymon Gasienica-Kotelnicki
SwissBorg Engineering
3 min readAug 29, 2023

Hello, I’m Szymon Gasienica-Kotelnicki, a senior backend engineer in the Yodling Squad. In this blog post, I will give you an insight into how we work day-to-day.

The Yodling Squad

Our team is responsible for maintaining and developing SwissBorg Earn. On a daily basis, we ensure that subscriptions, redemptions, and rewards are processed correctly for our users. Our main technical concerns revolve around consistency for our operators. We have to make sure that our community members’ money is processed correctly and in a timely manner since each 24-hour period means a new reward.

Additionally, we support lockup strategies with limited availability that sell out within seconds. In these cases, we must ensure that we process the correct amount of transactions and constantly improve performance in the parts connected to the lockup feature, as we have experienced some failures before 😅

Working on the Earn product is interesting from both technical and business perspectives. We brainstorm and develop support for new investment opportunities, as well as constantly improve the current technical limitations and evolve our current architecture. It’s very exciting!

Our squad comprises one engineering manager, one product manager, one UX designer, two mobile engineers, one QA engineer, and two backend engineers.

Meetings

We have a 15-minute daily stand-up to discuss daily tasks and synchronise. Additionally, we have a dedicated spot for mobile API discussions once a week, but we only use it when necessary.

On the backend side, we have a weekly meeting every Friday to discuss progress made during the week, technical debt, and technical tasks that we can work on in the near future. We also have dedicated time every week to deal with technical improvements.

When starting to work on a new epic, we begin with a Process Level Event Storming session after having a rough idea of what we should develop. This session helps us discover rules and hotspots that can assist us in preparing a better, more loosely-coupled, and more future-proof backend architecture.

We also have design meetings where we go through the process from the user’s perspective. This helps us prepare appropriate read models and API schemas.

Feature Development

Once the feature has been analysed and the architecture and tasks are ready, development begins. We prepare merge requests (MRs) and conduct asynchronous or synchronous code reviews. For testing, we ensure that we have at least one acceptance test that covers both the user and operator perspectives of the feature, as well as numerous integration and unit tests.

We strive to merge into the main branch and deploy new versions as frequently as possible, utilising feature flags to do so. When the feature is ready, we conduct bug bashing sessions where the entire team goes through the user journey on staging and production environments. Once we are confident, we gradually release it to the community.

On-call rotation

One of our primary responsibilities is supporting our Yield Operators. To ensure that we are always available to assist them, we have put in place a weekly on-call rotation. During this time, one team member is designated as the on-call person and is responsible for answering any questions that may arise, making necessary operational changes, and responding to alerts.

This way, our Yield Operators can rest assured that they will always have someone available to provide them with the necessary support. In order to streamline communication, we have also assigned a dedicated Slack handle to the person on-call. This allows other engineers to work uninterrupted while still ensuring that the on-call person can be easily reached in case of an emergency.

That’s all! Working in the Yodling Squad is very fulfilling and thrilling! We have a safe and supportive environment and we truly follow agile principles, where we communicate with each other a lot, we prioritise our community members when developing new features, and we fully embrace change and know how to adapt to it.

--

--