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.
Babbel’s Tech Radar can be found in Engineering and Data Engineering categories of jobs.babbel.com.
And it can directly be accessed from https://jobs.babbel.com/en/tech-radar/.
Adoption Levels
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.
Categories
Tech Radar represents our tech stack under 4 different categories:
- Languages
- Frameworks
- Infrastructure
- Data Management
1. Languages
The Languages category includes the programming languages that have been evaluated by Babbel. Each language mentioned in the radar has a specific use case. For example, we use Swift to develop Babbel iOS application and Kotlin for our Android app. Python is a popular choice among data engineers and teams working on machine learning and recommendation systems. Ruby is one the most dominant languages in Babbel back-end services and most of our content-delivery parts are written in Ruby, as well. Javascript on the other hand is used both for front-end and back-end applications, depending on the project type and the respective team’s expertise.
We have used CoffeeScript in the past, but with the evolution of modern JavaScript, we decided to stop using it and migrate our services to ES6 or newer versions instead. Java at Babbel had a similar story and moved to hold on behalf of Kotlin.
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.
2. Frameworks
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.
3. Infrastructure
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.
Closing Words
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!