Занимаюсь backend-разработкой на Python. Пилю апишки и воркеры для простых (и не очень) вебсервисов. Также, хорошо умею в PHP, есть большой опыт работы с Laravel. Покрываю свой код тестами, запускаю их в CI. Использую docker для локальной разработки и стейджинга, умею настраивать деплой проектов через Ansible из Gitlab CI.
Из реляционных СУБД работал с MySQL и Postgres (преимущественно через Django ORM, но без проблем напишу несложные SQL, могу заджоинить между собой записи из нескольких таблиц, сделать группировку и агрегацию, subqueries, select for update). Знаю, как устроены колоночные БД (есть опыт работы с Clickhouse для сбора событий).
Примерно понимаю, как работает Kubernetes, настраивал Helm-конфигурацию проекта для стейджинг-окружения. Работал с Protobuf и gRPC для коммуникации между сервисами..
Написал рекомендательную систему для интернет магазинов. Суть заключалось в следующем:
Собирался вкусовой профиль пользователя по его предыдущим покупкам и просмотрам. Затем, определялись значимые свойства товаров и подбирал для клиента другие товары, близкие к его вкусовым предпочтениям.
Для подбора релевантных товаров использовался алгоритм поиска ближайших соседей (KNN). Характеристики товаров преобразовывали в feature vector и по этим фичам производился поиск товаров, похожие на его вкусовой профиль. Для работы с датасетом и векторами фич использовали Pandas, реализация KNN –– из scikit-learn.
Проделал большую работу по приведению состава товаров к общему формату, включая морфологический разбор ингредиентов в разных формах, и полностью разные варианты описания одного и того же ингредиента (например, сахар или сахарный песок).
Благодаря этому получилось классифицировать товары по их составу, и определенными ингредиентам придавать более важное значение в зависимости от раздела. Например, курица и диетическое мясо будет иметь больший вес в разделе здорового питания, чем в общем разделе основных блюд.
Поверх этого всего была создана система A/B-тестов, которая позволяет в реальном времени трекать эффективность тех или иных настроек персонализации в Grafana.
Из технологий, которые использовались на проекте –– Python 3.7, Django (для API и админки экспериментов), Postgresql, Clickhouse (для сбора событий), Celery на Redis для тяжелых фоновых задач.
Еще интересные задачи, которые решал в других проектах:
–– Интеграция платежного процессинга (Сбер)
–– Интеграция с курьерскими службами Gett, Bringo и агрегаторами Delivery Club, Яндекс.Еда для крупного продуктового ритейлера
–– Динамическая доступность товаров в конкретный промежуток времени (таймслот)
–– Система промокодов
–– Навык для Яндекс Алисы, чтобы делать заказы голосом
–– Полнотекстовый поиск с подсказками через Sphinx