Сергей Ткачук

Сергей Ткачук, django-программист, резюме

URL: www.stkachuk.ru
E-mail: finn@stkachuk.ru

Stack Overflow / catavaran

profile for catavaran at Stack Overflow, Q&A for professional and enthusiast programmers

Цель

Ищу работу, связанную с Python/Django.

О себе

43 года. Женат. Сыну 10 лет. Живу в Хабаровске.

Навыки

Python:
Django, BeautifulSoup, urllib, PIL, xlrd, sorl.thumbail, south, django-mptt, django-suit, django-tagging и т.п.
Perl:
DBI, TemplateToolkit, FastCGI.
PHP:
PEAR, Smarty, Curl.
Java:
1.4/1.5, JDBC, Hibernate, Tomcat, Struts, JSP, Freemaker, Log4j, Dom4j, JUnit, Ant, Elixir Report.
Разное:
Unix, vim, cvs, svn, git, SQL, XML, XPath, JavaScript, jquery, twiter bootstrap.

Последнее время программирую, в основном, на python/django и чуть-чуть на PHP.

Основная рабочая среда - Ubuntu Linux / vim.

Знание английского: легко читаю и понимаю технические тексты, сносно воспринимаю на слух, средненько пишу, очень плохо говорю.

Опыт работы

Работаю программистом с 1988 года, разработкой веб-проектов занимаюсь с 1997 года.

Последние места работы
01/08/06 - настоящее время Программист-фрилансер. Разработка веб-сайтов (Python/django).
01/09/05 - 30/06/06 ООО "Сервис Онлайн". Ведущий инженер-программист. Разработка системы электронных платежей (PHP, Java).
03/11/03 - 31/08/05 ООО "Елена Инжениеринг". Руководитель проекта. Разработка рабочего места аптекаря (Java).
01/10/01 - 02/11/03 Программист-фрилансер. Разработка веб-сайтов (Perl, PHP).
02/04/99 - 31/09/01 ООО "Маркон". Инженер-программист. Разработка интернет-магазинов (Perl, PHP).
01/12/97 - 31/03/99 ЗАО "Эдисофт". Программист. Разработка веб-сайтов (Perl, PHP).

Некоторые проекты

DVPets.ru

Интернет-магазин товаров для домашних животных имеет сильно кастомизированную админку (admin.py каталога товаров содержит 290 строк), которая позволяет не просто раскидывать товары по категориям, но и назначать им "аспекты" (к примеру "ингредиент корма" или "размер животного"). Таким образом покупатель может быстро подобрать товар для своего любимца (см. колонку с фильтрами в левой части страницы).

Так же товар может иметь различные ценовые опции, например в зависимости от размера упаковки. Для постоянных покупателей администратор может задавать скидки.

Магазин делался на django с нуля без использования коробочных решений. Для категорий товаров использовался django-mptt, интерфейс администратора на django-suit, верстка клиентской части - twitter bootstrap.

Мир кофе

Сайт группы компаний "Мир кофе"

Обычный сайт со списком ресторанов, меню и т.п.

Помимо django 1.8 в зависимостях прописан только django-suit :-)

Верстка, слайдеры и прочая JS-анимация на twitter bootstrap 3.

CamDV - Онлайн камеры Дальнего Востока

Каталог дальневосточных online камер содержит больше сотни камер.

Для каждой камеры, по возможности, задаются географические координаты и направление объектива, что позволяет наглядно показывать их расположение при помощи Яндекс.Карт. Несложная статистика позволяет вычислять рейтинг камер по разным параметрам. Так же имеется расписание запланированных трансляций, на которые можно подписаться и получать email-уведомление за час до начала вещания.

Для разработки использовались django 1.6, south, django-suit, django-tinymce и django-fluent-comments. Верстка сделана на twitter bootstrap 3.

Мото-портал "СОЮЗ МОТО"

Для сайта было разработано несколько django-приложений:

Регистрация и авторизация custom-пользователей базируется на django-allauth. Каталоги используют на django-mptt и django-taggit. Комментарии к блогам/компаниям построены на django-fluent-comments, а форум на pybbm. Вьюхи сделаны, в основном, на базе django-vanilla-views и django-extra-views. На админку натянут django-suit вместе с django-tinymce, django-suit-sortable, django-taggit-autosuggest и django-smart-selects.

Мисс Интернет Дальнего Востока

Программирование сайта конкурса "Мисс Интернет Дальнего Востока" с использованием django.

Сам по себе сайт ничего сложного не содержит и единственная головная боль - это борьба с накрутками голосов. Приложение для голосования много чего запоминает, анализирует и пытается найти нестандартные моменты в поведении пользователя.

Помимо интернет-голосования на одном из этапов есть и голосование через SMS. Для него было реализовано небольшое приложение, взаимодействующее с одним из SMS-сервисов, обеспечивающих прием и отправку сообщений.

Фотографии участниц приводятся к нужным размерам через sorl.thumbnail. Так же был написан watermark-процессор, который накладывает на фотографии логотип конкурса.

Новости, фотогалерея, подписка и прочее такое же сделано через готовые django-приложения.

Boatplans.ru

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

Сайт реализован на django. Управление каталогом проектов сделано через стандартную django-вскую админку с небольшой настройкой через new forms.

Для превьюшек изображений использовался sorl.thumbnail. Теги сделаны через django-tagging. Миграция схемы базы данных - south.

Boatplans.cc

Англоязычную версию каталога проектов лодок я сделал через несколько лет после boatplans.ru для экспериментов с новыми для себя технологиями. В отличие от предыдущего проекта для шаблонов использовался HamlPy, для тегов использован django-taggit + django-taggit-autosuggest. За внешний вид отвечают django-suit и twitter bootstrap 3.

Так же для упрощения жизни как программиста, так и администратора, были разработаны специальные типы полей моделей/форм для хранения размера, массы и площади. Таким образом оператор в поле "Длина" может ввести "4,55м" или "15 ft 2 in", а при схранении формы это автоматически переведется в миллиметры.

Премия "Стерх"

Программирование сайта Дальневосточной интернет-премии "Стерх" на django.

Было реализовано:

Express Parts Network

Система поиска и продажи запчастей на любую спецтехнику, грузовики, погрузчики. По сути - это набор приложений django, используемых в разных сочетаниях на нескольких родственных сайтах (пример 1, пример 2). Есть версии и на английском языке.

Приложения, разработанные для этой системы:

Мультиязычный портал Alilon.com

Alilon.com - система для публикации бизнес-предложений. Особенностью сайта является то, что одна и та же информация о фирме или товаре может быть представлена на нескольких языках

При выборе технологии для разработки основным критерием была хорошая поддержка unicode. После рассмотрения фреймворков на Java/Perl/Python (PHP и Ruby отпали сразу) было решено использовать Python/django.

Весь сайт и все данные на нем представлены на 10 языках. Локализация в основном реализована через gettext, но в некоторых случаях (к примеру письма с большим текстом) для разных языков сделаны разные шаблоны.

Возможности системы:

Система электронных услуг "Сервис Онлайн"

Хабаровский сервис для оплаты коммунальных услуг, городской/мобильной связи, пополнения электронных кошельков и т.п. через Интернет/SMS/WAP.

Во время разработки платежной части, работающей с клиентами, мной на PHP/Smarty/MySQL-InnoDB было реализовано:

На ранних этапах разработки PHP-версии было решено использовать её как прототип для проверки/обкатки решений и параллельно писать "боевую" версию системы на (Java5/Tomcat/Struts/Hibernate). Я принимал участие и в этом проекте:

NexGen Pharmacy Application

Разработку нового рабочего места аптекаря для RiteAid вело несколько оффшорных команд. В русской команде я был тестером, кодером, а потом и руководителем. Приложение - "толстый" Swing-клиент на Java со сложной бизнес-логикой (>1500 классов), общающийся с мэйнфреймом при помощи XML-запросов/ответов и использующий MS SQL Server в качестве локального кэша.

Наша команда (естественно и я в том числе) занималась:

  1. Реализацией/тестированием бизнес-логики согласно usecases/UML-диаграммам, присылаемым архитекторами с "той стороны" и интегрированием этой бизнес-логики с GUI, который писался другой командой. Работа несложная - JDBC, SQL, XML, JUnit и прочие стандартные buzzwords.
  2. Техническими исследованиями (проверка тех или иных возможностей используемых библиотек, поиск эффективных способов для решения различных технических проблем, написание всевозможных врапперов и утилит). Например мне пришлось заниматься задачами вроде:
  3. Регулярным CodeReview кода, написанного другими командами. Поскольку в проекте участвовало много индусов, то занятие это было веселым и продуктивным.

Страница о Любви и Ненависти

Идея этого сайта появилась у меня зимой 1998 года после просмотра очередных "Старых песен о главном". Мне к тому времени до того осточертели все эти Киркоровы, Долины и прочие Буйновы, что захотелось высказаться самому и дать высказаться другим. Первая версия сайта была написана на коленке за пару дней и, несмотря на очень ограниченную функциональность, сразу после запуска вокруг него стало образовываться сообщество пользователей, некоторые из которых живут на ЛХ до сих пор.

Изначально страница о Любви и Ненависти была реализована на Perl. После того, как посещаемость сайта возросла и CGI-скрипты стали тормозить, пришлось переписать его на PHP/PEAR::DB/Smarty (в те времена было трудно найти дешевый хостинг с mod_perl или FastCGI). Несколько лет сайт развивался, в него от случая к случаю совершенно бессистемно добавлялись новые возможности, отчего код становился все уродливей и в конце концов я решил переписать его с нуля. При этом из спортивного интереса попробовал написать его в процедурном стиле без ООП и без использования сторонних библиотек. Эксперимент удался: размер кода контроллеров и бизнес-логики сократился с семи тысяч строк до четырех с половиной.

Основные возможности сайта:

Атлас-маркет

При редизайне этого интернет-магазина выяснилось, что первый разработчик сайта не зная про MVC смешал PHP- и HTML-код, из-за чего переверстать сайт стало очень проблематично. Меня попросили переписать публичную часть сервера не ломая при этом структуру базы данных и административную часть. И несмотря на то, что оригинальный код был довольно запутан и во время переписывания в нем находились серьезные ошибки (вплоть до SQL Injections), в итоге вся работа заняла всего около недели.

3arabzone.com

Это был интересный проект - чат с очень большим количеством возможностей. Публичные и приватные комнаты, полный контроль со стороны пользователей над видом своих сообщений (почему-то для арабов это было очень важно), конфиденциальные сообщения и почта, 31 уровень пользователей, мощная система администрирования. К сожалению сайт уже умер, но у меня осталась подсказка по некоторым командам на "арабском" английском. В общей сложности поддерживалось около 200 команд.

Все это было написано на Perl/FastCGI/TemplateToolkit/MySQL. Причем команды реализовывались как плагины и при желании можно было собирать чат-сервер в произвольной комплектации.

Embellishments Inc. - ювелирный online-магазин

Это первый интернет-магазин, который я написал. В 1998 году одна хозяйка обычного ювелирного магазина решила его закрыть и начать работу исключительно через Интернет. На тот момент подходящего готового софта не было, поэтому для разработки сайта пригласили меня. Пригласили прямо в штаты (тогда она жила на Аляске :-) Самое для меня интересное в этой истории то, что сайт уже столько лет функционирует без каких-либо существенных изменений (обратите внимание на .php3 в расширениях файлов!).

По нынешним стандартам этот магазин ничего особенного из себя не представляет:

Разное

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


URL: www.stkachuk.ru
E-mail: finn@stkachuk.ru