I contributed in a few open-source projects during my career, however, I’m proud of this one.
I’ve written this Terraform provider while working at Babbel, and we open-sourced it. Moreover, it got listed at the official Terraform community providers page.
The full announcement and the article about why we’ve done this and whether it was difficult, you can find at Babbel’s blog: https://bytes.babbel.com/en/articles/2019-06-13-open-source-terraform-provider-for-codeclimate.html
Dear readers, in this post I will not touch upon the most technical topics, but the one I gonna talk about is important for many engineers. Customer centricity has two main advantages. First of all, while being a customer-centric, you always know that what you do has the greatest positive effect on the product. Secondly, you more often get positive feedback from your colleagues or users, which is very valuable both for improving the product and for personal development. If you are one of those developers who just want to work on technical tasks, without thinking, for whom and for what purpose they are – then perhaps this post is not for you yet, although I think it will take several years and you decide to rethink your approach. For those who already understand that customer centricity might be something valuable for an engineer, let’s get started!
Today, we will be talking about staging environment at Babbel and how we recently improved it. As a reader of this tech blog, there’s a good chance that you are already familiar with the concept of 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.
How are you doing, fellow developers? Ready to dockerize your first application? Or what about finding out, what “dockerize” actually means? Let’s start!
The structure of today’s post will be the following:
- Understanding the Virtualization
- How containers are different from Virtual Machines
- Introduction to Docker concepts
This will be the start of the series of blog posts with the title “Achieving Continuous Delivery”, which I plan to write about in the upcoming few months. Topics I plan to cover are:
- What is the difference between CI and CD? Two meanings of CD. What is the business value in it? The tooling we will be using in the series
- Dockerization of a basic application
- Dockerization of an application, which has external dependencies (we will have just a database)
- Build service preparation. I will definitely cover TravisCI and probably some others for a comparison
- Preparing Staging and Production environments, using Heroku and integrating them into the CI pipeline
- Getting closer to the Continuous Delivery with feature toggles
After that, if I will still have an interest, I will also cover the AWS way of going from classical ELB+EC2 to the containerized approach, but won’t commit for this for now. Also, as you know, along the way people tend to change their mind and forgotten steps may appear or in the opposite, some steps will be too easy, so they will be merged with one another. Otherwise, all our estimations would be perfectly precise %)
However, let’s get started with the definitions, to understand, what we’re trying to tell and achieve when we’re talking about CI/CD.
Hey folks, hope you had a great weekend and it’s time to learn something new!
Today we will observe the concurrency topic, and since it’s not such a fair comparison for Ruby, who’s forte is definitely not a concurrency, I will add Elixir to today’s article. However, still, since the series is about Go, the main focus will be on it. Don’t expect performance comparison, I believe it’s not fair to compare these languages since they all have slightly different focuses.
Hello, my dear friends. We all love Ruby (you too, right?) for its expressiveness and a set of useful methods out of the box. It would be a pleasure if when start using a new language, you had the similar methods or at least familiar ways to achieve same goals. Let’s try to pick a few useful methods from Ruby and find out, are there any equivalents in Golang for them.
Let the force be with you, my friends. Today we will dive into some of the features, statical typing brings to us, those are Structs and Interfaces.
In the company I work for, we recently started using Golang for lambda functions development, to replace domination of Node.js ones and with a hope of getting better performance and development speed. I can just say that so far things run smoothly, and I will have a more thorough post about lambdas development on Go on the company blog. And here I will help you get started with it, create your first function and deploy it to the cloud.
Good morning, my dear readers, today we will talk about a concept, without which no software can be developed! Ok, not only without this concept… And actually, it can be…
Ok, never mind, it is still a very important topic if you wish to get the hang of Golang!