Engineering Manager (.NET/C#) Offline

The BETER product company is looking for an Engineering Manager (NET/C#) to develop and implement a technical strategy for the development of a system for sports analytics. If you like to build a team, develop a technical culture, cover the most critical areas in development, help train others, and be a leader, then this position is for you.

 

Requirements:

 

- Be a business person, have a sense of responsibility for the entrusted area and treat it as your brainchild, be demanding of the team, but fair, set goals, monitor their implementation, control the workload of people, and systematically improve the level of skills in the team;

- 3+ years of experience in managing a team: organizing work, motivating, maintaining discipline, delegating and monitoring execution, exchanging feedback, and leadership.

- Write high-quality code in C# (.NET Core, ASP.NET Core), understand OOP and SOLID concepts, understand design patterns;

- 6+ years of expertise in the .NET ecosystem: tools, libraries, frameworks;

- RDBMS/NoSQL experience: knowledge of the principles of engine operation, ability to profile queries, design schemas, understanding the logic of index operation;

- Experience working with message brokers: knowledge of the operating principles of broker types, building asynchronous data delivery and processing with various guarantees and for various scaling requirements, fault tolerance, etc.

- Loyalty to DevOps practices and experience in their application: automation of development and quality assurance tools, monitoring, tracing, and debugging.

- Skills in profiling, debugging, and optimizing code and queries;

- Experience writing unit tests, understanding when it is appropriate and when it is not;

- Adhere to the opinion that without code review it is impossible to work and convey this message to the masses :);

- Striving to improve existing solutions and develop new solutions, searching for growth points;

- A desire to share knowledge with engineers and be able to convey it.

 

It will be a plus:

 

- Experience developing in languages other than C#;

- Experience in digging into the insides of frameworks for self-improvement;

- A constant search for answers to the questions “why” and “how to do it better”, but at the same time critical thinking to understand when it is rational to do it “better”;

- Understanding of data structures and algorithms, understanding how O(1) differs from O(n);

- Understanding the difference between AMQP and Kafka, the pros and cons of such solutions;

- Higher technical education, training in mathematical/technical lyceums;

- Experience with Kafka, MongoDB, Swagger, Prometheus, and ElasticSearch.

- Frontend development experience

- Experience in cloud environments in general and AWS in particular

 

Responsibilities:

 

- Organizing the work of the team, implementing and monitoring compliance with the necessary processes;

- Planning and distribution of work in a team, monitoring implementation;

- Design of services on the balance of the team in collaboration with the architect and business analysts;

- Implementing and maintaining good software development practices, such as coding conventions, and code review;

- Writing code in C# as part of the implementation of tools and products;

- Writing unit tests for functionality;

- Mentoring engineers in a team, assistance in drawing up PDP;

- Assistance in troubleshooting, training on how to prevent them in the future;

- Help in finding bottlenecks and performance problems, profiling database queries, and code;

- Conducting knowledge tests, developing tests for self-control and for hiring needs;

- Participation in interviews of team candidates, assessing the level of knowledge and expertise;

- Providing regular feedback to team members;

- Conducting team meetings on a regular basis;

- Approval of vacations, sick leave, time off, overtime in the team, and correction of current plans.

 

What and how do teams work?

 

- A highly loaded system based on .NET 8, which receives changes in real-time and recalculates sports analytics;

- Working in a microservice architecture, with a messaging system;

- Ability to choose technologies to effectively achieve results;

- Experienced and strong specialists in teams who are always ready to share knowledge;

- The code is packaged in Docker and lives in AWS EKS;

- Kafka for real-time messaging;

- MongoDB, PostgreSQL for data storage and processing;

- Victoria Metrics for collecting metrics and monitoring;

- ElasticSearch for logs;

- Teams are cross-functional and focused on their services;

- Minimum bureaucracy, the ability to easily communicate with all levels of management;

- We strive to make decisions quickly, without months of discussions, if a person has analyzed the risks and alternatives and understands the essence of his proposal.