Main stacks are .NET Core and Scala (Kafka Streams) We keep code in gitlab and use gitlab CI for our CICD pipelines Our services run in kubernetes, mostly in premises with some loads running in AWS. We monitor services using prometheus, observe metrics in Grafana and check logs via ELK Kafka is our streaming platform, also we use HTTP APIs, databases (mostly mongo), RabbitMQ etc.
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.