Senior C# developer
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
В новый развивающийся SaaS-продукт, который, тем не менее, имеет уже имеет десятки production-инсталляций, требуется сильный Senior для разработки бекенда и 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# как основным языком: от 5 лет
- Опыт работы с ASP.NET Core
- Знание экосистемы .NET - инструментов (VS или Rider, R#), библиотек
- Хорошие знания SQL, техник оптимизации реляционной БД
- Хорошие знания и опыт в многопоточности и асинхронном программировании
- Понимание на хорошем уровне алгоритмов и структур данных, понятия сложности алгоритмов
- Умение писать не только код, но и юнит-тесты к нему
- Понимание принципов работы распределенных приложений
- Достаточный уровень самостоятельности (в т.ч. планирование собственного рабочего процесса) и проактивности
- Желание изучать и внедрять новое
Обязанности:
- Непосредственное участие в процессе разработки back-end'а и API (бизнес-логика, мониторинг, отчетность, инфраструктурный код, база данных, оптимизации)
- Участие в принятии технологических и архитектурных решений (как повседневных, так и ключевых)
- Поддержка и рефакторинг существующего кода (как такового legacy на .NET у нас нет - разбираться и поддерживать нужно в первую очередь свой код и при необходимости код коллег)
- Взаимодействие с front-end разработчиками, тестировщиками, сотрудниками техподдержки, представителями бизнеса
- Анализ требований и разбиение их на задачи
- Участие в собеседовании кандидатов на должности Middle и Senior, введение новичков в проект
- При желании: менторинг Middle разработчиков
Требуемый опыт работы: 3–6 лет
Полная занятость, полный день
Дополнительные инструкции
- Опыт работы с GraphQL
- Опыт написания API
- Опыт работы с PostgreSQL
- Опыт работы с linq2db
- Опыт написания приложений, где data integrity (транзакционность процессов) является одним из главных требований
- Понимание принципов работы с очередями (опыт работы с RabbitMQ или какой-нибудь другой реализацией MQ)
- Опыт работы с NUnit
- Умение работать с Git, JIRA
- Опыт работы с Linux (хотя бы на уровне пользователя) и bash
- Опыт работы с Docker
- Опыт работы с CI/CD инструментами
- Опыт участия в разработке сложных продуктов с нуля
- Опыт интеграции third-party сервисов через API
- Unit Testing