Tech Lead GO
- Worldwide
About Company:
Our client is a liquidity and technology provider of solutions for the crypto and foreign exchange (FX) industry. The company specializes in the sphere of B2B services and products, catering to a wide range of clients including large licensed brokers, crypto exchanges, crypto brokers, forex brokers, hedge and crypto funds, and professional managers. The company’s advanced base of ready-to-use technical solutions enables brokers to save time and money on consuming infrastructure projects and focus on enlarging their client base and increasing their revenues.
Requirements:
- 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
- Knowledge of SOLID, design patterns, the experience of applying them
- Experience with unit tests and mocks
- Experience developing applications with SQL databases and key-value storage
- Experience with microservices, their orchestration, message streaming
- Experience with Protobuf and GRPC
- Experience with WebSocket and REST
- Knowledge of algorithms and the ability to apply them
- Knowledge of Git
Preferably:
- Knowledge of C# would be beneficial
Responsibilities:
- Knowledge of C# would be beneficial.
- Designing and developing high-load services from scratch;
- Identify problems in the application's code and form refactoring tasks, decompose story and tasks;
- Tech debt structuring and management;
- Conducting code review;
- Analysis of product requirements, and 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.