Отправка сообщений по различным каналам связи о событиях, происходящих в информационной системе
О проекте
Трудно представить сколь-нибудь серьёзный продукт, не использующий нотификации. Нотификации привлекают внимание пользователя и возвращают его в продукт (instagram, google photos и др.), сигнализируют о важных изменениях (любой мессенджер или новостной портал), упрощают работу, предоставляя новую информацию без необходимости обновления страницы (miro, asana и др.).
Сразу несколько наших новых продуктов дошли до стадии, когда дальше без нотификаций развиваться очень сложно, поэтому им срочно требуется универсальный модуль нотификаций.
сентябрь-декабрь 2022
Задачи проекта:
1. Реализовать сервис Нотификаций, включающий в себя: – Унифицированный модуль приёма входящих событий — по REST API и из брокеров сообщений (Kafka, RabbitMQ) – Унифицированный модуль отправки сообщений через различные каналы: e-mail, телеграм-канал. – Покрыть модули тестами 2. Покрыть основной функционал юнит- и интеграционными тестами 3. Подготовить приложение к развёртыванию в контейнере (Docker).
старт отбора: 16 сентября заявки принимаются до 22 сентября тестовое задание: 23–26 сентября
Технологии и инструменты, с которыми предстоит работать:
Python (Fastapi, pytest, pydantic), Docker, Kafka, Rabbitmq, docker. Код будет храниться в gitlab. Задачи будем ставить во внутреннем таск-трекере.
Как будет выглядеть работа в проекте?
По результатам отбора мы сформируем команду, которая будет заниматься решением поставленных задач. С решением будут помогать наставники — эксперты в разработке и тестировании.
Участвуя в проекте, вы на практике: - спроектируете и реализуете методы REST API для приёма входящих событий, вызывающих нотификации; - поработаете с брокерами kafka и rabbitmq; - разберётесь с SOLID-принципами и научитесь писать качественный код, который легко расширять, поддерживать и тестировать; - научитесь покрывать код тестами; - поработаете в команде по принципам гибких методологий. - разберетесь, как декомпозировать сложные сценарии на простые задачи.
Работа организуется двухнедельными спринтами, с планнингом в начале и ретро и обязательным демо в конце. Занятость: 10-15 часов в неделю.