Middle C# Developer
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
В новый развивающийся SaaS-продукт, который, тем не менее, имеет уже имеет десятки production-инсталляций, требуется сильный Middle для разработки бекенда и API на стеке .NET Core (C#), GraphQL (Hotchocolate), PostgreSQL. Для фронт-энда используется React.js, а сервера работают на Linux (Ubuntu). Интересных и разноплановых задач очень много - начиная с большого количества еще не написанной бизнес-логики, продолжая интеграцией многих third-party сервисов (платежных, маркетинговых и иных) и заканчивая массой еще не начатой инфраструктурной работы - внедрение очереди сообщений (RabbitMQ?, Kafka?), перевод логирования на ELK-стек, переход на Docker, внедрение мониторинга, сервисы OLAP-отчетности (Clickhouse, что-то еще?). Компания небольшая, еще не все процессы четко отстроены, так что от нашего будущего коллеги ожидаем достаточный уровень самостоятельности, сознательность, проактивную профессиональную позицию, интерес к работе - мы, Ваши будущие коллеги, именно такие и есть Желание изучать и внедрять новое - это не просто "стандартная" строчка в обязанностях, которая пишется всегда, это - действительно важно для нас. Например, мы используем как достаточно новый подход к построению API - GraphQL, так и и достаточно молодую библиотеку .NET, которая реализует сервер GraphQL - это Hotchocolate, в результате приходится не только периодически участвовать в обсуждениях с ее создателями, но иногда и контрибутить в их репозиторий, ну и, конечно, по мере возможности стараемся "to give back to the community" - отвечаем на StackOverflow, используя свой опыт в GraphQL Hotchocolate.
Требования:
- Опыт работы c C# как основным языком: от 3 лет
- Опыт работы с ASP.NET Core
- Знание экосистемы .NET - инструментов (VS или Rider, R#), библиотек
- Хорошие знания SQL
- Знание принципов многопоточного программирования, опыт в асинхронном программировании
- Понимание на хорошем уровне алгоритмов и структур данных
- Умение писать не только код, но и юнит-тесты к нему
- Понимание принципов работы распределенных приложений
- Достаточный уровень самостоятельности и проактивности
- Желание изучать и внедрять новое
Требуемый опыт работы: 1–3 года
Полная занятость, полный день
Дополнительные инструкции
- Опыт работы с GraphQL
- Опыт написания API
- Опыт работы с PostgreSQL
- Опыт работы с linq2db
- Опыт написания приложений, где data integrity (транзакционность процессов) является одним из главных требований
- Понимание принципов работы с очередями (опыт работы с RabbitMQ или какой-нибудь другой реализацией MQ)
- Опыт работы с NUnit
- Умение работать с Git, JIRA
- Опыт работы с Linux (хотя бы на уровне пользователя) и bash
- Опыт работы с Docker
- Опыт работы с CI/CD инструментами
- Опыт участия в разработке сложных продуктов с нуля
- Опыт интеграции third-party сервисов через API