Данила Аринов

Python-разработчик — парсинг и обработка данных

+7 901 431-82-98 · teivrim@gmail.com · Telegram @Smishnyavko · github.com/TeivrimOriginal · Портфолио · LinkedIn

О себе

Парсеры сайтов по ТЗ заказчиков с 2022 года, дальше — агрегация трёх публичных API с идемпотентной загрузкой и журналом прогонов, чтобы откатившийся источник не портил данные молча.

Опыт работы

Фриланс — заказы на Kwork Python · 2022 — н.в.
  • Telegram-боты, парсеры сайтов, REST API, интеграции внешних API, автоматизация по ТЗ заказчиков; kwork.ru/user/teivrim.

Проекты

anime-sync-api — REST API каталога аниме FastAPI · PostgreSQL 16 · Alembic · GIN
  • Асинхронный стек: FastAPI, SQLAlchemy 2.0 (asyncpg), Pydantic v2, httpx. Схемы запросов и ответов разделены.
  • Три таблицы с внешними ключами и CHECK-ограничениями; UNIQUE (source, external_id) — внешний id уникален в пределах источника, потому что у AniList и Jikan нумерация разная.
  • Полнотекстовый поиск на tsvector с индексом GIN по названию, оригинальному названию и жанрам. Выражение индекса и выражение запроса вынесены в одну константу, чтобы они не разошлись.
  • Синхронизация с AniList (GraphQL) и Jikan (REST) на httpx: идемпотентный апсерт без дублей и журнал прогонов — отказ внешнего API пишется в базу, а не роняет запрос.
  • Список с фильтрами, пагинацией и полнотекстовым поиском; размер страницы ограничен сверху, чтобы нельзя было вытащить всю таблицу одним запросом.
practice-automation-tests — автотесты UI Python · Selenium 4.49 · Pytest 9.1 · Allure
  • 47 автотестов: 28 позитивных и 13 негативных на трёх страницах плюс 6 тестов формы обратной связи.
  • Разделение по маркерам, ожидания вместо фиксированных пауз, отчёты Allure со скриншотами на падение.

Навыки

Python: FastAPI, SQLAlchemy 2.0 async, Pydantic v2, httpx, typing, dataclasses, itertools Асинхронность: asyncio, httpx, asyncpg, конкурентность против параллельности, пул соединений SQL и PostgreSQL: PostgreSQL 16/17 (tsvector, GIN, pg_trgm, CHECK, FK CASCADE, EXPLAIN, индексы), Alembic-миграции, SQLite, JOIN/GROUP BY, запросы к регистрам Тесты: pytest, pytest-asyncio, httpx ASGITransport, фикстуры, моки внешних API, Allure, Selenium 4, покрытие с ветвлениями

Дополнительно

Ключевое в агрегации — не разовое скачивание, а повторяемая синхронизация: апсерт без дублей и журнал, где видно, какой источник и когда упал. Английский — чтение технической документации. Открытый код: 12 активных публичных репозиториев, у каждого проекта тесты и CI.

Скачать PDF
← Все резюме ← Вернуться на сайт