So you want to be a Go developer ?

After releasing a bunch of opensource software written in #Go like #cks-cli , #seal-cli , i received a lot of PM asking:

  • From where to start ?
  • How to be comfortable while using Go to build my software.

This article is summary of what I answered people previously

If you don’t like reading, you can jump directly to the last section “Advises”


I got many opportunities to build many software from scratch. Indeed, I worked in a DevOps team (SRE mode) since 2016. A such job which requires usually to design software which “operationalize” the work of others — building the right software for the right operation(s).

Before 2018, I used to start my software either by “app.js” (NodeJS app) or even “” (Shell script) if it’s quick-wins, even though i am not convinced with this latter.

At 2018, i learnt Go programming language. But because, of the time shortage, I never dared to finish writing a Golang software till the end.

Until the beginning of year 2020 comes, i realized that the “time shortage” is a lie. And I shifted the gear by a simple software : uploading artifact to Nexus, to be called by pipeline system . There was a lot of hardcoding, but i was happy that I broke the time constraint lie.

Today, the list became longer & software became more mature (unit-testing, auto-release,… ) , i.e:

  • go-http-proxy: lightweight HTTP proxy (6MiB) , replacing squid
  • cks-cli: Helping Kubernetes students to prepare for CKS ( Certified Kubernetes Security Specialist) exam.
  • seal-cli : Elegant wrapper for kubeseal CLI
  • And why not contributing on famous opensource software like this fork of docker/compose.
  • And other non-opensources for organization purposes , using Go Gin, ..etc


1- Learn the specific things about this language. So if you are coming from another lang background, you will not apply same patterns (i.e. there is no object, no OOP,..etc). Check Stephane Grider Course in Udemy about Golang.. it addresses that exactly without going deeply with heavy apps

2. Whenever there is new app required development in your team, create empty git repo, create “main.go” file , and start.

3. Learn by practice after that




Software engineer, Cloud Architect, 5/5 AWS|GCP|PSM Certified, Owner of

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Arth Task: 14.1

Combine Dynamic Programming And Enumeration Method To Solve Dilemma

Developing PHP on Windows XAMPP? Make a local subdomain for new projects

Consume messages from the Kafka using Apache Spark

Creating a custom network topology.

TestNG testing framework — ITestListener


Kubernetes Controller — Implement in Java (Part 2)

Open Source Summit Europe 2019- How it all happened?

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
Abdennour Toumi

Abdennour Toumi

Software engineer, Cloud Architect, 5/5 AWS|GCP|PSM Certified, Owner of

More from Medium

Two Tips to Better Handle Go Concurrency

My best practices on Go fuzzing

Go (Golang): Testing tools & tips to step up your game

[Golang] Dealing with Errors in Golang