User Tools

Site Tools


Олег Бородин, программный инженер

Опыт работы более 15 лет. Программный инженер-разработчик. В основном, но не только, создавал backend автоматы-сервисы разного типа, целей и масштаба.

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

Так или иначе работал по всем этапам жизненного IT цикла: анализ предметной области (разных), создание деловой модели и ее отображение в системную, выбор инструментария по целям и требованиям проекта, кодирование алгоритмов и автоматов, валидация, интеграция в общую систему и запуск, отладка, эксплуатация и сопровождение.

В основном для создания автоматов использую в работе библиотеки и фреймворки на С, C++14/17, Golang, Ruby, Perl, PHP, Javasript/Typescript.

Предпочитаю компиляторы и их языки (С/C++/Go), конечно выбор зависит от конкретного кейса или проекта, и его/их особенностей. Последние годы в основном использую Golang компилятор и библиотеки.

Знаком и иногда работаю с кодом на Java, Python, Lisp/Schema, Lua, и прочие, включая специфические DSL, в основном при необходимости интеграции и/или как унаследованные продукты.

Выработал некий универсальный подход при анализе и разработке, позволяющий в некоторой степени дистанцироваться от конкретного инструмента (компилятора/интерпретатора и связанных с ними инструментов/библиотек/фреймворков), и применять их адекватно ограничениям и требованиям проекта.

Давно использую системный анализ, объектно-ориентированное моделирование и разработку. Стараюсь по возможности создавать компактные, продуманные системы и компоненты. Значительная часть работ была связана с унаследованным кодом и решениями, не всегда высокого качества, реконструкцией и реинтеграцией с таковыми. Включая работу над 24×7 системами.

Достаточно хорошо знаю разные сетевые/локальные протоколы взаимодействии и передачи данных, от условно низкоуровневых до уровня приложений. Знаю как применять различные стеки в сетевых приложениях, и сам создавал кастомные протоколы взаимодействия под проекты.

В достаточной степени знаю системы управления базами данных, SQL, PL/SQL и их варианты. Довольно много использовал SQL системы для делового анализа. Также использовал по мере необходимости более простые key-value DB, встроенные и сетевые.

Моя давняя особая область интереса это сетевые распределенные системы, удаленное и локальное взаимодействие процессов-автоматов.

Знаком и использую множество RPC протоколов и подходов-решений (от уже устаревшего SUN RPC до относительно нового gRPC & C), фреймворков и коммуникационных библиотек. Также использую различные событийные системы и системы передачи сообщений, по мере необходимости. Мне понятна асинхронность реальных процессов в жизненном цикле и ее программные реализации.

Помимо создания различных сетевых сервисов, делал и участвовал в создании распределенных сетевых систем/комплексов (сбора данных, резервирования, оповещения, контроля и управления, интерактивного и автоматического, и тд) масштаба от одной аппаратной комнаты или цеха-кампуса до распределенных по странам, с интеграцией зоопарка большого диапазона решений и подходов.

Для себя изучил проектное управлении/PM по американскому стандарту, как одному из самых практикуемых и гибких. В 2013 сдал минимальный экзамен. Изучал проектное управление и сдавал экзамен на оригинальном языке.

На протяжении всей деятельности использую Unix операционные системы, в основном FreeBSD и Linux Debian, каждый день и как базовые для разработки. Имею хорошую практику их использования, знаю общие принципы построения и создания сервисов, системных комплексов, модифицировал системные компоненты.

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

В достаточной степени знаю фреймворки для создания web frontend части, Angular2/React/Vue.js. Изучил и использовал их для создания интерфейсов контроля/управления “своими” приложениями, но в дальнейшем немного работал и по компонентам frontend корпоративных проектов.

Знаком с математическим моделированием систем, в частности в свое время для себя изучал и применял моделирование твердых сред методом конечных элементов.

В последнее время работал по теме сетей IoT устройств. Создавал компоненты систем и сами системы для управления гетерогенными сетями устройств, с полным контуром этого контроля/управления.

Свои знания и опыт воспринимаю адекватно, всего знать невозможно, учится и доучиваться приходится постоянно. Нравится создавать надежные программные автоматы и их комплексы.

Достаточно хорошо знаю и практикую для себя как хобби разработку для встраиваемых систем, в основном на базе STM32 SoC и простейших Real time OS. Могу и писал драйвера устройств и/или шин по спецификациям/datasheets.

Последние два года сильно увлекся как хобби сборкой квадрокоптеров и самолетов, полетами на них, и вообще темой микро-авиации и систем для нее.

По характеру умеренный холерик и умеренный перфекционист, с уже философским взглядом на жизнь. Имею контакты и общаюсь с людьми в разных странах. Люблю юмор в работе, что помогает делать серьезные и ответственные дела. Женат, два сына.

С уважением,

Олег Бородин
skype, email: onborodin@gmail.com
whatsapp, telegram, phone: 7-952-058-72-64