Обо мне

Функциональные языки, компиляторы, теория типов, преобразование программ.

Профессиональные навыки
Опыт работы
Июнь 2016 — по настоящее время
Solid Rocks
Proof assistant
Москва
Обязанности и достижения

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

Используемые технологии:
- Ethereum, Solidity
- Idris, Haskell, Rust
- Why3, BoogiePL, Viper

Август 2011 — по настоящее время
начальник
Москва
Обязанности и достижения

Компания специализируется на ПО для колл-центров и автоматизации бизнес-процессов.

Обязанности:
- анализ и подготовка документации для участия в тендерах;
- выбор ключевых технологий и проектирование архитектуры;
- подбор людей в команду;
- постановка и контроль выполнения задач, code review;
- участие в разработке наравне с остальными.

Технологии:
- CoffeeScript, Knockout.js, Bootstrap, Purescript, React.js;
- Haskell, Java (под Android);
- PostgreSQL, Redis;
- CoreOS, Docker, etcd.

Достижения:
- организация и участие в разработке и сопровождении системы, позволившей заказчику снизить издержки на колл-центр и улучшить качество обслуживания;
- участие в тендерах и разработка небольших проектов для госорганов;
- внедрение в команде культуры "непрерывного рефакторинга", пропаганда функционального программирования и формальных методов.

Февраль 2015 — Сентябрь 2015
4hsoft
программист
Москва
Обязанности и достижения

Разработка конструктора web-интерфейсов.

Технологии:
- TypeScript, React.js, Sass, Grunt, Webpack.

Достижения:
- перевод новых проектов на React.js;
- внедрение Sass и методологии smacss;
- автоматизация сборки и деплоймента.

Неудачи:
- попытка внедрить code review, тестирование, git workflow;
- попытка внедрения единого стиля кодирования, отказ от strict code ownership;
- оказалось, что конструктор никому не нужен.

Июль 2010 — Июнь 2012
Аэрокосмические технологии
программист
Москва
Обязанности и достижения

Серия проектов для РЖД, связанных с навигацией и передачей потокового видео.

Обязанности:
- оптимизация кодеков для передачи потокового видео в узком канале с большими потерями;
- разработка устройств и ПО для передачи навигации и показаний датчиков через Inmarsat-BGAN.

Технологии:
- Python, Java, Haskell;
- PostgreSQL;
- Gstreamer, x264, Theora;
- C, ARM Cortex, STM32, Tegra.

Достижения:
- участие в полном цикле разработки устройства: от подбора компонентов и разработки ПО, до запуска в производство и сертификации;
- код на хаскеле ездит в технических поездах по Сибири и отправляет координаты через спутник.

Сентябрь 2008 — Июль 2010
программист
Москва
Обязанности и достижения

Участие в проекте по разработке объектно-реляционной СУБД на C#.

Обязанности:
- расширение языка запросов;
- реализация оптимизатора запросов;
- переработка и расширение набора тестов;
- тестирование производительности БД и качества оптимизации запросов.

Неудачи:
- реализация оптимизатора запросов на основе monoid comprehension calculus (Torsten Grust, Leonidas Fegaras).

Июль 2007 — Декабрь 2011
Лямбда пресс
начальник
Москва
Обязанности и достижения

Организация перевода и издания книжки "Типы в языках программирования" (Б. Пирс).

Обязанности:
- переговоры с правообладателями;
- поиск людей и координирование работы переводчиков, корректоров, верстальщика и редактора;
- участие в вычитке и редактировании перевода;
- переговоры с издательствами.

Достижения:
- книга вышла в печать;
- по соглашению с правообладателями, электронная версия свободно распространяется в интернетах.

Апрель 2006 — Август 2008
i-box
Программист
Москва
Обязанности и достижения

Разработка ПО платёжной системы.

Технологии:
- C++, Boost, Poco;
- Java, Tomcat;
- MySQL.

Высшее образование
Январь 1998 — Январь 2004
МГТУ им. Баумана
Информатики и систем управления; ИУ
Москва