Team Lead GO
Responsibilities
- Designing and developing high-load services from scratch
- Identify problems in application's code and form refactoring tasks, decompose story and tasks
- Tech debt structuring and management
- Conducting code review
- Analysis of product requirements, design of development plans
- Constant interaction with Sub-Stream Software Engineers, technical support, project managers, and other stakeholders to optimize processes and improve product quality
- Responsibility for product quality and reliability
- System technical analysis and elimination of bottlenecks
- Improving system stability under heavy loads
Obligatory:
- Strong proficiency in the Go programming language with a solid understanding of its core concepts and idiomatic usage and the principles of writing concurrent code
- At least 4 years of practical experience in commercial Go development
- 1+ year experience managing development team of 3+ people
- Experience in developing high-loaded applications (thousands of RPS)
- Deep understanding of synchronization mechanisms
- Basic understanding of Linux principles and commands
- Strong skills in code profiling and debugging.
- Strong problem-solving skills and ability to analyze complex technical issues.
- Experience in writing unit tests and integration tests.
- Experience working with message brokers and a deep understanding of how they operate.
- Experience with external caching servers
- Advanced understanding of microservices architecture design principles
- Confident command of SQL databases and skills in working with them
- Experience with OpenAPI, Protobuf and GRPC
- Deep understanding of CI/CD
- Knowledge of SOLID, design patterns, the experience of applying them
- Experience with other programming languages and technologies (e.g., PHP, Docker, Kubernetes) is a plus.