Tech Stack of Babbel
The Tech Radar is a tool to inspire and support engineering teams at Babbel to pick the best technologies for new projects. It provides a platform to share knowledge and experience in technologies, to reflect on technology decisions, and to continuously evolve our technology landscape.
We also use Tech Radar to inform prospective employees of Babbel, about the technologies we use. After frequently getting the “Which technologies do you use?” question during the interviews, we decided to take our tech stack public. Therefore, we forked Zalando’s MIT licensed TechRadar and modified it for Babbel.
Another use case of the Tech Radar is to inform our new employees joining to Babbel in a couple of months, because of notice periods, relocation and so on. This way, our new joiners can have a chance to look at the technologies we use and they might choose to prepare themselves for their new position/job at Babbel.
And it can directly be accessed from https://jobs.babbel.com/en/tech-radar/.
The TechRadar includes 4 different adoption levels: Adopt, Trial, Assess, and Hold.
ADOPT: Technologies with a usage culture in our Babbel production environment, low risk, and recommended to be widely used.
TRIAL: Technologies that we have seen work with success in project work to solve a real problem; first serious usage experience that confirms benefits and can uncover limitations.
ASSESS: Technologies that are promising and have clear potential value-add for us; technologies worth investing some research and prototyping efforts to assess impact.
HOLD: Technologies not recommended to be used for new projects. Technologies that we think are not (yet) worth (further) investment. HOLD technologies should not be used for new projects, but usually can be continued for existing projects.
Tech Radar represents our tech stack under 4 different categories:
- Data Management
Programming languages such as GoLang and Typescript are still in the trial stage, however, they are actively being used in production. The decision from trial to adopt usually takes some time since we want to observe the relevant system parts (for example, their performance) for a period of time.
In Frameworks category the most eye-catching one is probably the only trial item, which is React Native. For some time, we have been experimenting with React Native to evaluate possible use-cases within Babbel mobile apps. The decision-making process is still going on, but we already have some features written in React Native on production.
ReactJS is the most powerful framework that we use to build front-end and Ruby on Rails is actively in use, mostly for back-end purposes.
As can be seen from the TechRadar, most of our infrastructure is hosted on AWS. We try to benefit from cloud services as much as possible. We also heavily adopted the Infrastructure as Code (IaC) approach with Terraform. You can check out babbel organization in Github for the Terraform providers developed under open-source libraries by our team members.
4. Data Management
The data of Babbel is stored in multiple places, depending on the data type and the project needs. For caching purposes, we use Memcached and Redis. Relational data stored in MySQL database instances, provided by AWS RDS. DynamoDB also has various usage scenarios within Babbel.
In this post, I tried to give a broad overview of the technology choices at Babbel. However, Babbel is a living organization, and the choices mentioned here are open to changes. For the most accurate picture, please don’t forget to check our TechRadar.
This was our experience with TechRadar. Feel free to leave a comment if you would like to share your experience with similar tools and technologies, and let us know if this post or the TechRadar helped you during your job application!