Python-разработчик
Москва, РоссияСеньор
Релокация • Удаленная работа
Опыт работы более 5 лет
Опыт работы более 5 лет
Короткая ссылка: gkjb.ru/g14v5
О себе
На данный момент Python-разработчик.
Мои компетенции и опыт
Telegram: нужен доступ к резюме
Телефон: нужен доступ к резюме
Email: нужен доступ к резюме
Backend-разработчик с опытом проектирования и развития сервисов обработки данных, аналитики и пользовательских API. Работал с приёмом и обработкой телеметрии IoT-устройств (MQTT), построением пайплайнов записи и агрегации данных в ClickHouse, оптимизацией SQL-запросов и обеспечением устойчивости сервисов под нагрузкой. Имею практический опыт выделения сервисов из монолита, снижения связности и масштабирования аналитических компонентов. Регулярно занимаюсь анализом инцидентов через метрики, логи и трассировки. Ценю командную работу, открытость в обсуждении архитектуры и ответственность за общий результат. Стремлюсь развиваться в направлении проектирования распределённых систем и построения надёжных data-driven сервисов.
Root`s
2 года и 10 месяцев
Python-разработчик
Июнь 2023 — сейчас (2 года и 10 месяцев)
Достижения:
- Разработал сервис приема телеметрии с IoT-датчиков через MQTT, обеспечив стабильную обработку высокочастотных сообщений. Реализовал подписку на нужные MQTT-топики, валидацию полезной нагрузки и безопасную постановку данных в обработку без потерь при пиковых нагрузках. Добавил метрики и трассировку, чтобы быстро находить узкие места в проде, сократив время диагностики инцидентов на 30%.
- Разработал пайплайн парсинга JSON-данных и запись метрик в ClickHouse с оптимизацией под аналитические запросы. Настроил батчевую вставку, продумал схему таблиц под агрегации и временные ряды, ускорив построение графиков и тепловых карт в 2 раза. Уменьшил нагрузку на запись за счет буферизации и правильного партиционирования.
- Разработал отдельный воркер для анализа данных и контроля пороговых значений, автоматизировав выявление отклонений на полях. Воркер вычислял агрегаты по окнам времени, сравнивал с порогами для разных культур/полей и формировал события. Это снизило время реакции на проблемы (пересушивание/переувлажнение и т.п.) и разгрузило основной сервис приема.
- Разработал API для чтения метрик и построения графиков/тепловых карт, оптимизировав выдачу под фронтенд. Реализовал фильтры по полям/датчикам/интервалам, пагинацию и агрегации на стороне БД, сократив время ответа API на 35% и объем передаваемых данных на 25%.
- Разработал экспорт данных в CSV и Excel, учитывая большие объемы и ограничения памяти. Реализовал потоковую выгрузку и разбиение на чанки, чтобы экспорт корректно работал на длительных периодах. Добавил формирование файлов по шаблону и предсказуемые заголовки/единицы измерений.
- Разработал процесс выделения сервиса приема IoT-данных из монолитного backend-приложения. Проанализировал существующую бизнес-логику, аккуратно вынес обработку MQTT-сообщений и парсинг данных в отдельный сервис, сохранив совместимость с остальной системой. Обеспечил поэтапный переход без остановки сбора телеметрии.
- Решил проблему сильной связанности монолита при обработке аналитических задач, выделив воркер анализа данных в отдельный сервис. Вынес расчеты пороговых значений и агрегации, снизив нагрузку на основной API и упростив масштабирование аналитики.
Обязанности в команде:
- Проектировал и реализовывал backend-компоненты для приема, обработки и выдачи телеметрии, согласовывал контракты API и форматы событий со смежными командами.
- Поддерживал надежность сервисов через метрики, трассировки, алерты и разбор инцидентов.
- Участвовал в архитектурных обсуждениях, планировании релизов и декомпозиции задач, проводил ревью кода.
Стек: Python нужен доступ к резюме , FastAPI, ClickHouse, Apache Kafka, Celery, Redis, MQTT, pandas, Docker, Prometheus, Grafana, pytest
PAX
1 год и 5 месяцев
Python-разработчик
Февраль 2022 — Июнь нужен доступ к резюме год и 5 месяцев)
Достижения:
- Исправил критические ошибки в оформлении заказов и назначениях, из-за которых часть заявок зависала в статусах и не доходила до обработки. Нашел проблему по логам и трассировкам, внес правки в бизнес-логику и закрепил поведение автотестами на уровне API.
- Занимался рефакторингом сервисного слоя. Разделил смешанную бизнес-логику заказов и назначений на более понятные use-case’ы и модули. Это снизило связность кода, упростило поддержку и ускорило добавление новых сценариев ЛК доктора.
- Разработал загрузку PDF-файла с назначением врача в личном кабинете, чтобы пациент мог прикрепить документ и использовать его для заказа. Реализовал прием файла, валидацию формата/размера и сохранение с привязкой к пациенту и врачу.
- Разработал автоматическое создание заказа на основе распознанного назначения из PDF. После успешного парсинга система формировала корзину и черновик заказа для пользователя. Продумал проверки доступности позиций и корректное округление/суммирование, чтобы заказы создавались без ручной правки.
- Исправил узкие места в выдаче списка назначений и истории заказов в личном кабинете: страницы открывались медленно на больших объемах данных. Переписал тяжелые запросы, добавил пагинацию и оптимизации.
- Разработал механизм уведомления о готовности заказа, созданного из назначения. После обработки PDF пользователь получал обновленный статус и мог продолжить оформление. Разделил синхронную часть (загрузка) и асинхронную (обработка/создание заказа), чтобы не держать клиента в ожидании.
Обязанности в команде:
- Развивал backend личного кабинета, прорабатывал сценарии с PM и QA.
- Улучшал качество кода: рефакторинг сервисного слоя, покрытие критичных веток автотестами.
- Оптимизировал производительность API и запросов к БД, внедрял пагинацию.
Стек: Python 3.8, FastAPI, SQLAlchemy, PostgreSQL, Kafka, Pydantic, Celery, Redis, pdfplumber, Docker, pytest
Fit-Service
1 год и 4 месяца
Python-разработчик
Ноябрь 2020 — Февраль нужен доступ к резюме год и 4 месяца)
Достижения:
- Разработал эндпоинты для “быстрой записи” на сервис. В FastAPI сделал создание заявки и получение её статуса, чтобы приложение могло отправлять запись в пару кликов. Данные сохранял в PostgreSQL через SQLAlchemy и добавил базовую валидацию.
- Разработал выдачу “акций и спецпредложений” для приложения. Реализовал эндпоинт активных предложений и фильтрацию по филиалу/городу, чтобы пользователь видел актуальные скидки. Для частых запросов добавил кэширование через Redis.
- Исправил медленные запросы на списках (услуги/акции/заявки). Посмотрел EXPLAIN и добавил недостающие индексы, а также ограничил выборку и сделал пагинацию.
- Сделал CRUD для машин пользователя и выдачу профиля, чтобы данные можно было подставлять при записи. Добавил проверку прав доступа через JWT, чтобы нельзя было получить чужие записи.
- Занимался кэшированием часто используемых данных для ускорения приложения. Добавил Redis для справочников (категории услуг, филиалы) и для коротких кэшей списков. Это уменьшило количество одинаковых запросов в PostgreSQL.
Обязанности в команде:
- Разрабатывал REST API на FastAPI, поддерживал интеграции мобильного приложения.
- Анализировал планы запросов, добавлял индексы, оптимизировал выборки, внедрял пагинацию и кэширование.
Стек: Python 3, FastAPI, Pydantic, Alembic, SQLAlchemy, PostgreSQL
