Software Engineer
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
В SegmentStream, мы создаем продукт, который помогает сотням компаний построить масштабируемую и надежную инфраструктуру для сбора и обработки данных (Customer Data Infrastructure). Миссия нашей компании - позволить любой компании извлекать реальную пользу из своих данных, не думая о каких-либо технических препятствиях.
Мы достигаем этого при помощи единой платформы, которая автоматически собирает данные из различных источников, фильтрует, валидирует, трансформирует и загружает их в подключенное хранилище данных для дальнейшего анализа и обработки. Наш каталог готовых интеграций позволяет не только получать данные, но и отправлять их в сотни маркетинговых инструментов одним кликом мыши.
Совсем недавно мы также добавили возможность обогащать данные наших клиентов в реальном времени при помощи алгоритмов машинного обучения и значительно увеличить эффективность всех маркетинговых инструментов, подключенных к платформе SegmentStream.
Наша цель - облегчить понимание и извлечение ценности из данных. Мы стремимся сделать так, чтобы инженеры и аналитики тратили свое время на работу над своим основным продуктом, в то время как мы позаботимся о сложностях построения надежной, отказоустойчивой и масштабируемой инфраструктуры для работы с данными.
Мы постоянно ищем в команду талантливых fullstack разработчиков. Сейчас нам нужен профессионал с преимущественно бэкэнд-фокусом, который обожает заниматься построением сложных высоконагруженных распределенных систем с неограниченной масштабируемость.
Что мы делаем:
Мы разрабатываем высоконагруженные конвейеры данных используя NodeJs и множество решений для хранения данных и построения очередей их обработки.
Нам нравится строить UI на React.
Мы разрабатываем наш бэкенд-API на NodeJS и PostgreSQL.
Мы верим в использование правильного инструмента для правильной задачи.
Мы деплоим наш код несколько раз в день. Мы обожаем эффективность, облачные решения, CI/CD, Kubernetes, Docker и Terraform.
Мы гордимся кодом, который пишем, но мы не зациклены на определенных методологиях и технологиях.
Мы уверены, что делать “правильные вещи” важнее, чем делать “вещи правильно”. Но несмотря на это, мы очень серьезно относимся к ответственности перед нашими клиентами за обеспечение надежной инфраструктуры, на которую завязано множество их важных бизнес-процессов.
Кого мы ищем:
Ты умеешь превращать сложные бизнес-требования в работающий продукт, который полюбят наши клиенты
Ты гордишься кодом, который пишешь, но при этом остаешься прагматичен и самокритичен.
Ты знаешь, когда время рефакторить и когда время релизить.
Тебя воодушевляет поиск элегантных решений для сложных технических задач.
Ты сфокусирован, мотивирован, самостоятелен и способен завершать начатое, какой бы сложной ни оказалась задача.
Тебе не чужда эмпатия, ты терпелив и всегда рад прийти на помощь члену команды.
Ты знаешь основы архитектурных паттернов и паттернов проектирования
Ты понимаешь, что такое разрабатывать продукт, который уже находится в продакшне и которым пользуются миллионы людей. Ты понимаешь, что с момента запуска на продакшн - это больше не лабораторная работа. Ты серьезно относишься к тестированию, понимаешь ценность логирования, мониторинга и отслеживания ошибок.
Примеры будущих задач:
Создание масштабируемой и отказоустойчивой микросервисной архитектуры с балансировкой нагрузки и функциями автоматического обнаружения новых сервисов.
Параллельная обработка терабайтов данных в условиях жестких ограничений по оперативной памяти.
Создание высокодоступных конвейеров обработки событий в реальном времени с неограниченной масштабируемостью.
Проектирование любого рода систем, которые легко масштабируются в зависимости от нагрузки.
Построение эффективных систем кэширования и проксирования.
Управление изменяемым shared state для различных платформ баз данных SQL и NoSQL с low-latency требованиями
Умное шардирование очередей, баз данных, сервисов, в случае, если стандартные балансировщики не справляются.
Снижение расходов на облачную инфраструктуру при сохранении той же скорости разработки.
Требования:
Ты можешь писать как серверный так и клиентский код (да-да, мы любим fullstack) на JavaScript используя последние фичи и API.
Имеешь хороший фундамент по теории алгоритмов, структурам данных, паттернам проектирования. Есть высшее образование в Computer Science.
Минимум 3 года “промышленного” опыта в разработке или наличие крутых open-source проектов на GitHub.
Доказанное умение писать код, который решает реальные проблемы.
Ты глубоко понимаешь все нюансы и сложности написания масштабных single-page приложений.
Сильная теоретическая база и практический опыт проектирования и реализации высокодоступных, высоконагруженных, отказоустойчивых распределенных систем.
Опыт внедрения масштабируемых конвейеров обработки данных и событий, предпочтительно с использованием потоковых технологий.
Ты хорошо разбираешься в параллельном вычислении и не путаешь его с распределенным вычислением.
Знаком с лучшими практиками деплоймента и тестирования кода на продакшн окружении.
В своей работе демонстрируешь использование архитектурных паттернов для построения масштабируемых веб-приложений (правильный дизайн API, высоконагруженные конвейеры данных, эффективные алгоритмы, и т.д.)
Ты ценишь командную работу и соглашаешься с утверждением, что «команда - это группа людей, которые несут ответственность за решения друг друга».
Ты знаком с основами машинного обучения.
Ты свободно говоришь и пишешь на английском без ошибок.
Если ты все- таки дошел до конца этой вакансии, внимательно прочел все условия - жми на отклик, будем рады с тобой пообщаться ;)