Алексей Коврижкин

Работа с удовольствием добавляет совершенство в ее результат

Аристотель

Мне нравится создавать программы, которые решают конкретные задачи и приносят в этот мир нечто полезное. Если задача интересна только мне, я делаю MVP и публикую его на гитхаб.

  • С 2015 года основную часть программ я пишу на golang. Это - бэкенд приложения, как правило API (JSON_RPC или gRPC, реже - REST, TWIRP).
  • Если используется БД, то это Postgresql (включая plpgsql).
  • Для деплоя (CI/CD/gitops) использую свое решение (dcape), основанное на docker-compose.yml и Makefile.
  • Если для получения работоспособного прототипа надо добавить несложный фронт, я использую свой давний опыт и привлекаю LLM.
  • Если в проекте участвует несколько разработчиков, я, как правило, их возглавляю.
  • В современном мире, некоторые задачи (вроде генерации тестов) может выполнить ИИ. Я об этом помню и, где это уместно, использую.

Вся разработка ведётся под linux (с 2003г), удаленно (с 2009г).

Мои роли в проектах:
• разработчик
• тимлид
• архитектор

Более всего мне интересны проекты, в которых:

  • Серверная часть пишется на go
  • Правки OpenSouce проектов выкладываются в OpenSouce, прежде всего как MR (Merge Request)

Роли

Архитектор / Разработчик проектов, использующих

  • golang
  • postgres
  • nats
  • docker

Занимаюсь ИТ профессионально с 1994г, специализируюсь на бэкенде и имею опыт в администрировании linux/docker и задачах фронтенда (html/vanilla js).
Не ограничиваюсь кодированием по ТЗ и стараюсь сделать все возможное для успеха проекта в целом.

В командах занимал роли от разработчика до архитектора и тимлида.

Opensource

В свободное время и в рамках проектов я участвую в opensource и публикую код тут - github.com/LeKovr.

Статистику таких публикаций после 2012 года может быть удобнее смотреть на codersrank. Этот ресурс я использую для информации о том, сколько и какого кода отдано в opensource, объем коммитов сути сделанного не релевантен. Тем более, что они в какой-то момент убрали статистику про docker-compose.

Мой выбор

  • postgresql - я писал под Оrасlе, когда в 1999г встретил СУБД, которая, на мой взгляд, мотивировала не закапываться в лишнее, а делать именно то, для чего SQL и хранимый код наиболее подходят
  • golang - в 98м я выбрал реrl из-за CPAN. В 2015г перешел на golang, который меня привлек лаконичностью, обилием современных библиотек, линтерами, генераторами и т.п. С этого времени все, что не sql и bash, пишу на golang
  • docker - когда он вышел в опенсорс, такие решения как сhеf, аnsiblе, рuрреt, на мой взгляд, потеряли актуальность. Я добавил его в свой стек в 2014г и с его помощью закрываю все задачи деплоя, кроме энтерпрайз-решений на k8s, которыми занимаются уже другие команды
  • linux - начал использовать в 1998г, перестал использовать другие ОС в 2002г
  • удаленка - работаю дистанционно с 2006г, для меня готовность получать нужный результат от сотрудника на удаленке - одно из ключевых требований к нанимателю

Также имею реализованные проекты с использованием

  • Реrl (1999 - 2015)
  • Dеlphi (1998 - 1999)
  • Оrаclе PL/SQL (1997 - 1999)
  • PАL/QBЕ (1994 - 1997)
  • С (1994 - 1995, 2002)
  • Pаsсаl (1990 - 1993)

Примеры проектов

Наиболее крупные проекты, в которых я участвовал

  • транспортная платформа учета и тарификации поездок в ОТ г. Москва (go, rabbit, postgresql), 2021г
  • бэкенд тендерной системы (go, plpgsql), 2017г
  • ядро тендерной системы (perl, plpgsql, jquery), 2010г
  • биллинг оператора фиксированной связи (perl, plpgsql, C), 2003г
  • сервисы публикации прайс-листов для региональной газеты и фармацевтической компании (perl, plpgsql), 2001г
  • расчет и консолидация экономических показателей филиалов банка (PAL), 1996г

Что ищу

IT-команду, которая

  • сопровождает бизнес, привносящий в этот мир что-то материальное и(или) полезное
  • реализовывает проекты с длительным жизненным циклом
  • практикует участие в opensource
  • имеет в составе сотрудников на удаленке
  • использует linux как основную ОС
  • готова использовать Makefile, git submodule, plpgsql

Я бы предпочел начинать общение с новой командой с обсуждения её и моих opensoure-проектов.

PS. а если есть проект, посвященный интеграции хранимого кода postgresql, golang и rpc - я был бы рад добавить в него свои экспертизу и ресурс.

Что не ищу

  • проекты, связанные со спамом, азартными играми и т.п.
  • митинги по графику без реальной темы
  • релокацию за пределы ЮФО РФ

Опыт работы

Системный архитектор (ноябрь 2023 — настоящее время)

  • Компания: Vinteo
  • Должность: Ведущий системный архитектор. Отдел поддержки инфраструктуры.

Проектирование и реализация проектов:

  • технология портирования php в golang с использованием LLM (coverage 100%, gpt-oss:20b, RooCode, ollama)
  • прокси-сервер для добавления кластерного функционала в сингл-хост решение (golang, NATS, protobuf, otel)
  • кластерная версия сервисов ВКС (Vinteo server, docker, keepalived, galera, mcrouter)
  • сервис резолвинга (DoH) для dnsdist по данным ipvsadm (golang)
  • сервис локального деплоя приложений с управлением по API (golang, https://gitflic.ru/project/vinteo/comas)

ИП (май 2015 — ноябрь 2023)

Разработчик/тех-лид/архитектор в PoGoDo проектах на договорной основе.

  • RnD по теме GRPC/protobuf/buf (gogens)
  • Сервис однократного показа паролей (showonce)
  • IoT в части управления освещением посредством smart-часов (hocon, js / zeppOS)
  • dopos, DevOps в части адаптации проектов для docker-compose и make

Другие проекты, в которых я участвовал в период 2015 - 2020

  • Как разработчик в составе команды
    • 2019, Миграция хранимого кода Оrасlе -> Postgresql (plpgsql)
    • 2018, Бэкенд аналитики блокчейн бирж (golang)
  • Как архитектор и разработчик
    • 2016, Портал авторизации по СМС для Wi-Fi клиентов оператора связи (golang, jаvаsсript, sqlite)
    • 2015, Генератор сайта магазина по xls и md, универсальный API обработки заказов (golang)

Тимлид golang (май 2021 - май 2022)

  • Компания: ГК Иннотех, Москва
  • Должность: Руководитель группы разработки GoLang

Задачи

  • координация и участие в планировании работ команды разработки (программисты, тестировщики, аналитик)
  • реверс-инжиниринг, анализ и устранение проблемных мест микросервисов в продакшене
  • проектирование новых сервисов и доработок существующих (go, TWIRP, rabbit, postgresql)

До октября 2021 - Старший разработчик GoLang

  • создание новых сервисов (GRPC/TWIRP + Postgresql)
  • сопровождение существующих сервисов, обслуживающих общественный транспорт г. Москва (оплата поездок, web-шлюз пользователей и т.п.)

Личные достижения

  • Реализовал пилот про мультимастер Pg с шардингом и логической репликацией.

Начальник отдела ИТ (август 2006 - август 2020)

ООО ТендерПро, Москва

  • Руководство ИТ подразделениями компании
    • группа сопровождения и развития проекта www.tender.pro (реrl, sql, js)
    • группа back-end разработки (sql, plpgsql)
    • группа front-end разработки (js, jquery, rеасt)
    • группа администрирования linux
  • Координация работы команд в целях сохранения работоспособности legacy-продукта и добавления нового функционала
  • Реализация ключевых моментов архитектуры (plpgsql, perl, jQuery)
  • Анализ функциональных требований и согласование их со структурой продукта
  • Внедрение технологий CI/CD для legacy-продукта (я внедрил техпроцесс на основе docker (dcape) для mod_perl-1.24 и двухэтапную систему релизов)
  • Разработка архитектуры новых подсистем + создание MVP
    • rpc-sample-app - сервис с фронтендом (gRPC/JSON/Websockets/SOAP), вызывающий бэкенд напрямую или через NATS (+ rpckit, мой вариант миграции legacy в 2020м году
    • sfs - мой вариант архитектуры файл-сервера
    • grpc-sample - начальная архитектура gRPC API

Личные достижения

  • 2016, dbrpc - прокси “JSON-RPC 2.0 -> plpgsql”, позволивший работать параллельно командам фронта (js), бекенда (elixir) и БД (plpgsql), (golang)
  • 2010-2012, PGWS - фреймворк на основе JSON-RPC интерфейса к хранимым процедурам БД (PostgreSQL/plpgsql, реrl, jаvаsсript)
  • 2012, formEV- плагин jQuеry для просмотра/редактирования форм (jаvаsсript)

До октября 2009г - Fullstack (реrl) программист

Персональные задачи:

  • Доработка текущего, проектирование и разработка новых версий ядра системы (mod_реrl, PostgreSQL)

Личные достижения

  • Подсистема тарификации клиентов на основе очереди задач (реrl, plpgsql)
Другие проекты, которыми я занимался на уровне пилотов или подготовки к продакшену
  • 2012, Прототип Удостоверяющего Центра ЭЦП, сервер и клиент (реrl, bash)
  • 2009, Эмулятор работы колл-центра (PostgreSQL/plpgsql, OpenOffice.org Base)

Тимлид биллинга телеком (август 2002 — сентябрь 2009)

Южный Телеком, Краснодар

Руководство группой разработки и эксплуатации биллинговой системы телеком-оператора.

Первоначальные задачи включали проектирование и разработку систем тарификации и их эксплуатацию, впоследствии добавились задачи эксплуатации внешних систем, построения и развития комплексного решения.

С ростом круга решаемых задач, менялась структура отвечающего за них подразделения и c 2004г его штат составлял 5 человек.

  • проектирование и разработка ПО для тарификации услуг телеком-оператора (PostgreSQL, реrl, bash)
  • разработка подсистем тарификации трафика клиентов (VoIP, NetFlow, Radius)
  • тарификация партнерского трафика и обнаружение ошибок в партнерских системах тарификации (PostgreSQL)
  • разработка коннекторов к новому оборудованию (реrl, C)
  • подготовка отчетности и разработка новых отчетных форм (mod_реrl)

Личные достижения

  • Спроектировал и реализовал при участии команды биллинговую систему телеком-оператора
Проекты

Проекты, которые находились (или находятся) в продакшене более года

  • 2005, Онлайн-Тарификация звонков в реальном времени с поддержкой кредитов и абонплат (PostgreSQL/plpgsql, gnu-Radius)
  • 2003, Офлайн-Биллинг телеком-оператора (mod_реrl, PostgreSQL/plpgsql)
MVP

Другие темы, которыми я занимался на уровне пилотов или подготовки к продакшену

  • 2008, JAST::Wiki. Система поддержки документации (mod_реrl)
  • 2004, OverSSI. Конфигурируемый через SSI web-интерфейс к БД (mod_реrl, PostgreSQL/plpgsql)
  • 2002, Библиотека построения диаграмм по XML спецификации (Linux, C, libxml, libgd2)

Fullstack+admin (июнь 1999 — июль 2002)

Фармацевтическая компания “Фарма плюс”, Краснодар

WWW-программист, системный администратор

  • перевод компании на использование открытого ПО в части работы с интернет (linux, apache, bind, proftpd, iptables, sendmail, dovecot etc)
  • разработка сервиса публикации прайс-листов (HTML::Mason)
  • программирование системы offline-заказов (jаvаsсript, реrl, email)
  • проектирование отказоустойчивого решения для корпоративного сайта (slave frontend - Apache, rsync)
  • построение и администрирование решения для корпоративного доступа в интернет (firewall, email, proxy - Linux)

Достижения

  1. Меня взяли специалистом по Oracle перед покупкой “использующей Oracle программы”. Я обнаружил и доказал, что покупаемая программа к Oracle отношения не имеет.
  2. К моему приходу компания ничего не знала про linux, в процессе мы подняли и сконфили сервера под RedHat, закрыв текущий функционал и добавив новый, а потом еще и взяли админа для них.
  3. Написал программу на js, чтобы офлайн быстро (из 2К позиций) собрать заказ и отправить его по email
  4. Помог КубаньЭлектроСвязи (Ростелекому) прикрутить к их ISDN плату расширения к Motorola Vanguard 360, которую я взял у вендора без оплаты до успешного применения, в итоге оплатили.
Проекты

Проекты, которые находились в продакшене более года

  • 2001, Сервис публикации прайс-листов для региональной газеты (www.price.kuban.su) и фармацевтической компании (www.farma.ru) (mod_реrl, HTML::Mason, PostgreSQL)

Программист (август 1994 — июнь 1999)

Акционерный банк “КубаньБанк”, Краснодар

Главный специалист отдела программирования АСУ

Разработка систем поддержки принятия решений для отделов планирования (головной банк и филиалы):

  • проектирование и разработка решений по анализу деятельности банка (Oracle, Crystal Reports)
  • подготовка балансовой отчетности для РКЦ (Paradox)
  • расчет аналитических показателей по пользовательским параметрам (Paradox)
  • агрегация данных филиалов (результаты расчетов и журналы ошибок) (Paradox)

Личные достижения

  1. Моя программа расчета нормативов сразу была лучше версии штатных сотрудников и потом однажды оказалась лучше версии ЦБ
  2. Я придумал (и реализовал) добавление трейсов ошибок в пересылаемые из филиалов нормативы, чтобы знать, почему в каком-то филиале моя программа сбоит
  3. Применил университетский опыт в С для реализации показа интерактивных диаграмм по данным нормативов
Проекты
  • 1999, Система учета движения товаров и услуг для сервисной фирмы (Delphi, Crystal Reports, MS Access)

Образование

Высшее, 1989-1994, Кубанский Госуниверситет, Краснодар. Факультет прикладной математики

Хобби

Актуальные проекты

  • dopos - Настройка и развёртывание docker-приложений на выделенном сервере (docker, make, golang, gitea, traefik, postgresql)
  • pgmig - Пакетная загрузка SQL (миграции) в БД (golang, postgresql)
  • procapi - API к хранимым процедурам Postgresql (golang)
  • apisite - SQL API для шаблонов и внешних клиентов на основе procapi и apitpl (golang)

Прошлые проекты, которыми я занимался на уровне пилотов или подготовки к продакшену

  • 2021, mqbridge. Сервис обмена сообщениями между Postgresql и NATS
  • 2020, logbase. Сервис для размещения в БД Postgresql структурированных журнальных файлов (golang, postgresql)
  • 2020, siwemon. Пример построения графиков мониторинга по данным webtail
  • 2019, fiwes. Сервис формирования превью изображений
  • 2018, poma. Makefile для загрузки SQL в БД (make, postgresql)
  • 2017, metricinc. Сервис сбора инкрементных метрик (golang, grpc, boltdb, docker)
  • 2017, webtail. Сервис доступа к изменяемым файлам через websocket

Языки

  • Русский — родной
  • Английский — читаю профессиональную литературу

Увлечения

  • велосипед
  • стендовая стрельба (скит)

Личные данные

Версия для печати


http://lekovr.github.io/cv/