Вячеслав Авдеев (lsoft), 43 года, Россия, ЕкатеринбургВячеслав Авдеев (lsoft), 43 года, Россия, Екатеринбург
Производственные процессы и инженерная культура.Бэкенд разработчикМенеджер продуктаВедущий (Lead)
От 300 000 ₽Ищу работу

Контакты

Войти
Возраст: 43 года
Опыт работы: 19 лет и 11 месяцев
Регистрация: 11.03.2025
Последний визит: 1 день назад
Гражданство: Россия
Местоположение: Россия, Екатеринбург
Дополнительно: готов к удаленной работе
Знание языков: Английский В2

Обо мне

# Общие слова


Последние годы участвовал в разработке системы АСУ ППК для пригородного комплекса РЖД как тим-лид, архитектор и организатор производства.


АСУ ППК - система автоматизации процессов в пригородных пассажирских компаниях. Она отвечает за продажу билетов на разных устройствах продажи (кассы, терминалы, переносные кассы, веб), валидацию билетов на турникетных комплексах станций, предоставление отчетности по проданным билетам, интеграции с множеством региональных систем (например, транспортных карт) и интеграцию с системами РЖД (АСУ ЭКСПРЕСС).



# Технические навыки



  • Обладаю общей технической грамотностью и культурой разработки.
  • Проводил код ревью, улучшал этот процесс в команде.
  • Обучал начинающих программистов как техническим навыкам, так и философии инженерии.
  • Имею многолетний опыт разработки ПО на языке C#. Есть опыт разработки кода с минимум аллокаций https://github.com/lsoft/XmlSerDe
  • Организовывал и участвовал в переводе крупной системы с win -> linux (импортозамещение).
  • Участвовал в разработке процесса перевода реляционной БД с mssql -> postgres (импортозамещение).
  • Имею опыт решения сложных технических проблем в реальных системах (к примеру, анализ дампов памяти на предмет утечек памяти, диагностировать проблемы со сборкой мусора в приложении).
  • Имею опыт построения баз данных MS SQL (OLTP), написания и оптимизации запросов.
  • Имею опыт разработки базы данных служб анализа (OLAP) в MS Analysis services, с созданием ETL процесса.
  • Знаком с clickhouse.
  • Имею опыт разработки расширений для Visual Studio, облегчающих работу команды над однообразными задачами. Публичные расширения: https://marketplace.visualstudio.com/search?term=lsoft&target=VS
  • Имею опыт разработки Roslyn анализаторов (например https://github.com/lsoft/FixRussianCAnalyzer, много их) и C# Source Generators (https://github.com/lsoft/DpdtInject).
  • Имею опыт использования git, gitlab (включая API).
  • Имею опыт работы с linq2db и даже был их контрибутором (https://github.com/linq2db/linq2db/wiki/Releases-and-Roadmap#remote-context).
  • Знаком с grpc, wcf, sqlite.
  • Имел опыт разработки алгоритмов машинного обучения на связке C# + OpenCL.
  • Знал и применял ранее C++, различные ассемблеры.


# АСУ ППК


Много лет посвятил разработке системы АСУ ППК. Мои активности на проекте делятся на технические и управленческие:



В конвейере производства:



  • планирование работ совместно с менеджером проекта.
  • организация процессов производства за пределами отдела разработки (интеграционные тесты; отдел внутренних разработок).
  • изучение и (не)допуск до разработки аналитических проработок.


В отделе разработки:



  • наем программистов отдел разработки. (и обратный процесс).
  • организация процессов внутри отдела разработки (разработка инструментов; оптимизация процессов; внедрение инноваций; внедрение процессов (например, code review)).
  • обучение и менторство.


Технические активности:



  • написание кода; переписывание кода за новичками. =)
  • участие в код-ревью.
  • подготовка задачи к передаче программистом (этапность; крупноблочная архитектура).
  • крупноблочный рефакторинг структуры АСУППК.


Какие типичные проблемы решал:



В конвейере производства:



  • как устранить дисбаланс производственного конвейера между отделом разработки и отделом тестирования? (совместно с руководителем отдела тестирования).
  • как улучшить качество поставляемых в отдел разработки аналитических проработок? (совместно с руководителем отдела аналитики).
  • кто должен разрабатывать и поддерживать код, необходимый для работы производственного конвейера? (создан отдел внутренней разработки).


В отделе разработки:



  • какой формат отдела разработки выбрать? (плоский; иерархический).
  • как внедрить area owners? как улучшить качество код-ревью?
  • как оценить знания программистов в области баз данных?


Технические проблемы:



  • как внедрить async-await в огромную синхронную кодовую базу?
  • как унифицировать версию nuget пакетов во всей системе?
  • как организовать переход c Net Framework 4.0 на Net Core 8? (этапы; выявить потенциальные проблемы).
  • как организовать переход на linux? (этапы; выявить потенциальные проблемы (технические и организационные (каких специалистов надо нанять)).
  • как организовать переход на postgres? (этапы; выявить потенциальные проблемы (технические и организационные (каких специалистов надо нанять)).
  • как перейти на сервисную архитектуру? (этапы; какие технологии использовать).


Результаты:



  • Внедрена практика код-ревью, ранее не применяемая на проекте.
  • Продумана перспективная крупноблочная архитектура АСУ ППК.
  • Непрерывно пытаемся угнаться за современными технологиями в разработке ПО (например, осуществлены переходы svn -> git (gitlab), net framework -> net core, SDK style, central package management).
  • Спрототипирован собственный движок интеграционных тестов (gui тестирование) для десктопных приложений, успешно внедрено интеграционное (gui) тестирование, на проекте создан отдел автотестирования. Идет работа по покрытию интеграционными тестами всей системы.
  • Спрототипирована автоматизация процесса разработки АСУ ППК (создан "бот"), которая позволяет снять нагрузку с программистов и тестировщиков по рутинным задачам (выполнения черрипиков, актуализация МРов, выполнение валидации SQL запросов в CI/DI пайплайнов, передача МР в тестирование или на код ревью). "Бот" передан в новую команду внутренней разработки для дальнешего развития.

Иными словами, бОльшая часть нетехнических усилий направлена на организацию процесса производства АСУППК как в отделе разработки ПО, так и в целом по производственному конвейеру.



В процессе реализации:



  • внедрение в кодовую базу nullable reference types, переход на современный dotnet (и прочие программерские инновации).
  • переход АСУ ППК на сервисную архитектуру.
  • внедрение практики code owners, и, как следствие, проведение командой более качественного code review.
  • импортозамещение (переход на linux).
  • импортозамещение (переход на postgres).
  • дальнейшая автоматизация конвейера разработки, исключение ручного труда, повышение прозрачности процессов на всех этапах.
  • внедрение телеметрии и метрик (prometheus, grafana) как в производство, так и в продакшен.


# Профессиональные интересы



  • Автоматизация процессов производства Заказчика в реальном секторе; улучшение жизни людей.
  • Оптимизация процесса производства системы внутри компании-разработчика.
  • Построение здоровой производственной культуры.


# Сильные стороны



  • Считаю, что умею видеть проблемы.
  • Считаю, что умею вырабатывать жизнеспособные (работающие на практике) решения этих проблем.
  • Считаю, что умею видеть баланс, когда и насколько глубоко надо автоматизитировать то или иное (в связи с тем, что разработка ПО это крайне дорогой способ решения проблем).

Навыки

Linq
SQL
OLAP
ETL
Проектирование баз данных
ClickHouse
Организация бизнес-процессов
C#
Оптимизация бизнес-процессов
Построение команды

Участие в профсообществах

Опыт работы

  • ПромИТ
    Екатеринбург
    Менеджер продукта (Ведущий)Начальник отдела разработки ПО
    Сентябрь 2010 — Ноябрь 2024 (14 лет и 3 месяца)

    Выполнял функции программиста, тимлида, архитектора и организатора производства.

    • Написание кода АСУППК в роли разработчика ПО (C#, MSSQL, OLAP\MDX, Desktop WPF\Avalonia, бизнес-логика, архитектура).
    • Разработка структуры БД, оптимизация запросов.
    • Разработка системы АСУППК в роли тимлида.
    • Разработка архитектуры системы АСУППК.
    • Принятие на работу программистов.
    • Организация процесса производства, автоматизация процесса производства АСУ ППК (git, gitlab).
    • Создание подразделений, необходимых для улучшения производственного конвейера.
    • Проведение и улучшение процесса код-ревью.
    • Анализ аналитических проработок и принятия их в работу (или не принятие).
    • Декомпозиция задач для программистов.
    • Выработка технических решений по требованиям заказчика.
  • Урал РТСофт
    Екатеринбург
    Инженер-программист
    Июль 2008 — Август 2010 (2 года и 2 месяца)

    Разработка АСУППК на языке C# и БД MS SQL.

  • Doostang LTD
    Специалист по тестированию
    Октябрь 2006 — Февраль 2008 (1 год и 5 месяцев)

    Поддержка технического качества сайта
    Развертывание и администрирование системы мониторинга ошибок (СМО) Bugzilla
    Изучение баг-репортов посетителей сайта.
    Проверка сайта на информационную безопасность
    Создание и проведение тест кейсов и тест планов
    Проверка багфиксов и апдейтов для сайта

  • Targem
    руководитель отдела тестирования
    Август 2004 — Август 2006 (2 года и 1 месяц)

    Подбор и наём тестировщиков
    Осуществление взаимодействия между Руководителями Проектов и отделом QA
    Руководство 3-4 тестировщиками
    Создание и проведение тест кейсов и тест планов
    Контроль выполнения
    Осуществление взаимодействия между отделом QA и отделом PR для создания рекламных материалов
    Планирование и реализация внешних плей-тестов
    Участие в проектах “Дневной дозор", “ExMachina: Meridian 113”, “Battle Mages: Sign of Darkness” и “ExMachina”
    Осуществление взаимодействия с тестировщиками компании-издателя

Высшее образование

  • УрФУ им. Б.Н. Ельцина

    Уральский Федеральный Университет имени первого президента России Б.Н. Ельцина
    Екатеринбург4870 выпускников
    Pадиотехнический институт
    Сентябрь 1999 — Июнь 2005 (5 лет и 9 месяцев)

    ПТВС: Проектирование и технология электронно-вычислительных средств. В советское время наши выпускники несли в Америку свет и тепло, если Вы понимаете о чем я.

Дополнительное образование

  • БШТМ УГТУ-УПИ

    Бизнес школа технологий менеджмента УГТУ-УПИ
    Март 2008 — Ноябрь 2008 (8 месяцев)