Position: Golang Lead
Company: EPAM Systems
Category: Golang
Experience required: 3y
English level: upper

Lightweight and first of its kind solution designed revolutionize how organizations manage their cybersecurity through automated performance reporting.

It is a modern and complex data warehouse-type microservice application, with a robust and mature CI/CD pipeline. We’re looking for an experienced Senior GO developer to take a critical role in the development of valuable new features as part of a high performing team with the highest standards of technical excellence. If you are inherently curious, have a bias for action, and thrive on solving hard problems, propose yourself today.

Key Responsibilities
●       Proactively and clearly communicate dependencies and technical hurdles to the team
●       Own the development and maintenance of several backend services to:
- Build high-quality software in Go that integrate with 3rd party APIs
Work with data sets, developing complex PostgreSQL queries that deliver expected outcomes
Participate in requirements gathering and troubleshooting activities

About You / Qualifications
●       Bachelor’s degree in CS, IT or Software Engineering
●       English B2
●       Demonstrated enterprise experience as a well-rounded Senior Go developer with 4+ years’ experience working in technically complex environments, data warehouse, building REST APIs, microservices architecture, automated CI/CD tools and processes, as well as Linux, etc.
●       In-depth understanding of OOP, design patterns, data structures, algorithms, data integrity, software composability, and concurrency
●       1+ years of enterprise experience writing advanced SQL queries and a willingness and ability to grow in this area
●       High attention to detail and curious, with ability to logically (efficiently) and independently troubleshoot technical issues, removing blockers using creative and approaches
●       Highly collaborative team player with ability to build trust and relationships, holding other team members accountable for their best possible effort

Key Technologies
General:
●       Understanding of HTTP protocol enough for debugging 2 services communication issues both from client and server sides
●       Understanding of blocking issues (goroutine is blocked)
●       Debugging (local, remote)
●       Profiling with Pprof endpoint (local, remote)

Go experience:
●       Different versions (from 1.16 to latest)
●       Modules, vendoring
●       Makefile to build

SQL experience:
●       Raw SQL + database/sql from Go side
●       DB migrations up/down approach with Go embedding
●       Ability to support complex nested queries with JOINs, grouping, sorting

Testing:
●       Unit testing, Gomock for unit tests
●       Manual testing with HTTP client
●       Integration testing with postman collections and test scripts