Team lead / Lead .NET developer
Требования
Местоположение и тип занятости
Компания
Российский стартап, специализирующийся на разработке технологических решений для автобизнеса
Описание вакансии
Условия работы
Основные требуемые знания и навыки:
- C#, MS .Net. Понимание разработки self-hosted и IIS-hosted приложений, многопоточной разработки (применимость и преимущества потоков и асинхронного выполнения, принципы и примитивы синхронизации, tasks).
- Базовые принципы современной разработки ПО, какие преимущества дают и какие ограничения накладывают:IoC/DI, слабая связанность, разделение по слоям и компонентам, логгирование, пригодность кода для юнит-тестирования. Умение писать модульные и интеграционные тесты.
- Умение объяснить на примере хотя бы по одному паттерну из каждого раздела GoF (имеется ввиду не заученность, а понимание практической применимости).
- Веб-фреймворки для MS .Net: ASP.Net MVC и WebAPI. Понимание разработки генерируемых сервером HTML-страниц (Razor) и REST API.
- Разработка БД SQL (MS SQL предпочтителен), понимание принципов построения и оптимизации на уровне программиста: нормализация/денормализация таблиц, представления, индексы, хранимые процедуры, принципы и виды транзакционных операций, понимание проблем и преимуществ «грязного» чтения.
- Организация доступа к БД SQL из кода MS.Net: Entity Framework, Dapper, низкоуровневые объекты доступа, преимущества и ограничения ORM.
- Особенности высоконагруженных и масштабируемых сервисов: распараллеливание вычислений, доступ к данным, кэширование (в т.ч. распределенное) и т.д.
- Распространенные форматы, алгоритмы и протоколы, их преимущества и ограничения:
- Обмен данными: TCP/IP, HTTP, HTTPS, WebSockets. Понимание IoT-специфичных протоколов будет преимуществом.
- Сериализации данных: XML, JSON. Знание специфических форматов (Google Protobuf, Apache Avro) будет преимуществом.
- Шифрование: AES, RSA.
- Аутентификация: X.509, OAuth 2.0, OpenID Connect.
- Опыт работы с Git, issue tracking системами (у нас Jira), системами ведения техдокументации (у нас Confluence), системами CI/CD (у нас TeamCity и Octopus).
Будет преимуществом:
- Опыт кроссплатформенной разработки с использованиемMS.Net Standard/Core 2.x, разработки на .net сервисов с хостингом под Linux/Docker/k8s.
- Опыт использования Microsoft Azure и разработки для ее PaaS решений: IoT Hub, Service Bus, Event Hub, Redis Cache,Storage Services, Notification Hub.
- Применение NoSQL и key/value хранилищ данных (в первую очередь Azure Tables).
- Использование транспорта на базе месседжинга (Azure Service Bus, RabbitMQ), понимание его преимуществ и ограничений.
- Опыт разработки с использованием технологий BigData и ИИ.
- Понимание особенностей взаимодействия с физическими устройствами (сбор больших объемов телеметрии, выполнение команд, обработка сбоев).
- Опыт разработки back-end-а для мобильных приложений (особенности реализации API, отправка push и SMS, in-app purchases и т.д.).
Условия:
- Достойная оплата труда, величина которой зависит от уровня кандидата
- Гибкое начало рабочего дня (с 09:00 до 11:30), по вторникам и четвергам возможность работать удаленно (после соогласования с РМ-ом)
- Хороший соц. пакет после испытательного срока
- Компенсация затрат на получение сертификатов Microsoft
- Возможность прохождения внешнего обучения (курсы, конференции, мастер-классы)
- Соблюдение ТК (мы "белые")
- Интересные проекты на стыке передовых технологий.