Алексей Коряжкин (koraga), 27 лет, Россия, МоскваАлексей Коряжкин (koraga), 27 лет, Россия, Москва
ПрограммистБэкенд разработчикСредний (Middle)
Не ищу работу

Контакты

Контакты скрыты настройками приватности
Возраст: 27 лет
Опыт работы: 6 лет и 3 месяца
Регистрация: 28.08.2020
Последний визит: 2 дня назад
Местоположение: Россия, Москва
Дополнительно: готов к удаленной работе
Куратор
  • TRIBE
    Digital production

Обо мне

Стараюсь писать код, который не сильно зависит от фреймворка (framework agnostic). Ненавижу фасады и магию Laravel, пишу легкотестируемый код с использованием PSR. Полное покрытие статанализаторами и линтерами. В каждом проекте использую PHPStan, Rector, PHP-CS-Fixer, PHPUnit иногда дополнительно Psalm.
Всегда использую новые версии PHP и зависимостей. Слежу за развитием PHP и активно изучаю литературу по программированию. Читал таких авторов как Дядя Боб, Кент Бэк (Экстремальное программирование), Хорикова с принципами юнит тестирования и др


Активно слежу за PHP комьюнити, часто смотрю трансляции и посещаю как онлайн, так и офлайн конференции. Например BeerPHP, Podlodka, HighLoad, Пыхап


Мой стек:


  • PHP ^8.4, PHPUnit, PHPStan, Psalm, php-cs-fixer, rector, Infection PHP
  • Laravel, Symfony
  • RoadRunner, Laravel Octane
  • Git, Linux, Docker, CI/CD, Github Actions, GitLab CI/CD, Ansible, Terraform, s3
  • PostgreSQL, MySQL, RabbitMQ, Redis
  • Golang
  • TypeScript, React (NextJS, redux, thunk, jest, styled-components)

    Навыки

    PHP
    Docker
    Linux
    Ansible
    CI/CD
    PostgreSQL
    Grafana
    Golang
    Terraform
    RabbitMQ

    Опыт работы

    • Digital production
      Бэкенд разработчик (Средний)Middle Back-end PHP Developer
      Сентябрь 2023 — По настоящее время (1 год и 8 месяцев)

      Основные обязанности:

      • Разработка небольших и средних приложений с дальнейшей поддержкой на PHP ^8.3 - Laravel, Symfony
      • Работа со сторонним API, различные нейронки, сервисы подрядчиков и внешние базы данных
      • Активно пишу юнит и функциональные тесты PHPUnit, использую Xdebug.
      • Покрываю весь код линтерами и статанализаторами на самых хардкорных уровнях PHPStan, Psalm, Rector, CSFixer, Deptrac.
      • Полное покрытие Open Api для всех EP. В последствии фронтенд автоматически генерирует клиентский API на своей стороне
      • На актуальных проектах регулярно обновляю composer зависимости и версию сервисов, PHP, RoadRunner, Postgres и др
      • Разработка инфраструктурных компонентов для всех проектов
      • Разработка composer библеотек под собственные нужды в проектах
      • Написание небольших микросервисов на GO
      • Работа в команде с фронтами, аналитиками, тестерами и менеджерами
      • Отбор кандитатов и собеседования
      • Управление командами (Максимальный состав: 4 бэкенд, 2 фронт и девопс)
      • Участвую в развитии внутренней инфраструктуры
      • Ревью кода
      • Декомпозиция задач
      • Готовлю доклады внутри компании и провожу лекции для поднятия квалификаций среди разработчиков

      Личный вклад:

      • Внедрил RoadRunner для части проектов, с использованием Laravel Octane
      • Автоматизировал инфраструктуру с использованием Terraform, Ansible, Gitlab CI (Следую подходу IaC)
      • Развивал инфраструктуру с помощью аутсорса, были внедрены такие инструменты как: Grafana, Prometheus, Sentry, Ansible Controller. А так же настроены метрики на CPU, RAM, DISK, UP/DOWN, Хелфчеки по доменам, проверка валидности SSL, сбор метрик с RoadRunner. 
      • Создал информационные чаты в ТГ для быстрого реагирования и для более прозрачной разработки для менеджеров компании. Имеются 3 разных канала в которые приходят сообщения о сборках CI/CD, алерты с Grafana по всем метрикам и инциденты с Sentry. 
      • Собрал шаблоны под проекты на базе RoadRunner, для Laravel и Symfony и включил в них на максимальных уровнях PHPStan, PHPUnit, Psalm, Rector, CSFixer, Deptrac и доп проверки такие как composer audit, validate, normalize, bump.
      • Написал ansible-плейбуки для быстрого поднятия нужного окружения.
      • Инициировал и перенес все новые проекты на использование UUID v7 вместо инкрементного ID
      • Создал Feature-стенды для Frontend разработчиков. Вся реализация упакована в GitLab CI/CD catalog. Коллеги с фронтенда подключают лишь один компонент и у них есть готовый деплой на внутренний домен с созданием динамического поддомена на основе ветки и проекта, с поддержкой GitLab Enviroments. Что сильно упростило разработку и тестирование фронтенд проектов. Сам компонент включает в себя несколько параметров такие как: включение и выключение robots.txt, поддержка react-router, выбор версии node при сборке и др. 
      • Создал Feature-стенды для бэкенда. Стенд полностью автоматически поднимается при создании MR. В этот момент собирается докер образ, создается БД, пушится на сервер и запускается под динамическим уникальным поддоменом в зависимости от ветки и проекта. Так же сохраняются все Enviroments в GitLab и есть возможность добавлять под свои нужды доп команды для стенда. Например запуск миграций или генерации апи-доки. При закрытии MR стенд автоматически удаляется, очищая все что он создавал на сервере включая БД.
      • Реализовал сборку всех проектов как docker-образы с сохранением в Container Registry. До этого фронтенд и бэкенд собирался прямо на сервере путем git pull и тд.
      • Всегда слежу за актуальностью пакетов, текущая версия PHP: 8.4.
      • Люблю вносить вклад в OpenSource. Помогал фиксить баги в используемых нами пакетов. Из последнего это laravel, l5-swagger, larastan, nutgram.
      • Российская горно-металлургическая компания
        Бэкенд разработчик (Средний)Ведущий программист
        Август 2021 — Сентябрь 2023 (2 года и 2 месяца)

        Поддержка и внедрение новых фич в Академию Норникель.
        Исправление багов, оптимизация API, кодревью других разработчиков, написание тестов и декомпозиция задач для себя и других разработчиков. 

        Проект начинался еще с Laravel 5.6 (Apiato) в последствии с усилиями всей команды удалось обновить до Laravel 8, PHP 7.4. 
        Реализовал интеграцию с книжным сервисом Альпина в двух итерациях: 

        1. Предоставлялся бесплатный доступ к небольшому набору книг для всех сотрудников Норникель. Синхронизация в автоматическом режиме пользователей путем добавления новых сотрудников и удаления при увольнении. Генерация ссылок для бесшовного перехода из Академии в Альпину. 
        2. Нам выдали весь список книг и обновленный API. Была добавлена синхронизация категорий из Альпины к нам, с учетом вложенности одной категории в другую. Так же были добавлены новые типы книг: аудио, видео. Точечное обновление обложек у книг.

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

        Реализовал билдер для анкет обратной связи. Который позволял гибко создавать шаблоны для анкет с вариантами вопросов, блоков вопросов и др. Использовал паттерн Строитель.

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

        Иногда выступал с презентациями по инструментам разработки, например по внедрению Rector. Так же исследовал внедрение PHPStan. 

      • IT-аутсорсинг
        Санкт-ПетербургОт 10 до 100 сотрудников
        Фронтенд разработчик (Младший)
        Июль 2021 — Август 2021 (2 месяца)

        Поддерживал приложение на React + Leaflet, приносил фичи и фиксил баги. Так же переделал авторизацию на Access + Refresh токен.

        JavaScriptReactReduxWebpackLeafletDockerGitLinuxLaravelRESTful API
      • Создаем сайты, моушен-дизайн, иллюстарции и баннерную рекламу
        Бэкенд разработчик (Младший)
        Март 2021 — Июнь 2021 (4 месяца)

        Получил первый опыт работы в команде,  писал новые проекты и поддерживал старые. Искал решения по улучшению архитектуры проектов, в конечном итоге показал и внедрил проекты на базе Apiato - фреймворк на Laravel с использованием архитектуры Porto

        Так же во время работы написал приложение для дизайнеров баннеров, которое в автоматическом режиме готовила баннеры по шаблонам, на 50% покрыл тестами. В качестве бэкенд части был чистый PHP, а для UI был React.

        LinuxPHPPostgreSQLGitNginxDockerTypeScriptReactООПRESTful API
      • Частная практика, работа без зачисления в штат
        Ярославль
        Фулстек разработчикFullstack developer
        Февраль 2019 — Март 2021 (2 года и 2 месяца)

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

      • ЯрГУ им. П. Г. Демидова

        Ярославский государственный университет имени П. Г. Демидова
        Ярославль978 выпускников
        Математический
        Август 2015 — Август 2019 (4 года)
        Математика и компьютерные науки, кафедра математического анализа

      Дополнительное образование

      • Хардкорный курс PHP (Валентин Удальцов)

        Хардкорный курс PHP (3й поток)
        Март 2024 — Июнь 2024 (3 месяца)

        Курс от Валентина Удальцова, автора канала Пых / PHP PointPHP умирает?!

        Чтобы попасть на курс необходимо было пройти срез знаний (разбор среза)

        Курс в большей степени ориентирован на middle разработчиков, которые хотят стать senior-ами, и senior-ов, которые хотят подтянуть знания в архитектуре PHP-приложения, научиться лучше структурировать код, проектировать по модели и писать сложные компоненты на базе Symfony.

        Основные темы

        • Composer в нюансах, как поддерживать зависимости в форме,
        • Psalm, PHP CS Fixer, Rector на максималках с первого дня,
        • Сontinuous Integration на примере GitHub Actions,
        • Symfony DI, теги, локаторы, Compiler Pass-ы и как всё это работает под капотом,
        • ООП-паттерны декоратор, middleware, итератор, DTO, Value Object, репозиторий,
        • модульность, coupling, package-by-feature, Deptrac,
        • юнит/интеграционные/контрактные тесты, TDD, AAA, PHPUnit 10,
        • идентификация на базе UUID-ов,
        • DDD, декомпозиция стейта, агрегаты, bounded context-ы,
        • Doctrine ORM на запись, нативный SQL на чтение,
        • message driven архитектура, CQRS и проекции,
        • свой Message Bus с Outbox-ом и RabbitMQ транспортом,
        • организация API в проекте, аутентификация и авторизация.

        Подробнее о курсе и авторе по ссылке