Гусаров Михаил (Mikhail Gusarov) — неформальное резюме

e-mail: dottedmag@dottedmag.net

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

Неспешно ищется идеальная работа. Приметы (если что-то не выполняется, то рассчитываю на большой пакет акций или большой stock option):

  • Интересная. Это обязательно включает в себя отсутствие технических решений, выполняемых менеджерами, а также возможность использования подходящих (а не купленных менеджментом) инструментов.
  • Нуждающаяся в проектировщике (если проект столь большой, что нужны отдельные проектировщики подсистем), архитекторе (если проект небольшой), либо просто участнике.
  • Open source или не распространяемая (сервис), но основывающаяся на open-source разработках, с прямым feedback'ом от пользователей, не преломляющимся в мутной прослойке маркетологов, и пользователями, от которых не страшно получать прямой feedback.
  • Удалённая, либо без фиксированного графика вида "в 8 всем обязательно быть в офисе, за опоздания штрафуем".
  • Достойно оплачиваемая (>= 75000 €/год за full-time до налогов).
  • Относительно стабильная. Необходимо хотя бы смутное понимание того, что будет через пару лет с проектом и компанией.
  • С потенциалом развития в технической специальности, либо переквалификации в OSS/community-менеджера.

Немного о себе

Формальное резюме с полным опытом - по-русски (по-английски).

Умею и могу писать на всём, что попадалось под руки. Попадалось достаточно много: от C, Java (SE,EE), Python (+django) до Lua, Haskell и Erlang. Пишу с применением мозга, доступных инструментов и принятых в сообществе соглашений. "Войны скобок" не устраиваю. Могу аргументированно обосновать принятые во время написания решения. Умею быстро разбираться с тем новым, что подсовывают под руки. Представляю каким образом увязываются теоретический computer science и практически применяемые инструменты.

Понимаю, что такое Web, сети вообще и их протоколы. Умею рассказать, чем HTTP 302 отличается от HTTP 406, почему правильно говорить "SOAP туннелируется в HTTP", а не "SOAP - HTTP-based", и противопоставить RPC и REST. Могу проверить руками IMAP и IMAPS, не боюсь слов telnet-based, хотя и подзабыл протокол telnet в его частностях, знаю, что такое ARP и как работает traceroute. Читаю RELAX NG и WXS с бумажки, накладываю XSLT в уме, проектирую hijax-capable REST-протоколы.

Знаю много умных слов вида "Dependency Injection", "Separation of Concerns", "Open-Closed Principle", "Domain-based design" а также умею применять их в разговорах и документах с целью улучшения характеристик производимых систем. Умею применять ОО там, где он уместен и не применять там, где неуместен. Умею найти и изучить подходящий инструмент в последнем случае, либо выстроить объектную модель в первом так, чтобы при внимательном разглядывании эта объектная модель не превращалась в набор умных структур и операций над ними. Имею опыт проектирования протоколов и форматов данных. Умею пользоваться словами из книги "банды четырёх" и других каталогов различного вида паттернов. Могу рассказать про схемы Янова и rule-based языки и очертить границы их применимости.

Понимаю, что такое юниксы, знаю Linux вдоль (но не совсем уж поперёк), контрибучу пакеты в Debian, могу собрать autotool-based софт с закрытыми глазами в любой позе. Знаю, что такое Windows на уровне "поставить/снести софт и поковыряться в реестре". Полутеоретически (за нехваткой опыта в последние годы) представляю себе, как работают Windows-программы на уровне "а это частный случай многопоточного программирования с явными циклами сообщений, предоставляемыми операционной системой".

Умею анализировать и перепроектировать существующие решения. Умею и люблю рефакторить код и писать тесты.

Хорошо знаю алгоритмику, могу, поднатужившись, решить 90% задач из мирового финала ACM ICPC. В частности, умею писать программы в случаях ограниченности ресурсов.

Могу, пощупав, отличить хороший interaction design от плохого, рассказать, что плохо и предложить пути улучшения. Могу разговаривать с interaction designer'ами на одном языке.

В меру ленив, что выражается в стремлении автоматизировать все регулярно выполняемые задачи.

Знаю, что extreme programming - это частный случай RUP и могу рассказать, каким образом нужно уточнить RUP, чтобы получить extreme programming. Понимаю полный workflow работы проекта, умею взаимодействовать с менеджерами, тестерами, техписателями, дизайнерами, саппортерами и с кем ещё придётся.

Пишу и читаю по-русски (грамотно) и по-английски (как получится).

Не приемлю патриархальность и схемы управления, потворствующие некомпетентности. Уважаю меритократию.

Не уважаю навязываемый работодателем софт, особенно проприетарный. Если для работы требуется что-то, помимо любого современного браузера, любого почтового клиента, любого текстового редактора и любого клиента используемой системы контроля версий, то такая работа вызывает сильную настороженность и подозрение в засилии менеджеров.