Обязанности и достижения:
Работал в отделе корпоративного мессенджера. Основные клиенты для бэка: Web, Ios, Android, Open API
Среднее количество активных пользователей в будний день около 7000
За время работы:
- Спроектировал и реализовал возможность выгрузки заявок ботов в Excel и CSV. При реализации предложил использовать паттерн Worker-pool при котором в один момент времени могут формироваться не более N файлов с целью ускорить одновременное формирование файлов, а так же лимитировать их количество чтобы избежать просадки по памяти сервера. Среднее время выгрузки 14000 заявок в CSV - 14 секунд, в Excel - 53 секунды
- Спроектировал и реализовал возможность учёта файлового пространства аккаунта. Выбрал БД для хранения лимитов и актуального пространства аккаунта, выполнил миграцию 6_000_000_000 сообщений с целью учёта раннего использования файлового пространства аккаунта. Реализовав функционал помог бизнесу получать на 25% больше заявок с просьбой увеличить платный тариф аккаунта.
- Реализовал функционал автоматического запуска очередной заявки бота с возможностью передачи значений полей по определенному маппингу. При реализации обратил внимание на возможный баг с зацикливанием заявки если та запускает заявку на того же бота, что и предыдущая заявка, предложил решить баг добавив стек-трейс вызова заявок и лимитировать по количеству заявок на одного и того же бота.
- Быстро нашел и пофиксил ряд багов, при которых: клиент мог не с той стороны выводить сообщение о входящем \ исходящем звонке; на IOS клиент мог не приходить пуш о звонке; администратор канала не мог удалять сообщения пользователей...
Так же при разработке новых фич или фиксе багов была необходимость в соблюдении обратной совместимости для клиентов.
Основной стек: Golang, MySQL, Cassandra, Beanstalkd, Nats, Kafka, gRPC, Docker, git, Linux, Kubernetes..