Проводим исследование о роли образования в ИТ. Пройти опрос (займёт 7-10 минут).
Обо мне

Летом 2019 года ближе к сентябрю, рассматриваю переезд из Волгограда в Москву, соответственно ищу компанию которая поможет с переездом. Не стартап!

После окончания учебы в городе Волгограде, планирую переезд в Москву, и дальнейшее получение высшего образование за рубежом(США), по мере овладения навыка английского языка.
________________________________________________

1. CRM на Yii2 для строительной конторы:

Yii2, MySQL, JQuery и т.д.

Работал с Google Maps API
Реализовывал какой-то базовый функционал.

________________________________________________


2. CRM на Laravel стартап, совмещает в себе функционал CRM + E-commerce.

: Laravel, PostgreSQL, Redis, ElasticSearch, CDN;

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

На проекте был специальный человек который занимался администрированием ElasticSearch, конкретно я им не занимался.
________________________________________________


3. Сайт ставок по CS-GO: 

Laravel, PostgreSQL, Redis, JQuery и т.д.

Занимался полной разработкой, Backend + Frontend.

Основные фишки.

1. Реализовал пользователь онлайн через Redis, с использованием типа данных Sorted Sets, использовал при этом Middleware Laravel.

Код - https://gist.github.com/mishazapl/7c9c4c889d373a73edd763a1e1ca5561

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

Конкретную реализацию стратегии, можно посмотреть начиная с файла Context.

Реализацию паттерна шаблонный метод, можно посмотреть в файле - StatusMatches

Код - https://gist.github.com/mishazapl/af05712c67ddcea757e61ec7bc0386a8

________________________________________________


4. API для блокчейна: 

Laravel, RestAPI, PostgreSQL, JWT-токен;

Реализовал простое API которое связывается с текущей базой, меняет значение балансов кошельков,(CRUD) после ответа от Blockhain платформы.

Использовал JWT-токен при реализации авторизации и регистрации.

________________________________________________


5. ERP система для швейной компании.

Laravel, MongoDB, Redis, RestAPI, JWT-токен.

Фронт (делал не я): React.js

Реализовывал различный функционал, построенный на RestFull API.

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

https://gist.github.com/mishazapl/1428d86821510ef9b0b892dc3f04d672

Было реализовано кеширование результатов запроса, которые отдают 4 разных статуса и информацию по ним, т.к MongoDB не имеет должный функционал для создания одного запроса, было принято решение делать 4 разных запроса и при этом кешировать их при записи новых данных с помощью паттерна Репозиторий.

https://gist.github.com/mishazapl/c35294c171a5a3018a3068222a719879

Так-же интересно реализована сцепка методов, на одной из индексных страниц, при этом я основывался на контрактах в Laravel.

https://gist.github.com/mishazapl/b53b12bcadd2f57026d9165aea1828a1

Еще был реализован глобальный ответ с фильтрацией и пагинацией, для разных типов данных, на индексных страницах.

https://gist.github.com/mishazapl/0450a6f7bce80144366fdf10bda92cd9
________________________________________________


6. Биллинг для компании посредника с сотовыми операторами:

PostgreSQL, Laravel, Redis, Angular 1(только допиливал);

Допиливал какие-то базовые вещи.

________________________________________________

7. Облачный SaaS сервис на Go(Golang) + Vue.js + Lumen

Обработка Excel отчетов и пересылка на АПИ клиента, гибкая настройка критериев и гибкая обработка ошибок.

Была проведена работа над созданием аналогичного валидатора из Laravel, при этом в некоторых местах не все так хорошо как хотелось, к примеру применение switch в валидаторе, т.к. не было времени провести исследование как можно сделать более гибко, было принято решение использовать switch.

https://gist.github.com/mishazapl/fde0d85c6fa78bf28b386642a3f2a854

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

https://gist.github.com/mishazapl/49c223db17a92ef736bfd031c078b1e8
_________________________________________

Проходил курс углубление в рефакторинг;
Изучал NoSQL технологии в целом, читал соответствующую литературу, использовал MongoDB;

____________________________________________________

Laravel - писал свои пакеты(не публиковал), использую во всю функциональность сервис-контейнера и возможности гибкого внедрения зависимостей через IoC Container;

Программирую на основе сервисов(бизнес логика) и паттернов, применял различные паттерны в зависимости от задачи в том числе: Simple Factory, State Pattern, bridge, strategy, singleton(регистрировал в сервис контейнере) и другие.

В данный момент углубленно занимаюсь Go, Golang;
________________________________________________


Ниже расписаны знания в различных технологиях.

- PHP -

- PHP 7.0, 7.1, 7.2,7.3;
- Laravel 5.4, 5.5, 5.6, 5.7;

- Отличные знания ООП; 

- Основной фреймворк, безупречные знания и знание различных нюансов: Laravel; 

- Git;
- MVC;
- Шаблоны проектирования;
- TDD;

- Laravel -

- RESTfull, 
- REST API, 
- Redis.
- Сервер очередей. 
- Крон.
- PHPUnit

Vue.js

- Vuex

- Vue-router

- SQL -

- JOIN,LEFTJOIN FULLJOIN и т.д;
- Перекрестные соединения;
- Самосоединения;
- Подзапросы;
- 1НФ,2НФ,3НФ;
- Transaction;
- Индекс таблицы.

- Базы данных -

- MySQL
- PostgreSQL
- MongoDB
- Redis
________________________________________________

Redis: 

Использовал списки и множества sets, sorted sets, собираюсь написать статью на хабре по теме Sorted Sets в Redis и использование при создании учета онлайн пользователей.

________________________________________________

MongoDB;

Использовал базу на ERP системе где в требованиях было указана гибкость схемы и отсутствие сложных связей, основные связи реализовались через вложенные объект, иногда требовалось получение связанных элементов, для этого создавал репозиторий. 

Также создавал репозиторий Cache, и кешировал множественные запросы возвращающие к примеру 4 статуса и кол-во КП по ним в Redis.

________________________________________________

PostgreSQL:

Использовал возможности JSON, Ltree для обхода деревьев, использовал массивы для тегов, и прочие дополнительные возможности.

________________________________________________

MySQL - использовал full-text индексы, unique, и т.д. оптимизировал запросы через EXPLAIN с использованием индексов, производил полнотекстовый поиск. 

________________________________________________

Vue.js - Использовал исключительно на своем проекте, создал два шаблона один для основных страниц, это документация и лендинг с описанием проекта, и второй для админ-панели, сделал авторизация через Vuex, использовал активно vue-router, axios, jwt-token, на бекенде Lumen + Cors 

________________________________________________
--------------
Инструменты
--------------

-Linux-

- Ubuntu;
- LAMP;
- ssh;
- Свободно владею консолью;
- Полностью настраиваю сервер и устанавливаю пакеты.
- Docker. (dockerfile,docker.yml,dockerhub)
- Apache, Nginx.

-Git- 

Работа с Git репозиториями команды на BitBucket.

-IDE-

JetBrains (WebStorm, PhpStorm, GoLand)

-Книги-

PHP - 7 в подлиннике. - Полностью прочитана.
Head First SQL - Полностью прочитана.

М. Зандстра | PHP: объекты, шаблоны и методики программирования. 4-е издание - Полностью прочитана.

NoSQL. Новая методология разработки нереляционных баз данных - Полностью прочитана.

Алгоритмы. Теория и практическое применение. Род Стивенс - Читаю.

Профессиональные навыки
PHPLaravelPostgreSQLMySQLMongoDBRedisDockerNosqlLinuxSphinx
Участие в профессиональных сообществах
Опыт работы
Октябрь 2018 — по настоящее время (5 месяцев)
Middle Backend/FullStack PHP developer
Брюссель
Обязанности и достижения

Разрабатываю в команде серьезные продукты, провожу code-review. На данный момент разрабатываем RestFull API для проекта SocialBrands, это много модульная система и микро-сервисная архитектура, сбор статистики, анализ данных по социальным сетям, в том числе instagram,twitter, facebook.

Занимаюсь разработкой архитектуры своей части каждого отдельного модуля, занимаюсь анализом и оптимизацией SQL запросов - для анализа использую EXPLAIN и для оптимизации различные индексы, такие как FULL-Text, обычные индексы, уникальные. 
Занимаюсь базовым администрированием базы данных.

Применяемые навыки
PHPMySQLLaravelPostgreSQLJavaScriptRedisGitDockerSQL
Июль 2018 — Октябрь 2018 (4 месяца)
PHP Laravel
Волгоград
Обязанности и достижения

Работаю с одним клиентом в роли ведущего программиста.

Применяемые навыки
PHPLaravelPostgreSQLMongoDBJavaScriptRedisMySQLDockerGitООП
Февраль 2018 — Июль 2018 (6 месяцев)
IT-Face
PHP-программист
Волгоград
Обязанности и достижения

Разработка и поддержка высоконагруженной CRM-системы на laravel.

Стек:

Laravel 5.5 перевёл на 5.6.

PostgreSQL.

PHP 7.2

Redis.

Сервер очередей Redis.

Elasticsearch.

SSH,SFTP. GIT.

CDN.

-------------------

Разработка CMS.

Laravel5.6

PostgreSQL.

Январь 2018 — Февраль 2018 (2 месяца)
PHP-программист
Волгоград
Обязанности и достижения

Программирование на PHP, разработка интернет магазинов/порталов/форумов.

На данный момент разрабатываю два проекта:

Интернет магазин:

Инструменты:

Laravel 5.5

PHP 7.1.

MySQL.

JQUERY.

SCSS(SASS)

Webpack.

NPM.

Trello.

Bitbucket.

VDS+SSH+SFTP.

Выполняю роль:

Полностью отвечаю за бекенд часть проекта.

CRM-система ЮРИСТ:

Инструменты:

Laravel 5.5

PHP 7.1.

PostgreSQL.

SSH - автодеплой + git.

JQUERY.

RBAC(пользовательский модуль).

Trello.

NPM.

VDS+SSH+SFTP.

Выполнял роль:

Полностью отвечал за бекенд часть проекта.

Ноябрь 2017 — Январь 2018 (3 месяца)
ООО Lince
PHP-программист
Волгоград
Обязанности и достижения

Основное направлениe бекенд на Yii2:

Работа с БД

Создание таблиц и проектирование нового функционала.

Поддержка текущих проектов.

Исправление багов.

Оптимизация, написание новых виджетов

Немного Javascript: 

Pjax.

Google maps api.

Ajax.

 JSON

.JQuery.

Февраль 2017 — Ноябрь 2017 (10 месяцев)
Web-разработчик
Волгоград
Обязанности и достижения

Верстка и программирование сайтов.

Основная гордость проект:  russia-seo-ru