Резюме

Алексей Якубов (Санкт-Петербург)

Skype: zzlexium
Telegram: @drlexium
Сайт: lexium.ru

 

 

MS Access

После института, в 2004 году, пошел работать в Российский филиал немецкой компании Geers Hörakustik на должность акустика. В мои обязанности входила диагностика слуха пациента, подбор и настройка слуховых аппаратов.

Кроме того, мне было поручено администрирование и редизайн русскоязычного сайта компании.

За время работы я создал и поддерживал базу пациентов на MS Access. Для этой базы мной были созданы формы для ее обработки. Например выборка, позволяющая печатать конверты и письма с поздравлениями с днем рождения и с новым годом.

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

После этого довелось поработать еще в двух аналогичных компаниях. В последней, кроме слухопротезирования занимался разработкой и поддержкой сайта.
Кроме того, на MS Access, написал экспертную систему.

Система умела:

  1. Подсказывать сотруднику пошагово в каком порядке проводить диагностику, на что обращать внимание.
  2. Какие данные вносить в систему.
  3. Вести складской учет товара.
  4. Хранить и обрабатывать карточки клиентов.
  5. Рассчитывать заработную плату сотрудников.

PHP

Изучать PHP начал в 2005 году, когда участвовал в фан-проекте посвященном игре World of Warcraft (wowm.ru).
Среди нас был один опытный программист. Он искал себе помощников для поддержки сайта проекта и написания дополнительного функционала.
Он обучал желающих основам программирования на PHP. В том числе и меня.

Создавал динамически изменяющиеся баннеры (PHP, GLIB), систему поиска персонажей и гильдий (PHP, MySQL).

В 2008 году я решил окончательно покончить с медициной и уходить в web-разработку. Для этого закончил курсы web-дизайна (HTML, CSS, JavaScript, Flash), создал несколько сайтов (для портфолио и на заказ) и устроился работать в ООО «АЙХО Нетворкс» на должность веб-мастера.
Работал там до 2012 года.

В мои обязанности входило:

  1. Администрирование хостинга (Linux).
  2. Техническая поддержка клиентов хостинга.
  3. Прием заказов.
  4. Разработка и администрирование сайтов (PHP, SSI, HTML, CSS, JavaScript, WordPress).
  5. Использовал SVN для синхронизации рабочей документации

WordPress

В 2008 году увлекся блоггингом. Создал блог на CMS WordPress. На нем тренировался в программировании и верстке. Со временем начал делать заказы на разработку сайтов на WordPress. В том числе с нестандартными функциями.

Научился создавать собственные темплейты, плагины и виджеты для WordPress.

Создавал такой функционал как:

1. Калькуляторы рассчета стоимости работ (PHP, JavaScript, jQuery)
Например http://закажиремонт.рф/ceny/
Загрузка цен осуществляется копированием таблицы из Excell в Textarea (JavaScript, jQuery)

2. Собственные таксономии и типы постов (товары, магазины, сотрудники). В WordPress’е «из коробки» их всего два: page и post (остальные служебные).
Например: osteo.ru (этот сайт делал с нуля по PSD-макету и ТЗ)
Или более ранний: halallavka.ru (каталог товаров без корзины)

3. Фильтры для таксономий и вывод полей в формах обратной связи, на карте и т.п.
См. предыдущий пример

4. Страница информации о сроках продления доменов (PHP, phpQuery, JavaScript)
98h.ru (требуется авторизация через Twitter)
Сделана в виде таблицы. Если до конца регистрации домена остается меньше 60-ти дней, строка окрашивается в желтый, а затем в красный цвет. Данные о сроке регистрации обновляются кликом на соответствующую ячейку таблицы.

5. Формы для работы с текстом (выстраиватель строк, генератор уникальных постов на основе шаблонов, подсветка кириллических символов в тексте, анализатор сайта, парсер YML-файла в таблицу и т.п.) — (JavaScript, PHP)
https://www.lexium.ru/pechenki/

6. Парсер сайта агрегатора объявлений по недвижимости (PHP + Curl + Regular Expressions).
Парсер получал предложения одной компании, модифицировал их и выкладывал на сайте заказчика

7. Интегрировал (с помощью плагинов) систему комментирования сайта с API Vkontakte
Например: https://www.lexium.ru/2018/04/kommentarii-dlya-wordpress-adaptivnaya-versiya/

8. Писал Bash-скрипт для резервного копирования сайтов и баз данных (MySQL) на Яндекс.Диск по расписанию (Cron)

Сталкивался с системами управления: UMI, Joomla, NetCat, Drupal, e107, phpbb. В основном работа с ними заключалась в доработке темплейтов (PHP, CSS, JavaScript, Flash).

 

В 2012 году пришел работать в ООО «Зона Звука» (ООО «Классика Петербург») менеджером интернет-проектов, а с 2016 — руководителем интернет магазина.

За время работы создавал:

  1. Генераторы уникальных описаний товаров в метатэгах (JavaScript)
  2. Анализатор топа поисковой выдачи по определенным запросам (phpQuery, PHP, Curl, JavaScript)
  3. Умные баннеры и попапы (PHP + jQuery + Ajax).
  4. Систему накрутки голосований (PHP)
  5. Собственную систему управления для Landing Page (PHP, tinymce) без MySQL. Сделал на ней около 10-ти Landing Page.
    Например: ilslegalservice.com
  6. Систему создания комплектов товаров (данные брались из csv выгрузки из 1С и из базы данных сайта) с расчетом цен на товары комплекта (PHP, MySQL)
  7. Систему ремаркетинга и сбора данных клиентов (PHP, Ajax)
  8. Систему анализа остатков на складах для товаров, входящих в комплекты (PHP, MySQL)
  9. Систему выгрузки комплектов товаров на сайты компании (PHP)
  10. Систему отправки SMS через API Imobis
  11. Парсеры других сайтов (например citilink.ru) — (phpQuery, PHP, Curl, JavaScript).
  12. Администрировал VDS (Centos 6)
  13. Администрировал собственный сервер (Ubuntu 16)
  14. Переводил темплейты сайтов на адаптивную верстку (BootStrap, jQuery, CSS).
    Например: zonazvuka.ru, osteo.ru, lexium.ru, yaleha.ru и т.д.
  15. Aдминистрировал сайт на фреймворке Yii (zonazvuka.ru)
  16. Использовал VirtualBox для работы с соцсетями, программой BroBot и тестировании сайтов на браузерах разных версий
  17. Использовал Git для фиксации изменений на сайте
  18. Переводил сайты на https-протокол как с помощью панели управления хостингом, так и непосредственно на сервере (Apache, Nginx).
    Например: zonazvuka.ru, klassikashop.ru, lexium.ru, zatakt.ru
  19. Проводил редизайны сайтов

 

С февраля 2017 имел опыт работы с CMS 1С-Bitrix (PHP).

Создал:

  1. Систему выгрузки скидок из 1С на сайт (PHP + Bitrix API)
  2. Систему сортировки товаров в каталоге (на основе наличия, цены, специальных предложений и скидок) — (PHP + Bitrix API)
  3. Систему простановки специальных предложений на товары на основе выгрузки из 1С — (PHP + Bitrix API)
  4. Систему создания YML и CSV выгрузок товаров по различным признакам — (PHP + Bitrix API)
  5. Систему пакетной загрузки товарных групп (PHP + Bitrix API)
    Пример группы: https://klassikashop.ru/groups/100-tovarov-po-vkusnoy-tsene/
    Для добавления товаров в группу нужно авторизоваться, вставить в Textarea столбик артикулов товаров, вставить id группы в которую их нужно добавить
  6. Систему выдачи скидок на товары при переходе по ссылке, помечанной UTM-меткой с промокодом (UTM-метки, PHP, jQuery)
  7. Систему отслеживания источника заказа (UTM-метки, PHP, jQuery)
  8. Страницу, использующую API Яндекс.Карт (делал с нуля) — https://klassikashop.ru/magazini/ — (jQuery)
  9. Проставлял метки целей для Яндекс.Метрики (Ecommerce) — (JavaScript + PHP)
    Подробнее: https://yandex.ru/support/metrika/data/e-commerce.xml

Работал с CRM-системой Bitrix24.

Портфолио

Чтобы попасть в более полную версию портфолио, кликайте по по этой ссылке. Заполняю я его не регулярно, но иногда что-нибудь туда попадает.

Arduino

Летом 2017 начал осваивать программирование микроконтроллеров (C++).

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

Затем, сделал систему климат-контроля для террариума.

Система умеет:

  1. Показывает точное время, дату, день недели и температуру в террариуме.
  2. Контролирует включение и отключение лампы дневного света в заданный интервал времени.
  3. Контролирует инфракрасную лампу и температуру в террариуме. Есть дневной режим (интервал времени и температура задается с лицевой панели) и ночной (тоже задается).
  4. Позволяет отключить подсветку экрана.
  5. Не боится кратковременного отключения электричества. Модуль точного времени имеет независимое питание, а интервалы и параметры включения ламп хранятся в энергонезависимой памяти.

 

Это был не простой проект, но полезный в быту.

 

А вот пример проекта, который я собрал по инструкции на Ютубе из Arduino Uno, двух дисководов и блока питания ATX.

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

Мануальное и Автоматиpированное Acceptance-тестирование

С осени 2017-го по осень 2018-го (ровно год) работал тестировщиком в английской компании. Давно хотел постичь тонкости этой, безусловно полезной, профессии. Поэтому, когда пригласили поработать, не смог отказаться.

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

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

Почему? А потому, что то что работало, работать перестало. Только представьте, что вам каждый раз нужно ЗАНОВО проходить все тест-кейсы. Вручную.

А ведь по мере завершения очередной задачи таких кейсов становится всё больше. А сколько их добавляется после завершения каждого спринта??

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

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

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

Контент-менеджер

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

Занимался поддержкой проектов на Bitrix, WordPress, Yii2.

Основной задачей было наполнение контентом мощного калькулятора ремонта квартир. Это веб-приложение (бэкенд на Yii2), аналоги которого есть, но по сравнению с разработкой этой компании, все они выглядят как игрушечная (пластиковая) дрель против профессионального перфоратора.

Здесь пришлось много работать напрямую с базой данных (MySQL). Когда нужно оперировать большими выборками, это наиболее быстрый способ. Написал несколько собственных утилит, генерирующих нужные запросы к базе. Это ускорило процесс.

На других проектах моей основной задачей стала разработка. Я создавал дополнительный функционал для сайта на WordPress’е и специфические модули для Bitrix.

Программист

С 2019-го года тружусь программистом официально (с соответствующей записью в трудовой книжке).

В основном, разрабатываю бэкенд для проектов на WordPress’е и 1C Bitrix’е.

Однако, пришлось приложить руку к проектам на Yii2, Laravel и прочих.

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

Обо мне

Программирование мне нравилось с детства.

Первый опыт программирования случился 1984. Мне подарили ДЛМ (Детская Логическая Машина).
Программирование осуществлялось при помощи штекеров, ввод данных с помощью переключателей.
Машина была способна отвечать на вопросы приведённые в инструкции, решать логические задачи, знакомить с основами математической логики и двоичной системы счисления.
Не содержала в себе ни грамма электроники (только контактные группы, лампочки и батарейки).

Basic

В 1991 году увлекся изучением простейшего языка программирования — Basic.
Изучал в теории, поскольку на покупку компьютера на тот момент не было средств.

В 1996 году получил доступ к компьютеру (IBM PC 386DX40). Первую программу написал по поручению.

Программа предназначалась для психологического тестирования сотрудников и сохранения результатов в файлы.

В 1997 году написал простенькую одноэкранную игру на компьютере ZX-Spectrum.

В игре нужно было управлять тараканом, который должен был есть продукты случайно появляющиеся на игровом поле и убегать от других агрессивных тараканов.

Специальное образование

Еще одним моим хобби была медицина.

В СССР профессия программиста не котировалась, поэтому в 1992 году поступил в Ленинградское Медицинское Училище №9.

Именно там надел свой первый белый халат, освоил необходимые навыки и дисциплины.

Высшее образование

В 1998 году поступил в Санкт-Петербургскую Государственную Медицинскую Академию им. И.И. Мечникова.

Будучи студентом продолжил увлечения компьютерными технологиями.
Помогал с обслуживанием компьютеров на кафедрах (в частности на кафедре Микробиологии).
С помощью подручных средств наладил собственное производство брошюр с учебными материалами для студентов.

В 1999 году создал первый сайт (HTML).

— Чем занимался между Медучилищем и Медициской Академией?
— Проходил срочную службу в вооруженных силах РФ (в медицинской роте). Вернулся в звании младшего сержанта, с рекомендательными письмами от командира батальоном.

Хобби

У меня не так много увлечений.

  • блокфлейта,
  • пиррография,
  • блоггинг,
  • пешая ходьба,
  • handcrafting,
  • рисование.

Пожелания

В дальнейшем хочу работать и набираться опыта в команде профессиональных программистов.

Download my summary in English.