Больше информации по резюме будет доступно после регистрации
ЗарегистрироватьсяБыл на сайте вчера в 23:11
Кандидат
Мужчина, 28 лет, родился 13 февраля 1997
Активно ищет работу
Санкт-Петербург, готов к переезду, не готов к командировкам
Указан примерный район поиска работы
Lead Backend Developer
540 000 ₽ на руки
Специализации:
- Программист, разработчик
Занятость: полная занятость, частичная занятость, проектная работа
График работы: полный день, гибкий график, удаленная работа
Опыт работы 4 года 8 месяцев
Февраль 2024 — по настоящее время
1 год 3 месяца
Информационные технологии, системная интеграция, интернет... Показать еще
Lead Backend Developer + DevOps
https://tl-razrabotka.ru/solutions/hr/
Задачи:
1. Проработка архитектуры системы + проектирование структуры БД + проектирование всех микросервисов + генерация предложений по продукту
2. Полная организация работы backend-разработчиков + менторство
3. Внедрение и поддержание процессов релиза фич (backend)
3. Развертывание сервисов в кластере Kubernetes (DevOps) + настройка CI/CD
4. Проектирование + разработка ML-сервиса с pre-trained LLM + inference-сервером (Ollama). Весь деплой сервисов
Система позволяет:
- Получать резюме из разных источников и обрабатывать их (будь то job-сайты или файлы извне)
- Анализировать их с помощью ML, проводить мэтчинг кандидатов по отношению к вакансиям + делать summary
- Создавать и обслуживать заявки на вакансии + сами вакансии
- Точечно настраивать права и доступы к объектам у юзеров и групп юзеров, поскольку внедрен гибрид RBAC + ABAC (скоринг в том числе)
- Публиковать вакансии с учетом настроек в job-сайты
Тем самым, оптимизируя время, требуемое HR для закрытия позиций.
Дополнительно отмечу, что:
- Для оркестрации задач мы использовали AirFlow, ибо есть как задачи по расписанию, так и delayed
- У нас микросервисная архитектура
- Активно используется Kafka для распределенной передачи данных к ML и обратно
Стэк: Python3.11, Fastapi, Sqlalchemy, Alembic, Postgresql, Ollama, Airflow, Redis, Kafka (FastStream, Confluent), Docker, K8s, ArgoCD, Vault
==================
Проект: https://tl-razrabotka.ru/solutions/sport/
Задачи:
1. Активное участие в проработке архитектуры системы + генерация предложений по продукту
2. Организация работы backend-разработчиков (постановка задач, контроль исполнения, ревью) + менторство
3. Проектирование структуры БД
4. Разбитие монолита на микросервисы после MVP
5. Развертывание сервисов в кластере Kubernetes (DevOps) + настройка CI/CD Gitlab
6. Разработка BI-сервиса
7. Разработка основы сервиса-видео с потоковой обработкой и передачей (+ проектирование, + развертывание)
Система позволяет:
1. Тегировать матчи, т.е, отмечать интересные моменты в них, так или иначе настраивая теги и наборы тегов
2. Смотреть статистику по матчам и игрокам с визуализацией
3. Загружать видео & добавляя стримы из разных источников -> ну и смотреть это все, разумеется.
Подробнее о сервисе видео, он умеет:
1. Потоково обрабатывать
2. Фрагментировать
3. Потоково доставлять контент в плеер (на фронтенде 1 строчка кода, остальное - бэк)
4. Менять качество видео в live-режиме
5. Сохранять любой контент (обл. хранилище).
6. Вырезать из видео лишние кадры при получении диапазона времени (рекламу в видео, например)
7. Работать, используя ресурсы CPU, либо GPU (+ RAM или VRAM соответственно)
8. Сохранять FPS
9. Принимать контент разными способами. Ре-стримить - тоже, в контексте протоколов
Иначе говоря, при загрузке большого видео или стрима, не нужно ждать окончания обработки. Смотреть часть видео можно в течение минуты. Пока вы смотрите ее, готова новая часть
Все вышесказанное о видео я делал один в течение месяца. И это прошло этап показа и оценки клиентами.
------------------------
Стэк: Python3.11, Fastapi, Sqlalchemy, Alembic, Postgresql, Clickhouse, Pydantic, Celery, Redis, Kafka, Docker, K8s, ArgoCD, Vault
Video: OpenCV, ffmpeg, Gstreamer. ЯП: C, Rust, Python (обертка)
P.S: Готовые сборки не использовались, они не дают того, что было нужно :)
==================
Дополнительно, безотносительно перечисленных выше проектов:
- Оценка реализации потенциальных проектов с учетом декомпозиции задач на этапы
- Проработка архитектуры проектов
- Менторинг
Сентябрь 2022 — Январь 2024
1 год 5 месяцев
Marilyn System Russia (& Точка.Реклама)
Backend Developer
Генератор интернет-магазинов
Ссылка: https://reklama.tochka.com/generator-internet-magazinov
Задачи:
1. Непосредственно разработка и немного DevOps;
2. 80% саппорта по генератору после релиза;
3. Весь саппорт, касающийся подключения новых доменов на сайт;
4. Код-ревью;
5. Частичное замещение Тим лида – в отпуска и когда у него была загруженность. + Менторство
Какие компоненты генератора были мною сделаны:
1. Частично – флоу настроек магазина;
2. Весь флоу доставки – СДЭК (настройка и API + бэкенд для виджета), курьерская доставка и самовывоз;
3. Весь флоу оплаты (настройка и API) – Робокасса, Юкасса, Эквайринг через банк Точка;
4. Весь флоу заказов - создание, статусы, чеки;
5. Поддержка импорта из разных источников (товары и изображения). Всего - 24 комбинации;
5.1. Версионирование источника импорта (при выборе нового источника, старый остается актуальным, пока импорт из нового не закончится);
5.2. Разбиение импорта на стадии, в рамках которых можно либо продолжить импорт, либо отменить его;
6. Возможность создать SSL-сертификат и привязать свой домен к магазину (k8s). + проверка выполнения всех шагов (NS | A records, SSL);
7. Автосоздание и изменение целей и счётчика в определённых случаях;
8. Весь сбор и отправка статистики в Clickhouse;
9. Все задачи в Celery, разные очереди в зависимости от задачи. + темплейты для helm & k8s. + цепочки задач (celery chain);
10. Конфигурирование цепочек из задач в зависимости от контекста;
11. Консьюмер + синхронизация данных (состояние подписки, контакты, точки продаж у селлера) при получении соответствующего эвента из очереди RabbitMQ;
12. Продюсер + отправка эвента о любом изменении состояния сайта;
13. Публикация, распубликация сайта.
Стэк: Python, Fastapi, Sqlalchemy, Alembic, Postgresql, Clickhouse, Dataclasses. Pydantic, Celery, Redis, RabbitMQ, Kafka, API k8s (pypi), Docker, K8s, Helm.
Команда: 3 backend (lead, я и junior), 2 frontend (middle и junior + изредка подключался senior), 1 дизайнер, 2 QA, 1 продакт.
___________________
Бесплатный аудит сайта
Ссылка: https://reklama.tochka.com/base (прямой ссылки нет, нужно будет поскроллить вниз, до "проверьте свой сайт бесплатно")
Что делал:
1. Исполнял роль TeamLead;
2. Пилил фичи на бэкенде + DevOps;
3. Обсуждал, оценивал и планировал с продактом новые фичи;
4. Частично менторил джуна-фронтендера;
5. Саппортил после релиза.
На данный момент доступно:
1. Запросить отчёт о сайте с этой страницы
2. Запросить и получить отчёт о сайте, передав эвент в очередь (из другого сервиса). Бэк выполнит проверку и положит результат в другую очередь. (esb-шина, в общем). На текущий момент этот способ используется в личном кабинете юзера в Точка Рекламе
Стэк: Python, Fastapi, Sqlalchemy, Alembic, Postgresql, Pydantic, Celery, Redis, RabbitMQ, Kafka, Docker, K8s, Helm.
Команда: 1 backend, 1 frontend, 1 дизайнер и 1 продакт
Март 2022 — Сентябрь 2022
7 месяцев
ООО Тулстрек
www.culture.ru/pushkinskaya-karta
Backend Developer
Проект "Пушкинская Карта".
Из интересного:
1) Закрыл один релиз сам, когда старый тим лид ушел, а новый ещё не приступил к работе.
2) Пару недель отработал только с ПМ, ибо старая команда ушла, а новая ещё не пришла. Соответственно, задачи, которые ставились (в т.ч. и по скриптам) закрывал только я.
3) Писал скрипты для нагрузочного тестирования.
4) Писал скрипты для перегона данных из Tarantool в Clickhouse. Tarantool партицирован, Clickhouse – реплицирован.
В остальном: пишу код для двух версий - на Go и на Python, пишу на Lua и SQL, когда нужно взаимодействовать с Tarantool и Clickhouse.
Июнь 2021 — Апрель 2022
11 месяцев
ООО Программатик Групп
Fullstack Developer
Работал над сервисом по созданию и запуску рекламных кампаний. Писал с самого старта до того этапа, когда MVP не за горами.
Подразумевается, что пользователи могут создавать и настраивать рекламные кампании, добавлять баннеры и составлять сегменты аудиторий. Эти сущности связаны между собой.
Биллинг: для физлиц - интеграция с платежной системой, для юрлиц - генерация квитанции + оповещение в админке о том, что N-ный юзер только что запросил ее.
Стек: Python 3, FastAPI, Postgres, Postgres Admin, Celery, Celery Flower, Redis, Docker, React, Redux.
Ниже - перечисление сделанного мною.
Backend:
Написанное API имеет древовидную структуру, с использованием RBAC. Crud-менеджеры написаны с использованием абстракций
Под капотом происходит общение с другой рекламной площадкой, на которой, собственно, кампании и создаются.
Frontend:
1) Админка, в которой можно посмотреть незавершенные транзакции от юр.лиц и баланс
2) Раздел аудиторий в клиентском интерфейсе.
DevOps: обернуть все это в контейнеры, прописать volumes, depends, разрешить связки портов посредством UFW.
Август 2021 — Ноябрь 2021
4 месяца
ООО Онлайн Гимназия №1
Backend Developer
Это была part-time занятость. Целенаправленно искал именно такую, ибо full-time занятость уже была.
Работал над бэкендом платформы по онлайн-обучению в составе команды.
Здесь моя зона ответственности была значительно меньше, чем в других компаниях.
Добавлял / переопределял фичи -> писал тесты. Всё.
Стек:
1) Python
2) Django
3) Django Channels.
4) Redis
5) Docker
Сентябрь 2020 — Июль 2021
11 месяцев
ООО АйтиАэро
Backend Developer
Писал API для мобильных приложений. Коротко об одном из них:
Суть - сервис, с помощью которого пользователи могли выполнять задания в Instagram и получать за это бонусы. Можно было:
- Покупать активности: Лайк, Коммент, Подписка.
- Добавить пользователя в свою реферальную структуру (их было 2), чтобы потом, на основе этой структуры, формировались задания для каждого.
- Создать задание. Для этого нужно было опубликовать какой-то пост в своем инст-профиле. Бэк периодически бегал по профилям и искал новые посты.
Видя пост, генерировал задание: обязательное \ для всех \ для конкретного юзера.
- "Привязать аккаунт". Авторизации через инсту не делал, но проверял, скрыт ли аккаунт, был ли он указан ранее. Аккаунт должен был быть открытым, чтобы бэк мог периодически проверять выполнение заданий + брать посты, чтобы на их основе генерировать задание для пользователей.
Отмечу, что были инвайты разных типов, профили разных типов, подписки разных типов.
Писал бэк в одиночку. Непосредственно мобильным приложением, занимались другие разработчики.
И это с учётом того, что Basic Display & Graph Api's довольно сильно урезаны. Используя их, нельзя подписаться, поставить лайк, комментарий кому-то.
Использовал:
1) Django Channels.
2) RabbitMQ, Redis.
3) Daphne (вебсокеты), Gunicorn.
4) Celery, Celery-Beat.
Был ответственен за:
1) Тесты
2) Бэкенд
3) Сервер
4) Иногда забегал на фронт в других проектах. Полноценное SPA без мануалов написать вряд ли смогу, но подкрутить, подправить, добавить AJAX-запросы, заняться версткой - с этим справлюсь.
Навыки
Уровни владения навыками
Обо мне
Профиль GitHub: https://github.com/untername
Профиль LeetCode: https://leetcode.com/untername/
Работал как в командах, так и соло. С Ci/CD работал
ЯП и фреймворки:
- Python: FastAPI, DRF, Django (Channels в том числе).
- Golang: Gin.
- JS: React, Redux.
- Lua - для Tarantool.
- SQL, хотя чаще работал с ORM (SQLAlchemy, Django ORM).
БД, с которыми я работал:
- Postgres.
- Tarantool.
- Redis.
- Clickhouse.
Брокеры:
- RabbitMQ
- Apache Kafka. Писал консьюмеров, продюсеров, создавал топики. Настраивал удаленный сервер (Java -> Zookeper -> Kafka)
Серверы:
- Gunicorn.
- Uvicorn.
- Daphne.
- Nginx.
В Celery, Beat, Flower, Docker, тоже умею.
Скейлить поды, писать манифесты и port-форвардить в кубере могу.
Писать скрипты для динамического создания объекта в одном неймспейсе, будучи в другом, тоже
С Ubuntu дружу. С Helm не особо, но знаком
Неоконченное высшее образование
2021
ИТМО
Знание языков
Гражданство, время в пути до работы
Гражданство: Россия
Разрешение на работу: Россия
Желательное время в пути до работы: Не имеет значения