Дмитрий Соломенников

Разработка алгоритмов, оптимизация, интеграция, кросс-платформенная разработка

Местоположение

Проживание: Россия, Санкт-Петербург

Готовность к работе: готов к удаленной работе

Возраст и стаж

Стаж: 18 лет и 3 месяца

Возраст: 40 лет

Контактная информация


Профессиональные навыки


Java • C++ • Компиляторы • Оптимизация кода • Функциональное программирование • Кросс-платформенная разработка • Qt • Разработка программного обеспечения • Jenkins • Git

Участие в профессиональных сообществах


Сентябрь 2011 —
По наст. время
(8 лет и 2 месяца)

GitHub

@dmitrys99: 3855 вкладов в 35 репозиториев, связан с языками:

Common LispC++CHTMLEmacs LispKotlinCSSMakefileTeXShellPerl

Опыт работы


Июль 2019 —
По наст. время
(5 месяцев)

Huawei Technologies Co.

Ведущий разработчик
Россия, Санкт-Петербург

Обязанности и достижения

Разработка компиляторов и других языковых средств.

Применяемые навыки

Компиляторы, Алгоритмы и структуры данных, Разработка программного обеспечения, C++, Java, Оптимизация кода, Golang
Февраль 2013 —
По наст. время
(6 лет и 10 месяцев)

Независимый консультант

Ведущий разработчик
Россия, Абакан

Обязанности и достижения

  • По требованию заказчика устройство собирали на плате Raspberry Pi. Спроектировал и реализовал программное обеспечение, в том числе обеспечил работу видеонаблюдения (посредством FFmpeg).

Применяемые навыки

C++, Qt, Встраиваемая система, Разработка программного обеспечения, Оптимизация кода, Системное программирование
Февраль 2013 —
По наст. время
(6 лет и 10 месяцев)

Ланит-Терком

Ведущий разработчик
Россия, Абакан

Обязанности и достижения

  • Дорабатываю компилятор языка Flow, http://flow9.org. Написал генератор Javascript (ES5, ES6, Node.js, Typescript), экспериментальные генераторы OCaml, D, Common Lisp. Сам компилятор раскручивается в Java.
  • Оптимизировал скорость компиляции и скорость работы Java-генератора. На разных участках прирост составил 25-75%
  • Подготовил план работ по выводу компилятора и библиотеки в open-source, произвел разделение двух репозиториев Git (более 50000 коммитов) на открытую и закрытую части
  • В связи с разделением репозиториев переработал более 20 задач на сборочном сервере Jenkins
  • Подготовил и провел презентацию языка Flow и его библиотеки https://bit.ly/2DF9hJ6
  • Активный коммиттер. Через год работы в компиляторной команде по коммитам занял вторую позицию после основателя фирмы заказчика
  • Дорабатывал виртуальную машину языка Flow (написана на C++) на всех поддерживаемых платформах: Microsoft Windows, Linux, Mac OS X, iOS, Android. Исправил ошибки распределения памяти при инициализации, ускорил работу машины на мобильных платформах на 7-10%
  • Регулярно провожу pull request review
  • Постоянно веду разъяснительную работу среди разработчиков по тонкостям работы компилятора (3-4 обращения в неделю).

Применяемые навыки

C++, Java, Оптимизация кода, Компиляторы, Функциональное программирование, Кросс-платформенная разработка, Qt, Git, JavaScript, Jenkins
Июнь 2005 —
Февраль 2013
(7 лет и 9 месяцев)

Центральный банк Российской Федерации

Инженер-программист
Россия, Абакан

Обязанности и достижения

  • Руководил группой внедрения и сопровождения учетно-операционной системы (3 человека)
  • Разрабатывал документацию на поставку, пуско-наладку и обслуживание программных и аппаратных банковских комплексов, компьютерных и сетевых систем. Дорабатывал договоры в части своего группы (15-20 договоров в год)
  • Внедрял и сопровождал программные комплексы. В разное время в обслуживании находилось более 200 программ разного размера и сложности
    Автоматизировал работу отдела в части сопровождения баз данных и Windows. Моими скриптами пользовались еще несколько лет после увольнения, включив их в технологические процессы
  • После внедрения service desk системы разрабатывал технологические карты процессов в части своего отдела и группы (более 20 карт).

Применяемые навыки

Техническая поддержка, Управление проектами, Microsoft SQL server, Oracle, Базы данных, Администрирование серверов, Администрирование Windows
Сентябрь 2001 —
Июнь 2005
(3 года и 10 месяцев)

Ростелеком

Инженер-программист
Россия, Абакан

Обязанности и достижения

  • Дорабатывал унаследованную биллинговую программу сотовой связи. За время работы внесено более 700 правок, значительно улучшен интерфейс программы и её отказоустойчивость. Произвел существенное улучшение стабильности работы программы. Ежемесячное выставление счетов из авральной операции преобразовал в рутинную, проводимую без привлечения программиста
  • Администрировал СУБД Oracle, в которой хранилась база данных программы. Переработал архитектуру базы данных, ускорив процедуру ежемесячного расчета, сократив количество аварий базы данных в 3-5 раз.

Применяемые навыки

Oracle dba, Delphi, Разработка программного обеспечения, Оптимизация кода

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


Сентябрь 1996 —
Июнь 2001

Хакасский государственный университет им. Н.Ф. Катанова

Институт информатики и телематики
Россия, Абакан

Специализация и достижения

  • Инженер-программист
  • Стипендия Правительства РФ (дважды)

О себе


Программист по образованию и призванию.

Люблю решать задачи и делать, чтобы все работало. Умею оптимизировать алгоритмы, программы и системы. Разбираюсь в языках программирования и знаю, как их делать. И как делать компиляторы тоже знаю.

Я могу не знать какую-то конкретную технологию, но широкий кругозор и способность быстро разобраться выручали не раз и позволяли решить любую поставленную задачу.

Умею общаться и с разработчиками, и с заказчиками. Есть опыт работы в большой международной команде (США, ЕС, Россия, Белоруссия).

Люблю хорошие интерфейсы.

Танцую сальсу и бачату.