In this tutorial, we discuss how to code a help message using the Cobra package.

Image for post
Image for post
A picture of mine

› Briefly about Cobra

Cobra is a powerful command line package for Golang. The full list of what projects use Cobra is here.

› Before You Begin

Install Cobra in your machine:

go get -u -v github.com/spf13/cobra

Yet, you do not need to create files of our app. There is a generator, which helps to create a working directory very easily.

To install the generator use this command:

go get -u -v github.com/spf13/cobra/cobra

Before we start coding, let’s review a help message we are going to create with the Cobra package.

› Writing Help Message

A help message (or usage message, or doc) is what users see when they

  • invoke a program,


I love when HRs ask me to perform a test without even an interview with a team leader / manager etc. And today’s guest is a recruitment agency. Again, a middleman! Love them!

Image for post
Image for post
Photo by Jose Aragones on Unsplash

They found me on LinkedIn and sent me a beautiful job description without any essential information. For example, in this document I did not find any information about a language. Russian or English? For me it is extremely important.

Me: “Okay, I suggest having a call and discussing this position. I am available on … and on….
HR: “Before an interview, you should perform a test task”.

And she sent me the description.

Test task for Jane
Do this and this in Russian language.

Me:”This test is not complicated. However, I write technical texts only in English. What is…


What happened and how to prevent this in future

Scheduling a call with a person is easy. You can directly contact a person and arrange anything. However, what about scheduling a call with a person through a middleman?

Image for post
Image for post
Photo by NeONBRAND on Unsplash

Today or yesterday?

A recruitment agency is looking for a candidate for an abroad company (yes, they are still looking because of their aggressive conversations). Time difference between me and the company is huge.

A known fact is making arrangements via a middleman can be problematic. You cannot be sure that person on the other side got all your words correctly and you get their words correctly as well.

I thought the hiring manager…


In this tutorial, we walk through what Argparse is and how to build a command-line interface with this package.

Image for post
Image for post
A picture of mine

› Shortly about Argparse

Argparse is a command-line parser for Go. The package automatically generates a help message without predefining it. You probably have heard about Argparse for Python. It brings some features to the Argparse package for Go.

› Before You Begin

Install the package to your computer:

go get -u -v github.com/akamensky/argparse

The -u flag instructs go get to use the network to update the named packages and their dependencies. By default, get uses the network to check out missing packages but does not use it to look for updates to existing packages.

The -v flag enables verbose progress and debug output.

See this resource to…


In this tutorial, we walk through basic concepts and help messages in Docopt. You’ll learn about a practical use case that you can code right now.

Image for post
Image for post
A picture of mine

› Shortly about Docopt

Docopt is a command-line interface description language. It has many implementations for different programming languages. In this tutorial, we’ll discuss the Go version: Docopt Go.

This library gives programmers the ability to describe a program interface with a well-structured help message.

› Before You Begin

Install Docopt on your computer with this command:

$ go get -u -v github.com/docopt/docopt.go

The -u flag instructs go get to use the network to update the named packages and their dependencies. By default, get uses the network to check out missing packages but does not use it to look for updates to existing packages.

The -v flag enables…


Level up your conventional lessons

Image for post
Image for post
Photo by Alexis Brown on Unsplash

Do you ever feel like your language learning is not progressing?

I have been learning English with private tutors since 2017. This month it is already 3 years of my learning process. I practised lessons with Russians, people who speak English as a second language, and natives.

From all these tutors I heard stories about students. Tutors were different, but the stories were the same. Some of them are positive, some are not. But what is common in all these stories is that most students have prejudice about tutors. It is hard to admit, but I had some prejudice too.


A step by step guide for new Go programmers

Image for post
Image for post

I have been thinking about creating bots for Telegram. I use Telegram a lot, so I got many ideas to help me to simplify my routines. One of these ideas is especially useful for language learners — a dictionary.

In this guide, we are going to discuss how to create a dictionary bot for Telegram. I tried to make this material as easy as possible. I divided the entire programming process into several small steps:

  1. We look for an English dictionary API,
  2. Then create the bot and generate a Telegram token with @BotFather.
  3. After that, we start coding by authorizing…


In this story you will find an answer to the question of how some IT companies check tests and value candidate’s skills

Image for post
Image for post
https://imgflip.com/memetemplate/53935790/Amazed-cat

This story is part of the hiring process. First, I had an interview with a hiring manager which was not interesting. The next step is …

Boring Test

After the first interview, the next step is performing a test task, which makes me feel nauseous. You can read why I hate tests here.

It is a common practice to give a test right after a short call. Why? One possible reason is companies do not want to spend their time on you. (Spoiler: they will). Rude, but true.

HR: “.. then, if the test is okay we will invite you to the…


How a job interview can go downhill fast because of universal idiocracy and greediness

Image for post
Image for post
https://knowyourmeme.com/memes/pepe-the-frog

Before this interview, I had a short call with the hiring manager. Also, I performed a test, which was assessed at a low level by a team. The last step is the interview with this team.

Like a Fight

The interview has started. Just audio. I see only a black screen and hear a variety of voices, I guess 5 or 6 including HR, director and team.

Crappy.

During the first 2 minutes, they have interrupted me 3 times.

Team: “Could you tell me what tools you use for writing.” Me: “I use this, this, this and Vim.“ Director: (laughing hysterically) “Vim? Seriously…


In this story I want to share with you a basic relational database which helped me to understand ideas of organizing data for relational databases. If you are a newbie to designing relational databases, this material is for you.

Image for post
Image for post
Photo by Campaign Creators on Unsplash

› Preface

Several years ago I was a junior developer with high ambitions to create web apps. Once I got an idea to analyze all money that I spend to understand my expenses better. I needed an application which could store payments, show statistics graphs, and give more than just a colourful circle graph with all payments in a month.

For these reasons, I decided to develop an app and include all the features that I wanted.
I am going to discuss with you the design of a relational database, which I made for this app.

› What data do I need to store?

I explored this question with an…

Jane Kozhevnikova

Technical Writer in Software Industry

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