Description
Stream software Engineer would be responsible for leading technology team and developing the product. That includes people management, team performance improvements, conducting code reviews, designing new services and enhancements to existing, ensuring optimal technology stack. As a manager of software development team you would contribute to development of Highload systems with high standards of system stability.
Requirements
● 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
● 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
English B2+Russian B2
Knowledge of C# would be beneficial