Position: Middle/Senior Golang Developer (4993)
Company: Exadel
Experience required: 2y
English level: intermediate

**Armenia, Azerbaijan, Bulgaria, Georgia, Lithuania, Poland, Uzbekistan **

We are looking for an exceptional Middle/Senior Golang Developer with a strong understanding of how best to leverage the language’s unique paradigms, idioms, and syntax. 

**About the Customer:**
The company leverages a software-as-a-service platform to monitor, troubleshoot, and maintain desktops, servers, and other endpoints for small and medium-sized businesses. They partner with Amazon and visit its conferences as speakers.

**About the Project:** 
The purpose of the project is to bring new centralized User Management (including Roles, permissions, etc.) and implement new reliable SSO for Customer’s products. SSO should be able to support a large number of the existing and new applications in the Customer’s ecosystem. At the moment there are 2 identity providers – legacy OpenAM (will be retired) and Customer’s SSO (built using IdentityServer v4). Our plan is to switch all products to IdentityServer v4 and implement new features and improvements. Team’s responsibilities are to analyze the current Customer’s SSO (C#, IdentityServer v4), implement/configure integration with other identity providers and implement missing features, including integration with the existing systems. 

**Tech Stack:**
Golang, ASP.NET Core, AWS Aurora, Postgres, OpenAM, IdentityServer v4, OAuth2/OIDC/SAML, Docker

**Requirements:**
2+ years of development experience
Expertise in Go programming language
Knowledge of Cassandra, PostgreSQL, and Kafka
Proficiency in Microservices
Experience with the full suite of Go frameworks and tools, including:
 – Dependency management tools (go modules)
 – Go’s templating language
 – Go’s code generation tools
 – Testing and mocking libraries: GoMock, Testify
 – Popular Go web frameworks, router packages (e.g. Gorilla Mux)
Ability to write clean and effective Godoc comments

**Nice to Have:**
Bachelor’s or Master’s degree in computer science, computer engineering, or a related field

**English level:**
Intermediate+

**Responsibilities:**
Write scalable, robust, testable, efficient, and easily maintainable code
Translate software requirements into stable, working, high-performance software
Play an integral role in architectural and design decisions to build an efficient microservices-distributed architecture