Gulzhan Karakul
Портфолио
Payda - Система отзывов и рейтингов (Go / React / Flutter)
Payda | Fullstack Developer (Go / React / Flutter) Production-платформа лояльности в финтех-домене (30 000+ пользователей). Участвовала в разработке всей экосистемы продукта: backend-сервисов, веб-приложений для бизнеса и мобильного приложения для клиентов. Принимала участие в проектировании архитектуры, разработке новых функций и поддержке production-систем. • Разрабатывала backend-сервисы на Go: проектирование PostgreSQL-схем, REST API, бизнес-логика, интеграции с внешними сервисами и оптимизация производительности. • Реализовала систему отзывов и рейтингов пользователей: PostgreSQL-схема с индексированием (rating, created_at), REST API и интеграция с бонусной системой. Оптимизация запросов сократила время ответа сервиса с ~2 секунд до ~200 мс. • Разработала механизм идентификации клиентов при покупке через QR-код в мобильном приложении и токен в веб-версии, заменив идентификацию только по номеру телефона. • Реализовала систему корпоративных скидок с токен-механизмом подключения, обработкой конфликтующих условий и выбором наиболее выгодной скидки для пользователя. • Разработала гибкую систему начисления бонусов за отзывы с поддержкой различных сценариев начисления (процент, фиксированная сумма, отложенная активация) и транзакционной записью в PostgreSQL. • Интегрировала WhatsApp API для автоматических уведомлений клиентов, реализовала пользовательский интерфейс настройки рассылок и обработку ошибок внешних сервисов. • Разрабатывала веб-интерфейсы на React для внутренних систем компании, бизнес-портала и административной панели: создавала новые страницы, формы, настройки и пользовательские сценарии. • Разрабатывала функциональность мобильного приложения на Flutter: страницы магазинов и партнеров, экраны настроек, подключение корпоративных скидок по коду, фильтрацию магазинов через горизонтальные категории и интеграцию с backend API. • Работала с продуктовой командой по Agile-процессам: декомпозиция задач, code review, участие
Payda.app - Мобильное приложение (Flutter)
Разработка функционала мобильного приложения платформы лояльности. Реализовала новые экраны и пользовательские сценарии на Flutter: • страница магазинов с отображением информации о партнерах; • экран настроек пользователя; • форма подключения корпоративных скидок по специальному коду; • горизонтальные фильтры категорий магазинов с динамическим обновлением списка; • интеграция с backend API и обработка пользовательских сценариев. Участвовала в улучшении пользовательского опыта и расширении функциональности мобильного приложения. Стек: Flutter, Dart, REST API, Git.
Payment Service - Production-ready микросервис обработки транзакций с бонусной системой
Payment Service 2025 · github.com/GulzhanKarakul/payment-service Go · chi · PostgreSQL · Docker · testcontainers · mockery · httptest - Architecture: Layered (domain/repository/service/handler) + DDD. Интерфейсы в service пакете (Go-идиома), dependency injection, clean separation of concerns для тестируемости и maintainability. - Ключевые архитектурные решения: Atomic transaction (4 операции в одной Tx): INSERT transaction → UPDATE client bonus → UPDATE business bonus (с проверкой достаточности) → UPDATE status. Если шаг 3 вернул 0 строк → ROLLBACK. Гарантия ACID: либо всё, либо ничего. chi вместо Gin: меньше 'magic', более явный control flow (важно когда важна предсказуемость). testcontainers для repository тестов: тесты проверяют реальное поведение PostgreSQL, не мок (избегаю false positives при тестировании). Graceful shutdown: при SIGTERM текущие запросы завершаются корректно, нет потери данных. domain errors маппятся на правильные HTTP коды: клиент чётко понимает что произошло (400/404/409/422/500). - Production Practices: Structured logging (slog JSON): request_id в каждом логе для трейсинга (важно для дебага issues в production) Recovery middleware: panic не падает сервис, логируется stack trace, 500 не раскрывает детали клиенту multi-stage Docker build: статический бинарник, меньше на 30-40%, не нужны зависимости в runtime docker-compose healthcheck: готовность PostgreSQL перед стартом сервиса SQL injection protection: parameterized queries ($1, $2) Soft delete: deleted_at вместо физического удаления (важно для audit trail в финтехе) - Testing & Quality (90%+ coverage): Repository: testcontainers (real PostgreSQL), проверка ACID гарантий, rollback логики Service: mockery с expecter (изолированная бизнес-логика), table-driven тесты Handler: httptest (real HTTP requests), error mapping, status codes Middleware: logger (X-Request-ID UUID), re
