Специалисты

Описание

ТЕХНИЧЕСКИЕ НАВЫКИ
Go, SQL, PostgreSQL, Apache Kafka, gRPC, REST API, Redis, Docker, Kubernetes, Linux, Keycloak, MongoDB, Gitlab CI/CD, ELK, Grafana, Prometheus helm terraform aws gcp Testify gomock jmeter WebSockets ClickHouse gorilla PASETO OWASP Oauth2 gRPC Gateway GraphQL
ОБРАЗОВАНИЕ

2022 - 2024 - Магистратура
Санкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и кибербезопасности
Высшая школа программной инженерии – Программная инженерия
2018 - 2022 – Бакалавриат
Санкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и кибербезопасности
Высшая школа программной инженерии – Программная инженерия

Опыт
Проект

Разработка и оптимизация RTB-аукциона для автоматической торговли рекламными слотами, обслуживающего до 10K запросов в секунду в пике

Описание

Роль: Go Developer Команда: 6 backend разработчиков. Проект: Разработка и оптимизация RTB-аукциона для автоматической торговли рекламными слотами, обслуживающего до 10K запросов в секунду в пике. Основной упор делался на производительность системы, снижение задержек и оптимизацию бизнес-логики аукциона. Задачи: Разработка и масштабирование микросервисной архитектуры.Проектирование и разработка горизонтально масштабируемых микросервисов на Go.Оптимизация взаимодействия сервисов через gRPC и REST API. Разработка конвейерной обработки данных для минимизации задержек. Обработка событий и асинхронные процессы.Внедрение Kafka для обработки событий, балансировки нагрузки и интеграции с внешними рекламными платформами. Разработка идемпотентной обработки сообщений в Kafka, предотвращающей дублирование данных. Настройка ретраев и дедупликации сообщений в брокере Kafka. Оптимизация производительности и latency.Профилирование и оптимизация критичных маршрутов аукциона для снижения задержек на 50+ мс.Разработка и внедрение кеширования с использованием Redis для ускорения обработки ставок. Анализ и улучшение SQL-запросов в PostgreSQL для работы с большими объёмами данных. Интеграция с внешними сервисами.Разработка адаптеров для внешних DSP (Demand-Side Platforms) через gRPC и REST API. Внедрение WebSockets для взаимодействия с real-time компонентами платформы. Использование gRPC Gateway для обеспечения совместимости между gRPC и REST API. Обеспечение отказоустойчивости и мониторинга Разработка сервиса сбора runtime-метрик для мониторинга CPU, RAM, утечек ресурсов. Внедрение Prometheus и Grafana для сбора и визуализации метрик. Логирование и трассировка запросов с ELK (Elasticsearch, Logstash, Kibana). Аутентификация, авторизация и безопасность.Внедрение Keycloak для централизованного управления аутентификацией и Single Sign-On (SSO). Разработка и настройка ролевой модели доступа для микросервисов. Использование PASETO вместо JWT для повышения безопасности токенов. Реализация OWASP Security Best Practices для защиты API. CI/CD и автоматизация процессов.Настройка GitLab CI/CD для автоматизированных деплоев и тестирования. Автоматизация инфраструктуры с Docker, Kubernetes, Helm. Разработка юнит- и интеграционных тестов с Testify, GoMock, JMeter. Внедрение GraphQL для агрегации данных из микросервисов, связанных с кликами, показами и ставками. Разработка схемы для удобной выборки статистики по рекламным событиям Достижения: Снизил задержки на критичных маршрутах аукциона, повысив эффективность размещения рекламы. Разработал систему мониторинга runtime-метрик, улучшив диагностику и реакцию на аномалии. Настроил Keycloak для централизованного управления доступом, повысив безопасность системы. Оптимизировал работу с Kafka, устранив дублирование сообщений и повысив стабильность потоков данных.

Технологии

Go, Apache Kafka, Redis, PostgreSQL, MongoDB, Docker, Docker Compose, gRPC, Keycloak, Grafana, Prometheus, aws testify gomock jmeter ClickHouse WebSockets gorilla PASETO OWASP gRPC Gateway golangci-lint REST API GraphQL

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

Май 2023 — Наст. время месяцев

Проект

HRM платформа

Описание

Роль: Go Developer Команда: 4 backend разработчик, 2 frontend разработчика Проект: Автоматизированная система подбора интервьюеров для проведения технических собеседований. Система позволяла снизить нагрузку на HR-отдел за счёт автоматической логики распределения интервьюеров и кандидатов с избежанием конфликтов в графике. Задачи: Проектирование и разработка микросервисов на Go для автоматического распределения интервьюеров. Реализация алгоритма распределения кандидатов с учетом расписания, приоритетов и занятости интервьюеров. Внедрение механизма асинхронной обработки заявок через Kafka для масштабируемости. Оптимизация SQL-запросов в PostgreSQL, чтобы ускорить обработку больших объемов заявок. Использование Redis для кеширования часто запрашиваемых данных о кандидатах. Разработка гибкой API (gRPC + REST) для взаимодействия с другими HR-инструментами. Подключение системы к устаревшим API HR-платформ из Германии. Разработка прослойки для трансформации данных (JSON ? XML) для корректной передачи данных. Настройка механизмов ретраев и дедупликации при нестабильном соединении с внешними API. Внедрение логирования всех ошибок и попыток повторной отправки данных в ELK (Elasticsearch, Logstash, Kibana). Оптимизация взаимодействия с удаленными API через gRPC, что позволило снизить время отклика запросов на 30%. Настройка CI/CD пайплайнов в GitLab, автоматизирующих тестирование и деплой. Контейнеризация микросервисов в Docker с последующим деплоем в Kubernetes. Автоматизация деплоя с использованием Helm и Terraform. Оптимизация GitLab CI/CD, что сократило время развертывания новых версий сервиса с 15 до 5 минут. Настройка метрик производительности и мониторинга через Prometheus и Grafana. Разработка системы алертов, отслеживающей аномалии в загрузке сервисов. Внедрение логирования через ELK (Elasticsearch, Logstash, Kibana) для централизованного хранения логов. Разработка health-check endpoints, которые позволили сократить время на диагностику сбоев в продакшене. Интеграция OAuth2 для аутентификации пользователей через Google и корпоративные системы. Настройка ролевой модели доступа, позволяющей HR-менеджерам управлять кандидатами, а интервьюерам — только просматривать расписание. Автоматизация анализа уязвимостей кода с помощью SonarQube. Реализация защиты API по best practices OWASP, в том числе механизмов rate limiting и CORS. Разработка WebSockets API (gorilla/websocket) для отображения обновлений расписания в реальном времени. Оптимизация работы API, снизив время отклика на 25%. Улучшение обработки bulk-запросов, что сократило нагрузку на базу данных. Достижения: Разработал микросервис распределения интервьюеров, снизив время обработки заявок на 40%. Оптимизировал интеграцию с устаревшими API, устранив несовместимость форматов данных. Автоматизировал деплой сервисов, повысив стабильность обновлений и отказоустойчивость системы.

Технологии

Go, Apache Kafka, PostgreSQL, Kubernetes, GitLab CI/CD, ELK (Elasticsearch, Logstash, Kibana), Grafana, Prometheus, gRPC, Redis Helm terraform gcp gorilla OAuth2 SonarCube REST API

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

Июль 2021 — Апрель 2023 месяцев

Проект

Парсер событий и ставок

Описание

Роль: Backend разработчик Команда: 2 backend-разработчика Проект: Парсер собирает с сайтов референсов все данные линий событий (спорт, чемпионат, счет, название и фото команда, события и их коэффициенты). Исследование исходящих запросов на получение матчей сайтов референсов. Задачи: Разработка микросервисной архитектуры парсера на Go, обеспечивающей отказоустойчивость. Проектирование многоуровневой системы кеширования (Redis) для снижения нагрузки на базу данных. Внедрение Kafka для обработки потоков данных с сайтов-референсов. Настройка гибкой API (REST + gRPC) для взаимодействия с внешними сервисами. Оптимизация работы парсера под горизонтальное масштабирование (несколько инстансов). Анализ исходящих запросов сайтов-референсов для получения данных матчей и коэффициентов. Разработка механизма обхода анти-бот-защиты, включая: Динамическое изменение User-Agent и заголовков запроса. Использование прокси-серверов для распределения трафика. Имитация поведения реального пользователя с помощью Chromedp. Оптимизация парсинга JSON и HTML-страниц для быстрого извлечения нужных данных. Реализация механизма автоматического обновления коэффициентов ставок в реальном времени. Внедрение отслеживания изменений коэффициентов с записью истории изменений в PostgreSQL. Разработка механизма фильтрации и валидации данных перед сохранением в базу. Разработка алгоритма обработки купонов ставок по популярным группам событий. Оптимизация механизмов расчета кросс-коэффициентов на основе динамики изменений. Внедрение автоматического обновления и удаления старых данных при смене коэффициентов. Разработка API для анализа ставок и определения наиболее прибыльных стратегий. Разработка WebSockets API для потокового обновления коэффициентов и событий. Настройка механизма подписки пользователей на изменение коэффициентов в реальном времени. Оптимизация работы push-уведомлений для моментального обновления данных. Уменьшение нагрузки на WebSockets-соединения за счет batch-обработки событий. Развертывание Sentry для централизованного логирования ошибок. Внедрение Prometheus и Grafana для мониторинга производительности системы. Разработка health-check API для диагностики состояния сервисов. Настройка логов запросов с уровнем важности (info, warning, error) Ведение отдельных логов для обработки ошибок API референсов. Контейнеризация сервисов в Docker и оркестрация через Docker Compose. Автоматизация развертывания и обновления через CI/CD. Оптимизация работы Redis для кеширования коэффициентов и событий. Настройка репликации базы данных PostgreSQL для увеличения отказоустойчивости. Достижения: Оптимизировал парсинг матчей, ускорив сбор данных на 35%. Разработал автоматический расчет купонов ставок, повысив точность прогнозирования коэффициентов. Реализовал WebSockets API, обеспечив real-time обновление коэффициентов и событий. Настроил мониторинг и логирование через Sentry, Grafana и Prometheus, улучшив диагностику ошибок.

Технологии

Go, PostgreSQL, Redis, GIN, gRPC, Chromedp, WebSockets, Apache Kafka, Docker, Prometheus, Grafana, Sentry, Docker compose

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

Март 2020 - Июнь 2021 месяцев