Our Tech Stack

Find out What Programming Languages, Frameworks, Libraries, Methods and Tools We Use

We mainly work on our services with JavaScript (with a strong focus on React and Node.js), Ruby on Rails, Java and Go. Our platform, which is provided by our DevOps team, works 100% by AWS. We do not operate any servers. In our work, many systems and components are automated and test-driven. Continuous integration and deployment (CI/CD) is the foundation of development allowing us to deploy software quickly and efficiently. Test-driven development (TDD) and pair programming are among the practices we use to keep the quality of our software at the top level.

Microservices Architecture

Because web functions no longer need to be managed in the server, websites can be designed around microservices. A microservice undertakes a narrowly defined task which is initiated, carried out and terminated independently of other microservices.

Headless/Decoupled Architecture

The tasks carried out at the backend, such as creating, managing and saving content, are separated from the presentation on a frontend. That means that our architecture is headless, or decoupled.

Methods

The quality of the software we develop is one of the key aspects we concentrate on. In order to make sure that we adhere to the highest standards, we use, among others, the following methods.

Agile Development / Scrum

We realize our projects agilely. Together with clients, we proceed step by step. In manageable sprints we achieve early success, maintain flexibility and thus create the basis for a sustainable, continuous development of our web applications. We use Scrum methodology and our sprints usually take 10 to 30 project days. Each sprint begins with a planning meeting and ends with a sprint review including performance tests and acceptance criteria control. There are also retrospective meetings that take place regularly to constantly improve team work.

Test-Driven Development (TDD)

In order to identify and eliminate potential conceptual weaknesses at an early stage, we create tests for all functions before they are developed by a programmer.

Pair Programming

We use this method in which two developers collaborate on one task, because for us, it is the most productive way to develop applications due to fewer bugs, better code, higher conceptual consistency, and less work time consumed.

Tools

Choosing the right tools lays the foundation for all the work that is done in the future. It greatly influences team performance and code quality. Therefore for our projects we use the best, proven tools available on the market, for example the following.

GitHub

The source code of all the applications we create are located in GitHub repositories. The service is used for version control, issues, code reviews, deployment etc. For the organization of the repository we utilize Git-Flow.

Amazon API Gateway

Amazon API Gateway is a fully managed service that simplifies creating, publishing, maintaining, monitoring, and securing APIs at any scale.

AWS CodePipeline

CodePipeline is a continuous delivery service we use to model, visualize, and automate the steps required to release our software. In our projects we use several pipelines (virtual environments). Each pipeline is configured to respond to actions defined by Git branches. As soon as there is an update of the code, the process starts automatically.

AWS CodeBuild

AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy. In a CodeBuild project, dependent packages are installed and the application is built. At the same time, automatic (integration) tests are conducted. We also make sure that the application meets all the necessary requirements by defining acceptance criteria (conditions). Only when all tests have been passed the application is deployed.

AWS CodeDeploy

CodeDeploy is a service with which the content of the (public) pages and the redirects are transferred to the S3 bucket. The Lambda functions are updated if necessary, their new versions are linked to the CFD and the cache of the CFD is invalidated.
Develop­ment Environ­ment

Cloud Infra­structure (Excerpt)

Databases (Excerpt)