Читаете ли вы блог Хабр Карьеры? Если да — оцените, как мы справляемся. А если нет — расскажите, что читаете для развития карьеры. Пройти опрос (займет 5-7 минут)
Обо мне

TypeScript programming only!

Состав резюме:
1. Реализованные проекты
2. Хобби и прочее
3. Ссылки на примеры кода

Обозначения (обозн. - описание):
... - раздел в процессе наполнения

1. Реализованные проекты:
Предисловие: описаны как суть работы систем, так и технические моменты реализации. Если вы не понимаете технических аспектов - не бойтесь непонятных слов, а попробуйте уловить бизнес ценность реализованного функционала.

2017

Landing Page для пекарни с уникальным качественным дизайном (за основу был взят вид шаблона Wordpress в высоком ценовом сегменте). Реализован на php без фреймворков и jquery. Была написана своя небольшая ORM. Реализована админ-панель, с возможностью добавлять категории товаров, товары, адреса и фото магазинов, изменять оформление (картинки, расположение картинок, изменение css темы в админ-панели). Подобран релевантный домен и размещен на хостинг. Сроки 2 недели. Реализован на основе навыков и опыта на начало 2017 года.

Внедрение платежной системы kazpay в существующий проект, имеющий уже около 20 внедренных платежных систем. Создание интерфейса для ввода телефона, валидация телефона. Получение инфо о заказе и сумме через GET запрос от мерчанта, создание информации в БД о транзакции. Отправка запроса в систему kazpay с данными оплаты и одновременный редирект пользователя. Получение ответа от ПС GET запросом, обновление статуса транзакции и отправка запроса мерчанту.
Срок: 1 неделя, написаны юнит-тесты. Предварительно система была хорошо изучена. Технологии: php (onphp framework, yii framework), scala, jquery.

Система управления заказами и рекламой для выездной службы ремонта техники. Система сделана на php без фреймворков, и jquery.
Есть три роли: админ, техник, контролер расклейщиков обьявлений.
Модуль заказы:
Список заказов, ранжированный по статусу, возможность сортировки.
Подключена API телефония Mango Telecom.
У заказа есть этапы. Каждый этап определяет доп данные, которые нужно указать в заказе. Техник сам проводит заказ по этапам.
При нажатии на кнопку "позвонить" в заказе происходит API запрос в Mango и телефон сначала звонит у тебя, а затем у клиента. Запись разговора можно прослушать в карточке заказа "звонки".
Модуль расклейщики:
Нанимали расклейщиков, давали им телефон, заносили в систему. Когда расклейщик позвонил - система определила его номер и сбросила - значит он начал работу. Позвонил второй раз - значит завершил работу. Каждому расклещику в системе назначался регион для работы. Так же в системе есть функция "уволить" - расклещик переносится в список уволенных и оттуда его можно удалить полностью.
Сроки: 4 недели.

2018

Микросервис для интернет-магазина для парсинга прайс-листов строительной продукции от разных поставщиков. Начнем с запроса в систему, затем перейдем к внутреннему устройству. В запросе передовался id файла, тип поставщика. Сам файл лежал на CDN общем для систем. Запрос система клала в очередь. Работал один воркер, когда он заканчивал парсинг одного файла, брал следующий. Всего было около 30 поставщиков и у каждого был свой формат и свой парсер (парсеры писал отдельный человек). Парсеры подключались к одному файлу "фабрике", которая выбирает нужного по названию поставщика. Каждый парсер является "классом" с единым интерфейсом. Каждый файл проверялся на размер, формат внутри парсера (тк у всех свои ограничения). При парсинге данные сохранялись в общую БД проекта и по окончанию ставился статус завершено.
Было реализовано на Docker, настроен docker-compose файл. Nginx, php-fpm.

MVP торговой площадки для продажи нефтепродуктов. Две роли: покупатели и продавцы. Трех-шаговая форма заполнения заказа. Размещение нескольких предложений от одной компании. Предложение размещается только после подтверждения администратором документов на товар. Просмотр откликов на заказ / предложение. При согласии на предложение появляется действующий заказ и чат с админом, где согласуется сделка.
Сроки: 1 неделя. Технологии: yii2 framework, Docker, jquery.

API для мобильного приложения и админ-панель. На Laravel framework. В админ панели можно создавать роли, копировать роли и изменять, назначать доступы к разделам. API удовлетворяло условиям логики get/post/patch/delete запросов. В остальном вполне простая логика валидации входящих данных, обработки, отправка запросов в базу данных. В базе данных были написаны процедуры (делал другой человек).
Сроки: 2 месяца.

Парсинг файлов 1С, файлов с производственных линий, файлов системы ИНФОР. Система работала каждый день - заходила на сервер и брала файлы по заданному администратором графику. Работала всегда как воркер. Все файлы были архивами. Существовало несколько директорий для работы: новые, backup, processing. Проверялся размер, затем происходила разохривация, проверялось наличие показателей в каждом файле каждого архива. При некоторых ошибках запускался автоматический рестарт. Если ошибка была определенного формата - отправлялось письмо на почту. Так же каждое утро отправлялась аналитика по парсингу на почту администратору. Собиралась аналитика по затраченному времени на парсинг каждого файла.

Конструктор сайтов из блоков, для создания Landing Page в фирменном стиле. При создании сайта можно настроить мета-теги для SEO, url. При сохранении создается кофиг apache и сам сервер перезапускается, чтобы конфиг обновился. По ссылке определяется сайт и "последовательность блоков". Блоки можно менять местами, настраивать.
Для наполнения нового Landing Page нужно надать на кнопку "Добавить блок" и выбрать тип блока, затем его настроить, затем снова добавить блок и тд. Блоки можно менять местами.
Простой интерфйес добавления блоков для программистов (по крайне мере такое задумывалось и не нужно понимать как работает вся система).
Есть специальные блоки, которые подключаются к API основного сайта организации и получают оттуда контент. Сделан файловый кеш очищающийся раз в час, тк где-то контент динамический. Так же можно сбросить кеш из админ-панели. При загрузке картинок происходит сжатие с помощью библиотеки ImageMagick. Каждый сайт конструктора набирает больше 95 балов в Google Page Speed Insights для мобильных и десктоп.
Ревлизованные блоки: заголовок с фоном, статьи с popup, контент одного вида с раскрывающимся списком и рандомизацей вывода, контент второго вида с поиском, вопросы и ответы, "особенности" с иконками. У каждого блока настраивается заголовок.
Сроки: 3 недели.

2019

На основе старой админ-панели управления турами и компаниями с ролями: admin, company, guide на Sumfony 2.8 была сделана новая на Phalcon Framework, был подобран и утвержден html / css шаблон (внешний вид). Уменьшено количество независимых логических блоков во внешнем интерфейсе (снижена сложность), скорость работы увеличина в примерно 3 раза. Создана новая пошаговая схема регистрации. Созданы с помощью внутреннего копирайтера и утверждены письма для рассылки об обновлении админ-панели с инструкцией по использованию. Был произведен деплой, уведомление пользователей, в итоге получили письма благодарности от клиентов за обновление системы.

На основе MVC PHP Symfony 2.8 сайта создан проект SPA приложения. Backend был написан на C# .NET и создана документация. Скорость отклика с сервера по GET запросу на одинаковые данные увеличилась в 40 раз с 20 сек до 0.5 сек (замер на локальном компьютере). Frontend писался вторым программистом на React TypeScript Redux с моим небольшим участием: ревью, обсуждение решений.

2020

Разработка интерактивной схемы зачисления для онлайн школы. В работе мной использовался React с Redux, Backend API разрабатывал на PHP Laravel.

...

2. Хобби и прочее:
- Создавал много проектов for fun на TypeScript, nodeJS, React, C#, Framework7 (native js)
- В 15 лет разобрался с тем как утроен мой скутер (мототранспортное средство) и модернизировал и ремонтировал его, затем мой брат возил мототехнику из Европы, я ремонтировал, где-то даже перебирал двигатель и продавал. Самый последний мой проект был скутер, у которого я приварил (заказал сварку) к раме специальные проставки и установил двигатель в 2 раза мощнее от другой модели, с огромным задним колесом.
- С 14 до 19 лет активно занимался в спортзале бодибилдингом, в 17 лет при росте 178, мой вес составлял 89 кг без жира. Жим от груди 110 на 8, присед 140 на 8. Сейчас этим делом я уже не занимаюсь.
- Регулярно читаю книги. В основном про бизнес (напр. автор Джим Колинз), так же философию (напр. автор Сенека), управление проектами (напр. SCRUM), биографии (напр. Джони Айв), программирование (напр. программист-фанатик), с технической литературой знакомлюсь пока что частями (те не прочитываю полностью книги, но регулярно читаю некоторые главы в библиотеке / магазине, читаю статьи на Хабр и стараюсь прислушываться к новой для меня информации от коллег)
- Когда-то хотел заработать и продал гречку оптом за 3 дня от идеи до реализации, на 700 тыс. руб.

...

3. Примеры кода
https://github.com/anatoliy-chirkov


Резюме в процессе наполнения информацией. Для получения более подробной информации звоните.

Профессиональные навыки
PHPMySQLGitООПJavaScriptLinuxReact.js
Участие в профессиональных сообществах
Опыт работы
Частная предпринимательская деятельность
Декабрь 2015 — Январь 2020 (4 года и 2 месяца)

2015-2017 Создавал сайты, работал с заказчиками, через год работы стал делегировать дизайн и разработку на фриланс;

2017-2018 Ecommpay. Внедрение платежных систем, деплой-инженер с git;
2018-2018 Компания (интернет-магазин). Разработка микросервиса для парсинга прайс-листов;
2018-2018 Компания (ИТ интегратор). Разработка API для мобильного приложения BI. Разработка сервиса парсинга данных с производства. Разработка отображения данных в мобильном приложении BI в виде графиков;
2018-2019. Adventurecompass. Создание конструктора Landing Page в фирменном стиле. Рефакторинг админ-панели на новой технологии, подготовка к выпуску релиза, релиз. Найм новых членов команды в отдел разработки и обучение;
2019-2019. Tradesanta. Добавление нескольких элементов нового функционала в существующий код;
2019-2020. Компания (онлайн школа). Добавление нескольких элементов нового функционала в существующий код, рефакторинг, автоматизация процесса зачисления.