Learning Resources for Full-Stack Developers

These are the technologies that we work with most of the time

Go

Our backend is almost completely written in Go. There is not that much to learn if you are new to Go. The language is pretty small and will not change in the coming years since there is a backwards compatibility agreement.

The following resources should be looked at in the given order. They build upon each other and most of them can be done completely without installing Go on your local machine.

At this point you are ready to code but there is still a lot to learn. The following resources will give you a better understanding of the language, common conventions and patterns.

Angular

Our frontend is currently written in JavaScript and AngularJS 1.x. However, we will switch soonish to Angular >=2 and therefore TypeScript. Hence, there is no need to learn Angular’s old API.

DevOps

Docker

We are currently using Docker for every service and task of our product and infrastructure as our general container technology. The most important parts that we are using of the Docker stack are the general image and container management. Hence, it is important how to create and manage Docker images as well as how to create, manage and debug Docker containers. Everything else, e.g. the lifecycle of our services and therefore of our containers as well as the allocation of resources for these containers, is handled by Kubernetes.

  • https://docs.docker.com/get-started/ This is the official getting started tutorial series of Docker. This series includes a lot of different topics that can be handled by subprojects of Docker. However, we utilize only the general image and container management.

Kubernetes

We use Kubernetes to deploy and manage every service of our products. This gives us the flexibility to deploy our products in every available cloud and in bare-metal infrastructure. Since we are foremost working on a product that gets deployed, it is most important to understand the basics of Kubernetes (pods, deployments, services and configurations) instead of installing a cluster from the ground up.