Обо мне

Доступные мне инструменты:

- Парадигмы. Прекрасно понимаю функциональный стиль, неплохо знаком с ООП. Могу писать императивный лапша-код за 5 минут, но предпочитаю потратить час и написать код, соответствующий моему представлению о прекрасном.
- Смогу из select() или epoll/kqueue соорудить кооперативную многозадачность, а потом с использованием promises написать DSL для более-менее удобной разработки конечного автомата.
- Понимаю что такое map и что такое reduce, смогу из них собрать merge sort. Умею на глаз отличать хэш от кэша и пассинг от парсинга. Знаю у каких рекурсий бывает хвост (и чем это хорошо в программировании), знаю как сделать так, чтобы не хвостатая рекурсия обрела его.
- При написании парсеров, DSL или изучении новых языков хорошо осознаю разницу между токеном, лексемой, грамматической единицей, выражением и семантикой. Понимаю, что для конечной цели важнее качество AST, чем способ расстановки скобочек и отступов в конкретном синтаксисе.
- Что-то слышал про часы Лэмпорта и распределенные снапшоты (в контексте изучения Coq (https://coq.inria.fr ) доказывал корректность distributed snapshots).
- Имею некоторое знакомство с алгоритмами для иерархий памяти. Для быстрого редактирования смогу изобразить разреженный массив размером с блок кэша процессора. Понимаю, почему при проходе значений двумерного массива двумя способами и будут сильно разные скорости. Видел код slab'ов в ядре Linux, понимаю когда они нужны и как сделать свой аллокатор. Знаю про memory barriers и о том, как мы до этого докатились.
- Статистический анализ и данные. Как и в математике в целом — не силён. Могу написать элементарный поиск аномалий в timeline с использованием скользящего среднего или подобных простых техник, могу с нуля реализовать под эту задачу нейросеть в одной из простых архитектур, типа трех слоев с обратным распространением ошибки (подозреваю, что LSTM будет лучше, но экспертиза недостаточна). Осилю написать с нуля наизусть свертку матрицы значений в вектор признаков. Упущение: никогда не программировал для GPU.

Знакомство с системами:

- Окружение Linux: непрерывный опыт с 2000 года. Дистрибутивы основном Debian-based и RH-based. Автоматизация чего угодно, деплоймент, оперативный поиск и решение проблем, планирование инфраструктуры. Шелл-скрипты, LAMP, SELinux ( http://it.lepikhin.site/post/selinux-howto/ ), glusterfs, DRBD и десятки других технологий. В далеком прошлом также активно работал с FreeBSD (со всем, за исключением ядра системы).
- Ядро Linux: писал патчи для внутреннего использования (в основном мелкие доработки OpenVZ, дописывание ручек для получения статистики и управления через procfs/sysfs, небольшие оптимизации), есть небольшой опыт разработки модулей. Есть опыт глубокого погружения в mm с целью нахождения причин загадочных разрушений памяти и путей оптимизации.
- Виртуализация: богатый опыт с qemu+kvm и openvz (администрирование хостов с тысячами вируальных машин в хостингах). Есть некоторый опыт с публичными фреймворками: OpenStack Compute и libvirt.
- Общедоступные фреймворки разработки. Последние 10 лет практически не использовал, а более старые вспоминать стыдно.

Что жду:

- От HR: не хочу тратить время на торг или на анализ закрытого от многих рынка в попытках оценить собственную стоимость. Поэтому считаю вашей задачей озвучивать конкретные условия, достаточно привлекательные для того, чтобы было интересно пойти работать именно к вам. Не заинтересован в участии в должностных иерархиях; мне всё равно кто я: juniour или principal architect.
- От коллег: хотя бы в общих чертах сформулированное ТЗ. Наличие обратной связи.
- От организации времени: свободный график плюс-минус час, возможность раз в 1-2 года брать неоплачиваемый отпуск на 20-30 дней: занимаюсь экспедиционным альпинизмом и 28 дней на поездку обычно не хватает.

Участие в профессиональных сообществах
Опыт работы
Мы ждем людей, которые хотят воплощать и развивать масштабные проекты
Инженер продукта
Июль 2017 — По настоящее время (3 года и 4 месяца)
- Запуск в эксплуатацию и автотестирование нового отказоустойчивого хранилища почты, участие в работе над архитектурой проекта. - Аналогичная задача по новому поиску почты - Новая инфраструктура автотестов почты: дерево зависимостей подзадач, fault tolerance тестов, поддержка новых платформ виртуализации - Анализатор обезличенных писем для нужд бизнес
1Gb.ru
Москва
Программист, системный администратор
Март 2011 — Июль 2017 (6 лет и 5 месяцев)

Бездарно прожитые годы

Разработчик профессионального программного обеспечения для автоматизации веб-хостинга
Руководитель группы разработки
Май 2003 — Февраль 2011 (7 лет и 10 месяцев)

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

ИркутскСтройОптТорг
Иркутск
Программист, системный администратор
Январь 2001 — Декабрь 2003 (3 года)

Поддержка IT-инфрастуктуры предприятия, разработка вспомогательных скриптов для САПР, автоматизация административных задач.