Резюме: Golang разработчик
Готов рассмотреть занятость или проектную работу до 20 часов в неделю,
Опыт коммерческой разработки на go - больше 4 лет
Чем занимался:
Участие в разработке и поддержке проекта core в рамках экосистемы продуктов:
- обсуждение, оценка и разработка функционала
- оптимизация работы сервиса, SQL запросов, таблиц в базе данных, процессов работы между сервисами
- управление командой backend-разработчиков на этом проекте (3-4 человека)
- код ревью
- планирование и проработка рефакторингов
- планирование и реализация новых сервисов в формате микросервисной архитектуры
- разработка презентаций и курса лекций по сервисам команды, для онбординга
- консультирование других команд по оптимизации работы сервисов и процессов
- участие в найме и проведение собеседований
Основные используемые технологии:
Golang, Redis, Postgresql, Rabbitmq, Docker
из основных использовавшихся библиотек:
Golang:
- gorm (только в старом основном сервисе)
- sqlboiler (все новые проекты писались с ним, пока он не умер)
- logrus
- gin, echo
- swaggo
- centrifugo
Frontend:
- vue, vuex, pinia,
- storybook
- tailwind
Иногда работал с Node.js и Python для каких-то отдельных внутренних проектов. Были проекты на laravel, на них работал с orchid и nova + не слишком сложные сервисы.
Был опыт написания frontend'а для админ-панелей и полноценные приложений.
Был опыт разработки бэкенда для игры с интеграцией оплаты через TON, stars и автоматическим минтингом и/или отправкой NFT (но на голанг и было неприятно)
Некоторые достижения за время работы:
- улучшение общей архитектуры проекта:
-- рефакторинг кодовой базы сервиса на использование репозиториев для взаимодействия с базой данных. Это позволило:
- полностью отделить сервисную логику от реализации общения с БД
- контролировать всю работу с БД в одном месте и приведение репозиториев к формату чистых функций (т.е. без использования внутренних состояний)
-- проектирование и проработка новых внутренних механизмов работы с аккаунтингом, позволило привести все начисления и все операции в системе окончательно к единому формату работы и делать это централизованно, что позволило:
- более эффективно проводить оптимизации работы статистики в сервисе
- сократить количество сценариев которые нужно обрабатывать в системе работая с аккаунтингом
- детализация данных аккаунтинга для статистики
- оптимизация работы других сервисов
-- убрал с конечных сервисов необходимость обработки операций аккаунтинга для преобразования в человеческий вид (присвоение названий, категоризации). У нас много конечных бэкендов со своей логикой отображения и реагирования на операции аккаунтинга и сервисы сами занимались обработкой операций для присвоения названия и категории, комбинаций таких становилось все больше и я разработал сервис который является "словарём" операций, т.е.
- присваивает названия в зависимости от запрошенного языка
- выдает что входит в какие категории
- может взять логику фильтрации операций по категориям
- является способом контролировать какие операции выводятся в каждом сервисе непосредственно менеджерам через админ-панель, без участия разработчиков и необходимости внесения изменений в сервисы
-- работа над оптимизацией sql запросов других сервисов
Образование: неоконченное высшее