👋 Стартовала третья неделя марафона, посвящённая мотивации и отношениям в команде! Со Skyeng и IVI обсудим, как дружить с коллегами на удалёнке и находить в себе силы на работу и общение. Регистрируйтесь на страничке марафона и присоединяйтесь!
web-dev-nikitaweb-dev-nikita

Никита Васильевич

Team-lead/Senior Full-Stack Developer (PHP, JS, Laravel 5/6) · Бэкенд · Фронтенд · Ведущий (Lead)
От 150 000 ₽ · Не ищу работу
Возраст: 31 год
Опыт работы: 7 лет и 4 месяца
Регистрация: 09.01.2015
Последний визит: 3 месяца назад
Местоположение: Россия, Новосибирск
Профессиональные навыки: PHP · Laravel · Yii framework · Symfony · MySQL · JavaScript · JQuery · Node.js · Vue.js · Angular
Войдите, чтобы посмотреть контакты пользователя

Обо мне

Сначала немного трудовых формальностей и пожеланий, а ниже "мини-сочинение" что знаю, что не знаю, с чем работал и не работал - все как есть :)
Ну и большая просьба к HR-специалистам - изучать детальнее резюме! Это не всех касается, конечно :)

Ищу интересный/сложный/крупный проект на Laravel 5/6/7 (предпочтительно) full-time (желательно удаленно, но готов рассмотреть и офис по линии метро), желательно на долгосрочное сотрудничество!
А если более детально, то (но готов обсудить те или иные моменты):

- Не хотелось бы работать через ИП - готов в крайнем случае при возмещении расходов, а это: налог 6%, страховые взносы, расходы на банковское обслуживание и что там еще... Все-таки не фриланс, интересует з/п "на руки". А иначе даже как-то странно получается, за штатных сотрудников платятся налоги, причем гораздо большие, а на удаленке ты получается как-будто "недосотрудник" какой-то... Мне вот возмещали на пред. месте работы, например.
- если трудоустройство неофициальное, то все остальное как по ТК: выходные, отпуска, больничные, прочее;
- почасовая оплата не интересует - интересует стандартный полный рабочий день с окладом;
- В принципе, готов подстроиться под любой график, но огромный плюс, если есть возможность работать не позже, чем с 6 до 15 по мск (собственно, всегда и работал с московским часовым поясом в таком графике). Хотелось бы оставить вечера свободными для тренировок, всяческих курсов, увидеться с девушкой в конце концов :)
- Большие тестовые задания аля "написать приложение" не делаю.
Объясню почему
:
Во-первых. Нет физически времени их делать сейчас.
Во-вторых. Откликаешься на несколько вакансий, каждая скидывает тестовое задание и спрашивает/назначает сроки. Начинаешь делать, в итоге жесткие недосыпы и валишь другие техн. собеседования. А нужно ещё сделать чтобы не просто работало, а сделать как минимум хорошо. У меня так было 6 больших тестовых за раз :) И в итоге и их не успеваешь.
В-третьих. Или другой случай: делал большое тестовое задание на 3 дня (админка, апи, развернуть сервер (не локально), и что-то еще уже не помню). Было озвучено, что самое лучшее решение. И в итоге докапались до самых мелочей - зачем поле ограничил в 20 символов (там наз-е чего-то было), и ещё в том же духе. В итоге предложили 40 т.р. :) Хотя в вакансии стояло 100-150 вроде. Затем я получил оффер от другой компании в 100 т.р. :)
В-четвертых. Почти 90% работодателей просто "пропадают" без обратной связи :)
- если нужно подтянуть английский - готов записаться на курсы/к репетитору;
понятное дело, что в разных проектах используются разные стеки, и всего знать невозможно, посему всегда готов изучать что-то новое;
- не хотелось бы работать с CMS (Bitrix, Wordpress, Joomla и т.д.);
нет желания работать только с легаси кодом.
Готов обсудить те или иные моменты!


Почему отдаю предпочтение удаленной работе?

- у меня комфортное рабочее место, что не всегда бывает в офисах;
- вполне производительный компьютер, что тоже не всегда бывает в офисах (а в некоторых крупных федеральных компаниях ещё нужно суметь выбить тот же SSD-диск :D , да и в остальных бывает не лучше ) );
- я могу использовать удобный для себя набор софта, уже настроенный, а не который навязывает компания (в некоторых крупных федеральных компаниях даже для софта еще выбить разрешение суметь нужно :D );
- я не трачу время на дорогу, а работодателю не нужно разворачивать новое рабочее место;
- меньше отвлекающих факторов, но я также всегда на связе, и в случае чего бросаю задачу (или довожу до какой-то точки) и пытаюсь помочь коллеге;
- на личном компьютере много наработок и различной инфы;
- гибкость - возможность работать из любой точки города/страны/мира;
- есть еще причина, но об этом только при личном общении.
Если сложить все факторы - производительность сотрудника резко возрастает! Не понять мне этой офисной тенденции - 21 век уже давно, господа работодатели!

PHP:

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

Углубленное знание и большой опыт работы с фреймворком Laravel 4/5/6/7 (4 years+). Люблю этот фреймворк :) Нравится архитектура, много чего идет из коробки, Eloquent и Collection, шаблонизация, роутинг, консольные команды, Service Container и Service Providers, очереди, встроенная поддержка Vue.js, постоянное развитие, быстрый старт и богатая эко-система. Смотрю ларакаст, читаю профильные ресурсы.

Есть опыт работы с YII2 (1 year+). Честно сказать, очень многое не нравится в YII, но в целом неплохой фреймворк :)
Нравится:
 - много чего идет из коробки (RESTfull API, модульная система, виджеты, Gii, поддержка Sphinx и ElasticSearch и т.д.);
- хорошая документация.
Не нравится:
 - неудобная маршрутизация;
 - php-шаблонизация;
 - отсутствие очередей.
И нравится и не нравится:
 - с одной стороны виджеты удобная штука, но иной раз кастомить их ад :)
 - довольно неплохой ActiveRecord, но после Eloquent ORM (Laravel) кажется бедным родственником :) - меньше функционала, явно не хватает полиморфных связей, коллекций;
- в целом неплохая архитектура, но как-то реализация тех или иных вещей не очень нравится..
Ну это так - из того что помню :) В целом неплохой фреймворк, но после Laravel такое ощущение, что "что-то не так" :) Нет той красоты и удобства.
Читал книгу "Разработка веб-приложений в Yii 2" Марка Сафронова :))

Symfony. 
Есть опыт работы на проекте, где основа php + компоненты Symfony (~8 months). Считаю в целом такой подход неплохим, но приходится много дописывать (низкий старт), зато добавляется гибкость в архитектуре. С фреймворком не работал, но немного изучал документацию. Doctrine вводит в тоску :)

Zend Framework, Phalcon, CodeIgniter 3/4. Знаком совсем немного - листал документацию для общего ознакомления.
Zend показался довольно-таки низкоуровневым с низким порогом вхождения и скромной документацией.
Phalcon показался ближе к Laravel и Yii2, чем к Zend и Symfony, но со скромным функционалом из коробки.
CodeIgniter 3 совсем не понравился. На момент 04.02.2020 он является основной версией, в которой нет поддержки даже пространств имен и composer. Весьма специфичный подход ко многим вещам, начиная с именования классов и методов. Далек от PSR-стандартов. В версии 4 только все более-менее налаживается, на обозначенный момент является только релиз-кандидатом. Стоит отметить явно медленное развитие :)

В начале "пути" много работал с Bitrix, но возвращаться к нему не хотелось бы :)) Даже получал сертификаты какие-то :)

Всегда стараюсь по-максимуму использовать функционал из коробки, а потом уже подключать сторонние библиотеки и писать свой код.

JS:

Уверенно пишу на native JS (ES5) + jquery + lodash/backbone + прочие библиотеки.

Пока не до конца освоил ES6, что хотелось бы исправить.

Есть теоретические знания по фреймворкам angular.js  (v. 1) и vue.js (v. 2), но не хватает практического опыта, что тоже хотелось бы исправить, желательно на vue.js. 

Также есть опыт использования npm и webpack

Немного знаком с node.js в связке с фреймворком Express.js.

Знание других ЯП:

Немного знаком с языком Go. Все бы хорошо - производительный, минималистичный синтаксис, многопоточность и много чего еще, но вот ООП... Точнее практически его отсутствие. Писать в процедурном стиле - явно не мое. Одно дело писать микросервисы, но как основной язык... Не хотелось бы.

Ну и т.к. я учился на программиста, то знаком со многими другими языками - C, C++, Java, и такими "декоративными", как Assembler, Fortran, Perl, ASP, Prolog, Lisp... Что-то еще, уже и не вспомнишь. Вроде что-то из "сишного" еще было - Objective C или C#.

БД:

Хорошее знание и большой опыт работы с MySQL/MariaDB (функции, процедуры, триггеры, индексы, джойны, нормализация/денормализация, explane, репликация, партиционирование...). 

Немного знаком/работал с RedisPostgreSQL и MongoDB...
С Elasticsearch пока не довелось поработать (читал только про него), работал со Sphinx.

HTML/CSS:

Есть базовые знания и опыт html-верстки, а также фреймворка bootstrap 3/4, SASS/SCSS, но сложной версткой (адаптивной, кроссбраузерной, какой-то сложной графикой/анимацией) и версткой с макетов не занимаюсь.

Системы управления версиями:

Уверенное владение и большой опыт работы с git, в т.ч. системой управления репозиториями Gitlab, Bitbucket.

Написание тестов:

Есть опыт написания юнит и интеграционных тестов, а также понимание функциональных и приемочных. Есть опыт работы с фреймворком Codeception. Также написание браузерных тестов в Laravel (Dusk).

Паттерны проектирования:

Знание основных паттернов проектирования:
- Основные: делегирование +;
- Порождающие: фабрика/фабричный метод +, абстрактная фабрика +, строитель (билдер) +, прототип +, одинока (синглтон) +, отложенная (ленивая) инициализация +, мультитон, объектный пул, получение ресурса есть инициализация (RAII);
- Структурные: адаптер +, мост, компоновщик (композит), декоратор +, фасад +, легковес, заместитель (прокси), единая точка входа (front controller);
- Поведенческие: цепочка обязанностей +, итератор +, снимок, состояние, шаблонный метод, команда +, посредник +, наблюдатель (обсервер) +, стратегия +, посетитель, интерпретатор +, null object +, спецификация.

Плюсами обозначил наиболее по моему мнению полезные паттерны (в контексте PHP). На реальных проектах использовал: делегирование, фабрику, билдер, адаптер, декоратор, фасад, итератор.

Архитектурные шаблоны:

Знание некоторых архитектурных шаблонов: MVC, HMVC, MVVM, MVP, MV, EDA, SOA, микросервисная архитектура.

Касаемо сервисов/микросервисов - не сторонник все и вся выносить в них. Монолит можно тоже хорошо "заструктуризировать", таже модульная система. В некоторых фреймворках сразу идет поддержка из коробки - на вскидку Yii2, Zend Framework (если рассматривать в контексте PHP). Считаю сервисы/микросервисы есть смысл использовать, когда подключаются сторонние технологии/фреймворки/ЯП для определенных задач, где они лучше справляются. Либо для распределения нагрузки между серверами. Или несколько приложений используют одинаковый функционал.

Linux:

Уверенно владею консолью, есть некоторые базовые навыки линукс-администрирования. Могу поднять линукс-сервер с нуля (да, собственно, и такой опыт имеется :) ), правда не знаю, на сколько это будет хорошо (и хорошо ли :) ) с точки зрения грамотного DevOps'а :)

Всегда использую в качестве сервера для разработки. Несколько лет использовал в качестве основной ОС (в основном Ubuntu, openSUSE).

Английский язык:

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

Локальное окружение:

На машине стоит две ОС - Windows 10 с Vagrant и Ubuntu. Есть небольшой опыт с Docker, Docker-Compose.

IDE. Поработал со многими, но остановился на PHPStorm :)

В качестве дебагера использую Xdebug.

Таск-менеджеры:

Работал с Jira, Asana, Trello, Kaiten, Мегаплан, Битрикс24. Предпочтение Jira за богатый функционал, гибкость, и отлично внедряются agile-методологии.

Административные навыки:

Могу проводить код-ревью, заводить задачи, исходя из бизнес-логики. Писать документации, ТЗ. Внедрять agile-методологии (scrum, kanban): планировать/грумить и оценивать ("покер") задачи, задавать приоритет, проводить стендапы, демо, ретроспективы.
Читал когда-то толстую книжку по agile, к сожалению, автора не помню :)

        Прочее:

        Имеется отличное знание ООП и немного функционального программирования. Мне близок подход DRY, KISS и YAGNI. Придерживаюсь стандартов/принципов PSR, SOLID, ACID, CQRS (но не всегда; например, json-array), IoC. Знаком в теории с DDD. Есть опыт работы с различными апи/сервисами: яндекс и гугл сервисы, различные платежные системы (Uniteller, Robokassa, Яндекс.Касса и многие другие), социальные сети (вконтакте, инстаграмм), кладр, sms-шлюзы, немного amazon-сервисы, sphinx и asterisk и т.д. Также написание своего RESTfull API - понимание различия/предназначения методов запроса, кодов ответа... Есть опыт работы с "очередями", websocket.

        Если говорить в контексте ООП-программирования, то для меня хороший код начинается прежде всего с: правильное/красивое оформление кода + грамотное именование переменных/классов/методов и т.д. + хорошее знание ООП + SOLID + DI + PSR (в контексте PHP).

        Есть опыт работы в команде, в т.ч. с код-ревью. Большой опыт удаленной работы.
        Умение разбираться в чужом коде. Обладаю умеренным перфекционизмом - есть понимание, когда нужно просто подправить, а когда переписать :)
        Стараюсь постоянно повышать свои знания и "воплощать их в жизнь" :)
        В работе стараюсь найти оптималь между скоростью и качеством, но перевес, все же, в сторону качества :)
        Для меня главное в работе, прежде всего, адекватность и компетентность команды и руководства, а также интересные задачи и простор для развития и творчества :) Также немаловажна понятная постановка задач (необязательно микроменеджмент).
        Т.к. я человек амбициозный - хочется перейти в руководители разработки или технического директора :)

        В планах:
        - доизучить ES6;
        - доизучить node.js и Express.js;
        - пройти сертификацию Laravel, но пока вопрос денег :)
        - хотелось бы набраться практического опыта на js-фреймворках, предпочтительно Vue.js;
        - изучить TypeScript;
        - поизучать/повторить (некоторые знакомы из универа) другие бэкенд ЯП;
        - надеюсь когда-нибудь дотянуть английский до свободного разговорного :)

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

        https://geekbrains.ru/go/FxsTxJ
        https://geekbrains.ru/go/MvMrtH
        https://geekbrains.ru/go/J95ZC3
        https://geekbrains.ru/go/nEyVe8
        https://geekbrains.ru/go/NkwrO7

        Опыт работы

        • Частная практика, работа без зачисления в штат
          Новосибирск · От 1000 до 5000 сотрудников
          Senior Backend Developer
          Декабрь 2019 — По настоящее время (1 год)

          Разработка и доработка веб-приложений на Laravel 5-7.
          Проекты опишу позже или при личном общении :)
          Основной стэк: Laravel 5-7, Docker/Laradock, MySQL/MariaDB/PostgreSQL, RabbitMQ, nginx, php-fpm, opcache, memcached, redis, MongoDB, Kibana, React/VueJS2...

          Веб-разработчик
          Июль 2016 — Октябрь 2016 (4 месяца)

          Занимался доработками различных сайтов, в т.ч. крупным иностранным проектом по печати фото из инстаграмм (php, Laravel 4.2, node.js, MySQL, angular 1, bootstrap).

          Удаленная работа.

          Веб-разработчик
          Февраль 2015 — Сентябрь 2015 (8 месяцев)

          Занимался разработкой и доработкой различной сложности сайтов на php и js. Разрабатывал такие сложные проекты как GiveMeMoney (интеграция (парсинг) с порталом eagames для возможности играть на деньги) на YII2, сайт знакомств Karubo на Laravel 5. Также сотрудничал с веб-студиями. Работал преимущественно с фреймворками Laravel 4/5YII2, CMS Bitrix, jquery, angular.js, backbone.js, vue.js.

          Удаленная работа.

        • ФТСАРР
          Москва
          Technical Architect/Team-lead/Full-stack developer
          Февраль 2018 — Ноябрь 2019 (1 год и 10 месяцев)

          О проекте:
          Написание крупной CRM с нуля в команде со сложной бизнес-логикой, которая очень тяжело автоматизировалась, для спортивной федерации ФТСАРР федерального масштаба - взаимодействие между тремя личными кабинетами (клубы, региональные федерации, всероссийская федерация + админка). Ведение в системе спортсменов, тренеров, пар, ансамблей, судей, соревнований, организаторов и т.д. Очень много различных сущностей. Системы оплаты спортсменов и соревнований (либо через интернет-эквайринг Uniteller, либо через сгенерированный счет в pdf). Много различного АПИ и синхронизаций: синхронизации спортсменов и страховок с другой системой, 2 АПИ с 1С ФТСАРР, АПИ с мобильным приложением. Высоконагруженный проект - им пользуется вся страна. Проект большой и сложный - всего не перескажешь :)
          Цель проекта - автоматизировать весь ручной процесс и заменить старые системы.
          Проект был запущен в декабре 2018.
          Код-ревью, agile, написание документаций.
           Из тестов писали только браузерные (Dusk), но это было пожелание тех. директора :)

          Стэк: 
          PHP 7.2, Laravel 5.7-6.0MariaDB, JS, jquery, npm, bootstrap, bitbucket, trello/kaiten, slack.

          Занимался:
          - участие в планировании спринтов (kunbun);
          - принятие код-ревью;
          - написание техн. документации;
          - написание базовой версии проекта (3 кабинета, небольшая админка);
          - архитектура;
          - синхронизации спортсменов и страховок со старой системой;
          - оплата спортсменов и соревнований;
          - АПИ с 1С и моб. приложением;
          - сложный универсальный валидатор для мероприятий и соревнований;
          - разработка прочего функционала;
          - написание тестов.

          Удаленная работа.

        • Грузовое такси "Газелькин"
          Санкт-Петербург
          Senior Backend Developer
          Май 2017 — Декабрь 2017 (8 месяцев)

          О проекте:
          Внутренняя крупная высоконагруженная CRM с автоматизацией всего и вся :)

          Стэк:

          основа без фреймворка на PHP 7
          , компоненты Symfony, jquery, backbone.js, lodash, vue.js, MariaDB, Laravel 5.4, ORM Propel, Asterisk, Sphinx, bitbucket, jira.

          Занимался:
          - участие в планировании спринтов (scrum);
          - немного работал с ip-телефонией (Asterisk);
          - доработка старого и написание нового функционала;
          - рефакторинг кода;
          - оптимизация производительности.

          Удаленная работа.

        • Крупнейшая телекоммуникационная и ведущая ИТ-компания
          Новосибирск · Более 5000 сотрудников
          Старший разработчик ИТ систем
          Октябрь 2016 — Май 2017 (8 месяцев)

          О проекте:
          Крупная высоконагруженная внутренняя CRM система федерального масштаба со сложной бизнес логикой для разного рода сотрудников, в основном инженеров. Не буду углубляться в терминологию - большинство все-равно не поймет :)

          Стэк:

          Проект состоял из трех частей - native php + самописный php-фреймворк + новый функционал (и переписывание старого) на YII2. БД MySQL, PHPUnit, Codeception, selenium, gitlab, jira, slack, Confluence, js (jquery, react).

          Занимался:

          - участие в планировании спринтов (scrum);
          - принятие код-ревью;
          - написание юнит и интеграционных тестов;
          - ведение документации;
          - доработка старого и разработка нового функционала, в основном обмен xml-данными с центральной системой и сопутствующей логикой.

        • Курьерская служба доставки "Simpla"
          Москва
          Technical Architect/Team-lead/Full-stack developer
          Сентябрь 2015 — Июль 2016 (11 месяцев)

          О проекте:
          Проект со сложной бизнес-логикойавтоматический расчет стоимости доставки от различных параметров (пробки, способ доставки и т.д.) с помощью АПИ google и яндекс и не только. Динамичная отрисовка маршрута на карте.

          Успешное поднятие стартапа (создание с нуля).


          Стэк:
          PHP 5.6, Laravel 5.0-5.2, js (native в объектном стиле с использованием jquery и др. библиотек), bootstrap, bitrix24, КЛАДР, гео-сервисы Google, Yandex и прочие, web-sockets.

          Основная часть верстки и дизайн - веб-студия Machineheads.

          Занимался:
          - принятие код-ревью;
          - архитектура;
          - написание техн. документации;
          - написание основной части проекта, в т.ч. расчета стоимости и динамичной отрисовки на карте.

          Удаленная работа с периодическими встречами.

        • Агентство интернет-маркетинга полного цикла
          Новосибирск · От 10 до 100 сотрудников
          Веб-разработчик
          Июль 2013 — Февраль 2015 (1 год и 8 месяцев)

          Занимался разработкой и поддержкой различной сложности сайтов - от простых визиток до высоконагруженных систем (Стартекс, порталы для агентств недвижимости и т.д.) на php и js на различных фреймворках и CMS. Простой и средней сложности сайты разрабатывались преимущественно на CMS Bitrix, более сложные на фреймворках Laravel и YII. Также была "самописная" cms компании, но на ней в основном поддерживались старые проекты.

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

        • НГТУ

          Новосибирский государственный технический университет
          Новосибирск · 1233 выпускника
          Автоматики и вычислительной техники; АВТФ
          Сентябрь 2007 — Июнь 2013 (5 лет и 9 месяцев)
          Программное обеспечение вычислительной техники и автоматизированных систем.