The Cloud team in Lenses.io uses Golang for the Lenses.io Cloud and we adopted BDD in our testing and in this article we will try to show how we can implement a simplistic BDD with Golang.

Behavioral Driven Development

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).

Given-When-Then is a style of representing tests specifying system’s behavior using a SpecificationByExample. Gerard Meszaros describes this pattern as the Four-Phase test which includes the followings:

  • Setup (Given)

The above is simplified a bit more with the formulation as:

  • Arrange


In Lenses.io not only have our engineering teams adopted GitOps in our software delivery but we also provide rich features at the heart of our product to ensure developers building real-time applications on Kafka can adopt the best GitOps practices. You can read and watch more details in our talk at Kafka Summit here.

This post will explain how we adopted GitOps for bootstrapping Kubernetes clusters, the challenges we faced and how you can do the same using ArgoCD. Before jump in the topic let’s understad what is GitOps.

What is GitOps?

At its core, GitOps is code-based infrastructure and operational procedures that…


During the last decade, applications dealing with high throughput data and do so in near real time. Take Network Intrusion Detection Systems (NIDS) for example; a crucial tool in network security — whatever your definition of security is. Until a few years ago, such systems required expensive proprietary hardware solutions, tied with the hardware vendor’s — often poor — software tools. …


Everyone at ezhome Android Engineering team is pretty happy these days, and for good reason! With a final sprint, we were able to achieve a fully enabled Continuous Delivery process.

We don’t have to go too far into the past to understand that Continuous Delivery hasn’t always been a very widespread practice for mobile apps. At least for Android, the principles of testing, code quality, and automation often weren’t promoted at all–yet all of these principles are essential for maintaining a high level of quality for our mobile software.

Things have changed over the past few years, and in a…


After the summer holidays I decided to share my knowledge for Android to the world and especially in newcomers to the Android Development world.

I discussed with a hacker-space nearby in order to arrange a few meet ups per week. I broke down my presentations as below:
1) The Fundamentals
2) First Application — Hands on
3) Clean Architecture — Hands on
4) Effective UI
5) It is about philosophy: culture of a good programmer

We started the presentations two weeks ago and we have already full-filled the bullet 1 and 2. As you understand the first bullet it was…

Spiros Economakis

Site Reliability Engineering Lead-Cloud @mattermost, Certified Kubernetes Administrator (CKA), Terraform Associate, Gopher in heart

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store