Position: Senior Go Software Engineer
Company: QАrea
Experience required: 5y
English level: upper

Our client is looking for a **Go developer** who will be on developing Go packages and programs that are scalable and maintainable:
- You will ensure that these Go packages and programs are well documented and have reasonable test coverage;
- You will coordinate with the rest of the team working on different layers of the infrastructure. 
A commitment to collaborative problem-solving, sophisticated design, and quality product is essential.
This project will continue for 2 years, but beyond that, it is possible that we could need to shift you to another project using another technology. This is the nature of our business, being driven by client needs. We have worked in Rust, Go, Erlang, and Python – we find that an awesome developer in one language is usually awesome in the other languages given some time, but we fully understand that some people want to stick to one technology and grind that skill.

**Skills**
- Strong knowledge of Go programming language, paradigms, constructs, and idioms;
- Knowledge of common Goroutine and channel patterns;
- Experience with the full site of Go frameworks and tools 
(including:
                 - Dependency management tools such as Godep, etc.;
                 - Go’s templating language;
                 - Go’s code generation tools, such as Stringer;
                 - Popular Go web frameworks, such as Revel;
                 - Router packages, such as Gorilla Mux.)
- Ability to write clean and effective Godoc comments;
- Familiarity with code versioning tools such as Git.

**Soft Requirements**
- 5+ years backend server development experience in any language (This is for a mid-senior level position, if you have way more experience, we are 
 looking for high-senior also);
- 1+ years backend server development experience in Go;
- Experience working with Jira and Agile development;
- High level of written and spoken English fluency (You should be able to have a technical conversation with a colleague in English without struggle);
- A stable home internet connection where you can engage in video calls on a daily basis.

**Bonus Skills**
- Familiarity with blockchain concepts (If you don’t have this, we will teach you!)
- Experience working with financial institutions.

**Duties**
​​​​​- Writing scalable, robust, testable, efficient, and easily maintainable code;
- Translating software requirements into stable, working, high performance software;
- Playing a key role in architectural and design decisions, building toward efficient microservices distributed architecture.