Резюме в вольном стиле…

Сафронов Дмитрий Игоревич

«ТЫЖпрограммист», «шаман» и тому подобные определения от людей, чьи проблемы я решал.

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

Могу превратить ваши желания в техническое задание и помочь найти способ воплотить его в жизнь.

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

Готов разбираться, «какого чёрта оно не работает», даже если для этого придётся просыпаться с первыми петухами и проводить шаманские ритуалы в полнолуние.

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

Свои проекты привык сдавать вовремя. К чужой работе отношусь так же ответственно. Не бросаю коллег перед лицом дедлайна, даже если не могу помочь им напрямую.

Профессиональные знания

Имею некоторый багаж знаний в ИТ и не только, который умею и, что греха таить, люблю применять. В своих проектах использую с различной интенсивностью:

Сервисы

  • Kubernetes: установка, настройка, автоматизация деплоя приложений.
  • Web-серверы: Nginx - как ingress controller в Kubernetes, frontend-балансировщик и самостоятельный веб-сервер для статики в связке с FastCGI (в основном PHP-fpm) для динамики; использование базы пользователей домена. Apache - как сервер приложений и backend для web-кластера. Интересуюсь построением сервисов с прозрачной доменной авторизацией. Traefik - как ingress controller в K3S от Rancher.
  • Базы данных: MySQL/MariaDB, PostgreSQL, Clickhouse.
  • Мониторинг: Munin, Zabbix, Rsyslog + LogAnalyzer, Prometheus, Loki.
  • Почта — для технических целей: в основном рассылка оповещений серверами.
  • Samba: интеграция Linux-компьютеров в сеть Windows, использование Samba как контроллера домена, реализация общей базы пользователей для групп сервисов.
  • Куча мелочей, которые не стоят отдельного пункта, но сами собой разумеются, например: DHCP, FTP, rsync и т.д.

Актуальные операционные системы

  • Windows (с ~2000 г.): 95, 98, ME (неудачная версия, имхо), 2000 (+Server), XP, 2003 Server, Vista (неудачная версия, имхо), 7, 2008 Server, 8.1, 2012 Server, 10, 11
  • Linux (c 2006/2007 гг.) в порядке ознакомления: на десктопе — Mandriva -> Debian -> Ubuntu -> Gentoo -> Ubuntu, на серверах — Debian -> Centos -> Gentoo -> Ubuntu. В данный момент для своих проектов использую Debian/Ubuntu.
  • Embedded-решения на базе Linux: Open-, DD-WRT, LEDE (изучаю), Gentoo (периодически возвращаюсь: уж больно удобно кросс-компиляция реализуется). Периодически пытаюсь найти новое применение Raspberry Pi: от контроллера домена, ядра умного дома, мозгов для станка с ЧПУ до игровой ретро-приставки (да, Dendy и SEGA).

Прикладное ПО

Разнообразные клиенты от системных сервисов, мониторы ресурсов (ltrace/strace, набор от Sysinternals, etc.), среды разработки (Android Studio, IntelliJ IDEA, Arduino IDE, Eclipse, KDevelop, CodeBlocks), текстовые редакторы и подобное ПО. Весь список не просто описать, а даже вспомнить не получится.

Уровень владения разный: от поверхностного знакомства до уверенного использования.

Текущие направления развития

Интересуюсь построением виртуальных инфраструктур произвольного масштаба и конфигурации, кластеризацией сервисов и обеспечением их высокой доступности (HA). Заинтересовался разработкой мобильных приложений под платформы Android и Tizen.

Средства виртуализации, оркестрации и кластеризации

Начал знакомство с предметной областью в середине нулевых с ПО для рабочих станций. VirtualBox (застал её переход: Innotek -> Sun -> Oracle) использовал для сборки собственных дистрибутивов Windows XP. Параллельно познакомился с продукцией VMware (Workstation/Player). Для развлечения занимался развёртыванием популярных тогда игровых серверов в виртуальных машинах и оптимизацией ОС для такого режима работы.

После знакомства с Linux увлёкся контейнеризацией OpenVZ (впоследствии LXC), изучал Docker (и использовал в нескольких сторонних проектах). Виртуализацию не бросал, но сменил «весовую категорию»: начал интересоваться паравиртуализацией (XEN) и эмуляцией других архитектур (что позже помогло в разработке под Android). Постепенно дорос до bare-metal виртуализации и специализированных гипервизоров: VMware ESX, Proxmox VE (стал использовать в личных проектах).

С усложнением подконтрольных виртуальных инфраструктур начал изучение систем оркестрации для упрощения управления типовыми решениями. Для себя выбрал Ansible, но слежу за появлением и развитием других систем. То же усложенение подтолкнуло к дублированию/резервированию основных сервисов, изучению кластеризации как явления и таких частностей, как кластерные файловые системы, репликация баз даннных, реализация отказоустойчивости с помощью (u)CARP, Pacemaker и т.д. Изучаю построение кластеров с возможностью горячего горизонтального масштабирования.

Разработка/программирование

Имею практические навыки автоматизации рутинных действий с помощью скриптов, вплоть до написания собственных init-скриптов Linux. Ориентируюсь в коде на PHP, Java, Perl, Javascript, Python и некоторых других языках программирования. Знаю, для чего нужны утилиты diff и patch, знаком с системами контроля версий и применяю эти знания для облегчения своей работы.

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

Многим вещам приходится учиться на ходу. Впрочем, как всегда.

Личные и сторонние проекты

Как многие пользователи Linux, пишу bug-репорты (иногда даже патчи) по работе используемого ПО, участвую в переводах и тестировании, занимаюсь доработкой и прочими интересными вещами:

Github, etc

  • Профиль Github
  • Профиль Gitlab
  • Свой Gitlab, пытается работать в виртуальной машине, запущенной на NAS’е Synology, живущем на шкафу в прихожей. Обычно лениво лежит, но иногда изволит работать.

Из “догитхабовских” времён

  • Android: модификация прошивки для смартфона Samsung Galaxy Gio (GT-S5660)завершён.
  • Embedded Linux: доработка прошивки сетевого накопителя WD Mybook Liveзавершён.
  • Embedded Linux: связка из роутера и сетевого накопителя, реализующая медиабиблиотеку для Android, интернет-радио (моё собственное), живое потоковое видеовещание (+архивы), VPN-туннели (для использования в зонах бесплатного WIFI: я не хочу светить всем свои учётные данные), резервное копирование моих данных. Всё это, естественно, с удалённым управлением. Ингредиенты: правильно приготовленный Nginx (по схеме frontend-backend’ы + php-fpm для блога и wiki), доработанные прошивки, программно-скриптовый обвес. ТТХ железа: роутер — MIPS Ralink RT3052 384Mhz, 64MB RAM; накопитель — PowerPC Applied Micro APM82181 800MHz, 256 MB RAM. В общий доступ не выкладывался по причине отсутствия автоматизации установки и настройки. Завершён.

Дополнительные сведения

«Говорит правду в глаза, от чего и страдает. Характер прескверный. Не женат.» © Остров сокровищ

Чувство юмора, эмм… Своеобразное.

Люблю читать юмористическую (и не только) фантастику/фентези, смотреть передачи про природу и кататься на роликах. Учусь играть на бас-гитаре. Люблю тяжёлую мелодичную инструментальную музыку.

Водительские права категории B, стаж с 2013 г.