О роли
Мы ищем инженера-разработчика программного обеспечения (SDE II), который присоединится к нашей команде и поможет в проектировании и создании масштабируемых, надежных распределенных систем, обслуживающих миллионы клиентов. В качестве инженера среднего уровня вы будете полностью отвечать за разработку фич, участвовать в принятии архитектурных решений и наставлять младших инженеров, продолжая при этом углублять свои технические знания.
Обязанности
- Проектирование, разработка, тестирование и развертывание серверных сервисов и фич с полной ответственностью
- Участие в архитектуре распределенных систем, включая взаимодействие между сервисами, масштабирование и обработку сбоев
- Написание чистого, поддерживаемого, хорошо протестированного кода и обеспечение качества посредством код-ревью
- Поиск, отладка и устранение производственных проблем, а также повышение производительности, уменьшение задержек и оптимизация затрат
- Сотрудничество с кросс-функциональными командами, включая продакт-менеджеров, дизайнеров и других инженеров
- Участие в разработке технической документации и операционных руководств (runbooks)
- Участие в ротации дежурств для поддержки сервисов, находящихся в ведении команды
Основные требования
- Степень бакалавра в области компьютерных наук, разработки программного обеспечения или смежной области (или эквивалентный практический опыт)
- Примерно от 3 до 6 лет профессионального опыта разработки программного обеспечения
- Глубокое знание как минимум одного объектно-ориентированного языка программирования (например, Java, C++, C#, Python)
- Твердое понимание структур данных, алгоритмов и объектно-ориентированного дизайна
- Практический опыт проектирования или создания распределенных систем, включая очереди, кэширование, базы данных и параллелизм
- Владение системами контроля версий (Git)
- Отличные навыки решения проблем и внимание к деталям
Предпочтительные квалификации
- Опыт работы с облачными сервисами (AWS, GCP или Azure)
- Знакомство с микросервисами или событийно-ориентированными архитектурами
- Опыт работы с CI/CD пайплайнами, контейнерами и инструментами наблюдаемости (observability)
- Знание SQL и NoSQL баз данных
- Вклад в open-source проекты или личные технические проекты
Что мы предлагаем
- Реальная ответственность за ключевые системы с первого дня
- Возможности для профессионального развития и непрерывного обучения
- Гибкий график работы
- Командная культура, основанная на сотрудничестве и инклюзивности, ценящая любознательность и ответственность
Ключевые требования
- Опыт проектирования распределенных систем
- Сильные навыки объектно-ориентированного программирования
- Знакомство с облачными технологиями и CI/CD