Обо мне

Последние 10 лет специализируюсь в python.

Неплохо знаю SQL — в первую очередь PostgreSQL, но работал и с Oracle, MySQL, sqlite.

Использую CSS, JS, но глубоко не копал. Когда-то писал на C/C++ (в основном под POSIX и Linux, чуть-чуть под Unix), трогал Java. В далёком тёмном прошлом фрилансил на PHP.

Профессиональные цели: предпочитаю работать с крупными проектами, где важно качество.

При необходимости могу и прототип наговнокодить по-быстрому, но предпочитаю инженерный подход к разработке — сначала трясём из product manager-а все начальные требования, думаем, обсуждаем, подбираем платформу, прикидываем архитектурный дизайн и только потом пишем код.

Сильные и слабые стороны:

✘ Неспешно. Лучше день потерять и за 5 минут долететь, чем через месяц потом всё переделывать. Посему в bodyshop-ах и при производстве продуктов с коротким жизненным циклом свои деньги я не отработаю.

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

✔ Хорошее покрытие тестами с проверкой граничных условий. Простые unit-test-ы, «жирные» unit-тесты, интеграционные тесты.

✔ Понятная документация в коде и, если нужно, вне его.

✔ 5 лет успешно работал старшим разработчиком в команде из 2-5 человек: разрабатывал архитектуру, выбирал технологии, раздавал задачи и помогал в их выполнении, использовал методики для уменьшения количества ошибок, попадающих на production.

✔ Люблю и умею работать удалённо. Знаю, как выстроить коммуникации в команде для эффективной удалённой работы.

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

✔ Есть опыт работы на проектах в состоянии «уже никто не может это поддерживать, сделай хоть что-нибудь» и сделать-таки из большей их части конфетку.

Со всех мест работы готов предоставить положительные рекомендации.

Профессиональные навыки
Опыт работы
Март 2013 — по настоящее время
Dinect
Ведущий разработчик
Новосибирск
Обязанности и достижения

— Python, django, django-rest-framework.
— SOA. Много SOA — разные API-шки с бизнес-логикой внутри.
— Тесты. Много тестов — модульные, интеграционные.

Сентябрь 2005 — по настоящее время
Программист
Новосибирск
Обязанности и достижения

— Разработка (python, чуть-чуть django и PyQT).
— Администрирование серверов.
— Автоматизировал множество рабочих процессов. Внедрил АБИС «Руслан», выколупав все данные из предыдущей АБИС и сконвертировав их для новой.

Октябрь 2006 — Октябрь 2013
Internet Services
Старший разработчик
Новосибирск
Обязанности и достижения

Обязанности:
- Старший разработчик серверных компонент flowchart.com (RIA для продвинутого рисования диаграмм)

Достижения:
- PHP -> python: Заменив неудобный язык для web-программирования удобным языком общего назначения, получили возможность использовать множество библиотек и фреймворков, для которых существует привязка к python
- Фреймворки для PHP -> django: Увеличили скорость разработки веб-приложений, повысили безопасность. Кода стало значительно меньше и код стал проще
- Самописный сетевой код -> twisted: Аналогично предыдущему пункту
- mysql -> postgresql: Вложенные транзакции
- Внедрил unit-тестирование
- Система раннего уведомления об ошибках
- SVN -> git

Март 2004 — Август 2004
Elephun Multimedia
Разработчик
Новосибирск
Июль 2003 — Февраль 2004
Разработчик-Стажёр
Новосибирск
Высшее образование
Сентябрь 2000 — Июнь 2005
НГУ-Новосибирск
Информационных технологий; ФИТ
Новосибирск