Position: Lead Software Engineer (.NET) for UnifiedFeed
Company: Parimatch Tech
Experience required: 5y

We invite those who fired up to:
— Help define the system architecture, own and implement specific components, and help shape the overall experience;
— Build distributed systems that are reliable, maintainable and scalable;
— Functionally decompose complex problems into simple, straight-forward solutions;
— Write high-quality, efficient, testable code following best practices and team standards;
— Ensure that services built by the team satisfy both functional and non-functional requirements;
— Understand the business domain;
— Make sure that it’s implementation is optimal considering all opportunities and constraints;
— Сreate and mentoring a team for perform highly complex tasks;
— Participate and get involved in strategic company initiatives.

Essential professional experience:
— Self-driven self-starter who is excited about overcoming hurdles to get things moving in the right direction;
— Rich hands-on programming experience with at least one modern language such as C# (preferred), or Java, and other object-oriented languages and have a deep understanding of object-oriented design’
— Familiarity with design concepts such as design patterns and UML are also highly desirable;
— Practical experience with software engineering best-practices is a big advantage. Deep understanding of distributed systems, asynchronous architectures and scalability are highly desirable. The ideal candidate will have implemented at least one large scale enterprise, fault-tolerant distributed system;
— Computer Science fundamentals in algorithms, data structures, databases, and complexity analysis;
— Strong ownership. Willingness to own all stages of development process: design, testing, implementation, operational support;
— Leadership skills;
— Strong analytical and problem-solving skills;
— 5+ years of software development experience.

Desirable skills and personal features:
— Exhibits excellent team work;
— Results oriented;
— Knowledge of functional programming paradigm;
— Experience with distributed CQRS & Event Sourcing built with TDD on Scala;
— Skills working with Kafka, Kafka Streams, RabbitMQ, AWS, Redis, Aerospike;
— Hands-on experience with running .NET apps using Docker, Kubernetes.