Алексей Якубов (Санкт-Петербург)
Skype: zzlexium
Telegram: @drlexium
Сайт: lexium.ru
MS Access
После института, в 2004 году, пошел работать в Российский филиал немецкой компании Geers Hörakustik на должность акустика. В мои обязанности входила диагностика слуха пациента, подбор и настройка слуховых аппаратов.
Кроме того, мне было поручено администрирование и редизайн русскоязычного сайта компании.
За время работы я создал и поддерживал базу пациентов на MS Access. Для этой базы мной были созданы формы для ее обработки. Например выборка, позволяющая печатать конверты и письма с поздравлениями с днем рождения и с новым годом.
В 2005 году был переведен на должность директора отдельного подразделения, а затем уволился из компании.
После этого довелось поработать еще в двух аналогичных компаниях. В последней, кроме слухопротезирования занимался разработкой и поддержкой сайта.
Кроме того, на MS Access, написал экспертную систему.
Система умела:
- Подсказывать сотруднику пошагово в каком порядке проводить диагностику, на что обращать внимание.
- Какие данные вносить в систему.
- Вести складской учет товара.
- Хранить и обрабатывать карточки клиентов.
- Рассчитывать заработную плату сотрудников.
PHP
Изучать PHP начал в 2005 году, когда участвовал в фан-проекте посвященном игре World of Warcraft (wowm.ru).
Среди нас был один опытный программист. Он искал себе помощников для поддержки сайта проекта и написания дополнительного функционала.
Он обучал желающих основам программирования на PHP. В том числе и меня.
Создавал динамически изменяющиеся баннеры (PHP, GLIB), систему поиска персонажей и гильдий (PHP, MySQL).
В 2008 году я решил окончательно покончить с медициной и уходить в web-разработку. Для этого закончил курсы web-дизайна (HTML, CSS, JavaScript, Flash), создал несколько сайтов (для портфолио и на заказ) и устроился работать в ООО «АЙХО Нетворкс» на должность веб-мастера.
Работал там до 2012 года.
В мои обязанности входило:
- Администрирование хостинга (Linux).
- Техническая поддержка клиентов хостинга.
- Прием заказов.
- Разработка и администрирование сайтов (PHP, SSI, HTML, CSS, JavaScript, WordPress).
- Использовал 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 — руководителем интернет магазина.
За время работы создавал:
- Генераторы уникальных описаний товаров в метатэгах (JavaScript)
- Анализатор топа поисковой выдачи по определенным запросам (phpQuery, PHP, Curl, JavaScript)
- Умные баннеры и попапы (PHP + jQuery + Ajax).
- Систему накрутки голосований (PHP)
- Собственную систему управления для Landing Page (PHP, tinymce) без MySQL. Сделал на ней около 10-ти Landing Page.
Например: ilslegalservice.com - Систему создания комплектов товаров (данные брались из csv выгрузки из 1С и из базы данных сайта) с расчетом цен на товары комплекта (PHP, MySQL)
- Систему ремаркетинга и сбора данных клиентов (PHP, Ajax)
- Систему анализа остатков на складах для товаров, входящих в комплекты (PHP, MySQL)
- Систему выгрузки комплектов товаров на сайты компании (PHP)
- Систему отправки SMS через API Imobis
- Парсеры других сайтов (например citilink.ru) — (phpQuery, PHP, Curl, JavaScript).
- Администрировал VDS (Centos 6)
- Администрировал собственный сервер (Ubuntu 16)
- Переводил темплейты сайтов на адаптивную верстку (BootStrap, jQuery, CSS).
Например: zonazvuka.ru, osteo.ru, lexium.ru, yaleha.ru и т.д. - Aдминистрировал сайт на фреймворке Yii (zonazvuka.ru)
- Использовал VirtualBox для работы с соцсетями, программой BroBot и тестировании сайтов на браузерах разных версий
- Использовал Git для фиксации изменений на сайте
- Переводил сайты на https-протокол как с помощью панели управления хостингом, так и непосредственно на сервере (Apache, Nginx).
Например: zonazvuka.ru, klassikashop.ru, lexium.ru, zatakt.ru - Проводил редизайны сайтов
С февраля 2017 имел опыт работы с CMS 1С-Bitrix (PHP).
Создал:
- Систему выгрузки скидок из 1С на сайт (PHP + Bitrix API)
- Систему сортировки товаров в каталоге (на основе наличия, цены, специальных предложений и скидок) — (PHP + Bitrix API)
- Систему простановки специальных предложений на товары на основе выгрузки из 1С — (PHP + Bitrix API)
- Систему создания YML и CSV выгрузок товаров по различным признакам — (PHP + Bitrix API)
- Систему пакетной загрузки товарных групп (PHP + Bitrix API)
Пример группы: https://klassikashop.ru/groups/100-tovarov-po-vkusnoy-tsene/
Для добавления товаров в группу нужно авторизоваться, вставить в Textarea столбик артикулов товаров, вставить id группы в которую их нужно добавить - Систему выдачи скидок на товары при переходе по ссылке, помечанной UTM-меткой с промокодом (UTM-метки, PHP, jQuery)
- Систему отслеживания источника заказа (UTM-метки, PHP, jQuery)
- Страницу, использующую API Яндекс.Карт (делал с нуля) — https://klassikashop.ru/magazini/ — (jQuery)
- Проставлял метки целей для Яндекс.Метрики (Ecommerce) — (JavaScript + PHP)
Подробнее: https://yandex.ru/support/metrika/data/e-commerce.xml
Работал с CRM-системой Bitrix24.
Портфолио
Чтобы попасть в более полную версию портфолио, кликайте по по этой ссылке. Заполняю я его не регулярно, но иногда что-нибудь туда попадает.
Arduino
Летом 2017 начал осваивать программирование микроконтроллеров (C++).
Сначала удалось сделать часы, которые отображают дату и время на LCD-экране, издают звук при включении, поддерживают настройку даты/времени с помощью двух кнопок.
Затем, сделал систему климат-контроля для террариума.
Система умеет:
- Показывает точное время, дату, день недели и температуру в террариуме.
- Контролирует включение и отключение лампы дневного света в заданный интервал времени.
- Контролирует инфракрасную лампу и температуру в террариуме. Есть дневной режим (интервал времени и температура задается с лицевой панели) и ночной (тоже задается).
- Позволяет отключить подсветку экрана.
- Не боится кратковременного отключения электричества. Модуль точного времени имеет независимое питание, а интервалы и параметры включения ламп хранятся в энергонезависимой памяти.
Это был не простой проект, но полезный в быту.
А вот пример проекта, который я собрал по инструкции на Ютубе из 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.