Babbel Bytes

Insights from the Babbel engineering team

Testing global event listeners within a React component

Davide Ramaglietta –

Although many developers working with React consider it an anti-pattern, occasionally, there is the need to listen and react to an event globally within a React component. As every good developer out there, you probably want to provide a unit test for this functionality. However, while implementing the test, you might face some troubles… Here comes this article trying to help you on your way through.

Continue reading…

Babbel Neos: the story of eight new junior engineers at Babbel

Gabor Torok –

Babbel Neos was born in May 2018: a Berlin-based, salaried engineering training program for applicants from unconventional, non-computer-science backgrounds. Our target? The aspiring developer who might find it difficult to get a job, otherwise. Through the program we cultivated a mentoring culture and sought to increase diversity within our engineering teams. Six months later, at the program’s conclusion, we hired all eight trainees as junior software engineers at Babbel. They all come from different cultural and professional backgrounds. Six of the eight are women.

Continue reading…

Signing OkHttp requests with the AWS V4 signing algorithm

Frederico Gonçalves

A lot of companies nowadays depend on services provided by Amazon. Babbel is no exception. Calling these services through Http usually requires the requests to be signed. Although Amazon provides a vast amount of libraries that handle this for you, sometimes you need to use your own. Maybe the level of customization you’re seeking is not possible with the provided libraries. Maybe you want to add a feature that uses other 3rd party libraries that are incompatible with the ones provided by Amazon. Or maybe you simply want to avoid adding an entire library just to use a very small part of it. In this blog post, I’ll introduce an open source library we’ve built here at Babbel that signs OkHttp requests.

Continue reading…

A Couple of Takeaways from the (European Women in) Tech Conference

Lina Suodyte –

On November 28-29, a fellow engineer from the Payment team, Karen, and I attended the European Women in Tech Conference in Amsterdam. It was my first tech conference and it was definitely the first event I have ever attended where the only males to be seen were cameramen and members of staff 🤭 On a more serious note, we spent the two days chatting with professionals in the field (both tech women and women-in-tech) and listening to inspiring talks from leading women of tech companies, such as Amazon, Facebook, Xing, Arm, just to name a few.

Continue reading…

From documentation to empowerment

Christian Requena

This is the second in a series of blog posts entitled “How We Work” in which we share with you how we work in Engineering @ Babbel.

Without history, there is no future.

To effectively make technical decisions we need to share a common understanding on the context in which we work. Thus, we need to know “how did we get here?” and then “where do we want to go?”.

Continue reading…

AWS Lambda and APIGateway as an AJAX-compatible API-endpoint with custom routing

Nikita Simakov

AWS Lambda is a powerful tool to build serverless applications, especially when backed by APIGateway and Swagger. Lambda executes your code without the need for you to manage a dedicated server. APIGateway provides a front-end for your Lambda to be easily accessed from the Internet via endpoints that can be configured with the Swagger framework. In this article we’ll take a look at one specific example of an AJAX endpoint that uses custom path parameters, something typically problematic to implement because of Swagger limitations.

Continue reading…

The evolution of our staging environment

Kirill Zonov

Today, we will be talking about staging environment at Babbel and how we recently improved it. As a reader of our tech blog, there’s a good chance that you are already familiar with the concept of a staging environment. I will nevertheless start with a brief definition, so that we establish a common understanding before going into the details of how to secure a staging environment. Bear with me.

Continue reading…