e-mail: dottedmag@dottedmag.net
Неспешно ищется идеальная работа. Приметы (если что-то не выполняется, то рассчитываю на большой пакет акций или большой stock option):
Формальное резюме с полным опытом - по-русски (по-английски).
Умею и могу писать на всём, что попадалось под руки. Попадалось достаточно много: от 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 работы проекта, умею взаимодействовать с менеджерами, тестерами, техписателями, дизайнерами, саппортерами и с кем ещё придётся.
Пишу и читаю по-русски (грамотно) и по-английски (как получится).
Не приемлю патриархальность и схемы управления, потворствующие некомпетентности. Уважаю меритократию.
Не уважаю навязываемый работодателем софт, особенно проприетарный. Если для работы требуется что-то, помимо любого современного браузера, любого почтового клиента, любого текстового редактора и любого клиента используемой системы контроля версий, то такая работа вызывает сильную настороженность и подозрение в засилии менеджеров.