Overview

We are looking for an exceptional GO Developer with a strong understanding of how best to leverage the language’s unique paradigms, idioms, and syntax. Your primary focus will be 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 on different layers of the infrastructure. A commitment to collaborative problem solving, sophisticated design, and quality product is essential.
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.
Requirements:
- 2+ years of development experience
- Strong hands-on experience using Go programming language
- Good knowledge of Cassandra and Kafka
- Good knowledge of Microservices
- Experience with the full suite of Go frameworks and tools including:
- Dependency management tools such as Godep and Sltr
- Go’s templating language
- Go’s code generation tools (e.g. Stringer)
- Popular Go web frameworks (e.g. Revel)
- 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
Advantages of Working with Exadel:
- There are plenty of opportunities for advancement at Exadel
- You can build your expertise with Exadel Expert Groups, which provide support for existing and potential projects
- You can join any community or create your own to communicate with like-minded colleagues
- You can participate in continuing education as a mentor or speaker
- You can take part in internal and external meetups as a speaker or listener
- You can learn English with the support of native speakers
- You can take part in cultural, sport, charity, and entertainment events


