• File

Kateryna

Python developer

Considering positions:
Python developer, Backend developer, AI developer, Django developer, AI engineer
Age:
19 years
City of residence:
Kyiv
Ready to work:
Remote

Contact information

The job seeker has provided: Phone numberEmailLinkedInMessenger

Name, contacts and photo are only available to registered employers. To access the candidates' personal information, log in as an employer or sign up.

Uploaded file

Quick view version

This resume is posted as a file. The quick view option may be worse than the original resume.

Kateryna Brovkova
Python / Django Backend Developer
Batumi, Georgia - open to remote or relocation | [open contact info](look above in the "contact info" section)
github.com/katerynabrovkova | [open contact info](look above in the "contact info" section)
PROFILE
Python/Django backend developer who independently designed and shipped two systems end to end: a REST API with
queryset-level permission enforcement and an AI assistant grounded in real database records, and a Celery-based Telegram
bot with concurrency-safe deduplication and per-subscriber delivery tracking. Comfortable owning a feature from schema
design through testing (80%+ coverage) to CI-enforced type safety and linting, and Docker-based deployment. Looking for a
backend role where the Python/Django stack is a strong fit, remote or on-site, open to relocation.

TECHNICAL SKILLS
Languages: Python, SQL
Frameworks: Django, Django REST Framework, Celery, aiogram
Databases: PostgreSQL, Redis
API & Auth: REST, JWT, OpenAPI / Swagger
AI Integrations: OpenAI API, prompt engineering, grounded response generation
Testing: pytest, pytest-django, fixtures, parametrize, async testing (asyncio)
Code Quality: Ruff, mypy, django-stubs, type hints
Infrastructure: Docker, Docker Compose, GitHub Actions, Git, Render
PROJECTS
BookShelf API
github.com/katerynabrovkova/bookshelf-api | live API documentation
REST API for tracking a personal reading life: a shared book catalog, private shelves with reading progress, and reviews
unlocked only after a book is finished.
• Implemented JWT authentication with object-level permissions enforced at the queryset level; unauthorized access to
another user's shelf or review returns 404 rather than 403, so the resource's existence is never revealed.
• Built an AI assistant (OpenAI API) that answers catalog questions grounded in real database records: retrieves matching
books by keyword search with a random fallback when nothing matches, and returns a dedicated 503 response if the AI
service fails.
• Wrote a pytest suite of 19 tests covering permissions, business rules such as blocking reviews until a book is marked
finished, and parametrized edge-case validation, reaching 88% overall test coverage.
• Integrated Ruff and mypy into GitHub Actions CI, catching type mismatches before deployment.
Stack: Django REST Framework, PostgreSQL, JWT, pytest, Docker, GitHub Actions, OpenAI API, drf-spectacular

Job Vacancy Bot
github.com/katerynabrovkova/job-vacancy-bot
Telegram bot that monitors job boards and delivers new vacancies matching each subscriber's keywords within 5 minutes of
publication.
• Celery and Celery Beat poll two job sources on a schedule, with a 4-minute task expiration that prevents stale runs from
piling up if a worker falls behind.
• Tasks are chained so fetching always completes before delivery, keeping the digest consistent even when a run is
delayed.
• Deduplication enforced by a database constraint on source and external ID rather than application-level checks, keeping
repeated polling safe under concurrency.
• Delivery tracked per subscriber, so a delayed worker catches up instead of silently losing vacancies.
• Covered with 24 pytest tests, including async tests for delivery logic and parametrized tests for URL and title parsing
across edge cases, reaching 81% overall test coverage.
Stack: Django, Celery, Redis, aiogram, PostgreSQL, pytest, Docker Compose, GitHub Actions

LANGUAGES
Ukrainian: native | English: B1, actively improving

Similar candidates

All similar candidates

Candidates at categories

Candidates by city


Compare your requirements and salary with other companies' jobs: