Web Developer (Backend/Fullstack)

Самара, Россия
Миддл
Информационные технологии • Разработка • Backend • Fullstack • JavaScript • PHP • TypeScript • Vue.js • Laravel • CSS • HTML • MySQL • PostgreSQL
Удаленная работа • Работа в офисе
Опыт работы более 5 лет
О себе

На данный момент Программист Отдела разработок.

Мои компетенции и опыт

Январь нужен доступ к резюме май 2023 (5 лет 5 месяцев) ООО RiverCity (Самара, нужен доступ к резюме )

Программист Отдела разработок

Должность:
- младший программист (4 года 9 месяцев),
- ведущий инженер-программист (8 месяцев).

Обязанности:
- разработка веб-приложений и сервисов (фокус на backend: PHP/Laravel, при необходимости - задачи на frontend: JavaScript/TypeScript/Vue),
- отладка и диагностика проблем в веб-приложениях (логирование, Chrome DevTools, Xdebug, Postman); анализ и устранение неполадок на всех этапах разработки и эксплуатации,
- рефакторинг легаси-кода и оптимизация существующей кодовой базы; улучшение читаемости, поддерживаемости и производительности,
- интеграция с внешними API и сторонними сервисами; использование готовых решений для расширения функциональности приложений,
- фикс багов различного характера (бизнес-логика, API, фронтенд, вёрстка, скрипты автоматизации и деплоя); обеспечение стабильности работы приложений и их соответствия требованиям,
- написание функциональных (API), интерфейсных (UI) и нагрузочных тестов с использованием PHPUnit, Laravel Dusk, JMeter и др.; обеспечение качества и стабильности кода, своевременное выявление регрессий; интеграция запуска тестов в CI/CD пайплайн для автоматического контроля при каждом изменении кода,
- реализация нового функционала в различных проектах (fullstack: PHP/Laravel, JavaScript/TypeScript/Vue); разработка модулей, виджетов, компонентов интерфейса и бизнес-логики; добавление фич в соответствии с требованиями и дизайн-макетами,
- реализация редизайна элементов интерфейса, компонентов приложений и email-шаблонов в соответствии с новыми макетами (Figma/Zeplin); вёрстка и адаптация под различные устройства; приведение визуальной части продуктов в соответствие с актуальными требованиями к дизайну и пользовательскому опыту,
- поддержка и развитие инфраструктуры для разработчиков: настройка систем управления проектами и задачами, доработка скриптов деплоя и окружений; обеспечение комфортной и эффективной работы команды,
- разработка и поддержка внутрикорпоративных веб-ресурсов (внутренние порталы, CRM-системы, сервисы для сотрудников); доработка функционала по запросам подразделений, исправление ошибок, адаптация под меняющиеся бизнес-процессы; обеспечение стабильной работы и актуальности внутренних систем компании,
- разработка и поддержка внутренних инструментов для автоматизации рабочих процессов компании; создание вспомогательных сервисов и утилит по мере возникновения потребностей команды,
- и др.

Стек:
- PHP,
- Laravel,
- JavaScript,
- TypeScript,
- Vue,
- Vuex,
- Vue Router,
- HTML,
- CSS,
- Scss,
- MySQL,
- PostgreSQL,
- PHPUnit,
- Laravel Dusk,
- Docker,
- Jenkins,
- Bash,
- и др.

Иногда:
- Python,
- Swift,
- Ruby,
- Ruby on Rails,
- Encore/laravel-admin,
- jQuery,
- Sencha Ext JS,
- Cypress,
- JMeter,
- и др.

ПО:
- MacOS,
- Ubuntu,
- Windows,
- PhpStorm,
- Sublime Text,
- Bitbucket,
- Fork,
- Sourcetree,
- Redmine,
- Zeplin,
- Figma,
- Google Docs,
- Slack,
- Skype,
- Gmail,
- и др.

Проекты:
- Многопользовательская онлайн-доска для командной работы: предоставляет участникам возможность совместно обсуждать идеи, планировать задачи, создавать прототипы и документировать процессы в едином рабочем пространстве; включает полноценное управление пользователями, проектами, тарифными планами и правами доступа; реализована работа в реальном времени с живыми курсорами, видеочатом и полной синхронизацией действий; поддерживаются разнотипные элементы - заметки, ссылки, изображения, видео, документы, слайд-шоу с возможностью их связывания, группировки, выравнивания, удаления и восстановления через корзину; доступно создание списков задач, в том числе через ИИ по текстовому описанию, и преобразование комментариев в задачи с назначением на пользователя, сроками и уведомлениями о статусе; предусмотрены масштабирование, миникарта и другие возможности для комфортной и продуктивной совместной работы,

- Система контроля версий для дизайн-проектов: обеспечивает совместную работу нескольких пользователей над документами через клиентский плагин к дизайнерской программе и веб-интерфейс с централизованным серверным хранилищем; веб-интерфейс предоставляет управление рабочими пространствами, проектами, пользователями, тарифными планами и правами доступа; реализованы фиксация изменений, слияние правок, разрешение конфликтов, просмотр истории версий и откат к предыдущим состояниям; включает handoff для передачи спецификаций разработчикам и систему комментариев-пинов на рабочей области с отслеживанием авторства; предоставляет дизайнерам и разработчикам контролируемую среду для экспериментов, возможность рецензирования правок и другие инструменты для слаженной командной работы над дизайн-проектами,

- Сервис совместных покупок на маркетплейсах: предоставляет пользователям возможность объединяться в группы для коллективного заказа товаров и услуг из различных категорий; реализован парсер для автоматического сбора, агрегации и обновления данных о товарах с внешних сайтов; предусмотрены инструменты создания совместных заказов с приглашением участников, автоматический расчёт долей и распределение затрат, прозрачное отслеживание статусов покупок на всех этапах, а также система уведомлений для координации действий участников группы и другие возможности для удобной и прозрачной организации совместных покупок,

- Внутренние проекты компании: разработка и поддержка корпоративных порталов, CRM-систем и инструментов для автоматизации бизнес-процессов; реализация нового функционала, рефакторинг, оптимизация и исправление ошибок,

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

- и др.


Задачи:
- разработал модуль чеклистов для ручного тестирования (fullstack: PHP/Laravel, JavaScript/jQuery): создал миграции, модели и связи с проектами, требованиями и задачами; реализовал REST API с валидацией и авторизацией; интегрировал чеклисты в интерфейсы тестирования (отображение, простановка статусов); добавил логику генерации чеклистов из задач и механизм копирования между проектами, обеспечив переиспользование в различных проектах,

- перенёс бэкенд SPA для ведения проектной документации с Ruby и Ruby on Rails на PHP и Laravel (backend: PHP/Laravel): создал миграции, модели и связи для всех существующих сущностей; перенёс бизнес-логику, адаптировав код под архитектуру Laravel; реализовал REST API с валидацией и авторизацией; обеспечил полную обратную совместимость с фронтендом на JavaScript/ExtJS,

- реализовал фоновую миграцию данных для системы контроля версий дизайн-проектов (backend: PHP/Laravel, Laravel Command, Queue, генераторы для потоковой обработки): разработал процесс извлечения данных из репозитория, распаковки в потоке, преобразования структуры элементов под новые требования сторонней дизайнерской программы и сохранения обратно; применил обработку чанками для оптимизации памяти; добавил обработку исключений и повторные попытки; миграция выполнялась в очередях без остановки сервисов; при отладке использовал Xdebug и анализ текстовых данных; в результате обеспечена согласованность данных с дизайнерской программой при обновлении формата элементов,

- реализовал и интегрировал в различные проекты интерфейсные компоненты (fullstack: PHP/Laravel, Laravel Broadcasting, TypeScript/Vue, JavaScript/jQuery, WebSockets): элементы визуальной обратной связи (индикаторы состояния, прогресс-бары, статусные метки); счётчики операций над элементами проектов с обновлением в реальном времени через веб-сокеты; виджет валют с периодическим опросом внешнего API и кэшированием; все компоненты разработаны согласно дизайн-макетам (Figma/Zeplin) и встроены в существующие интерфейсы для улучшения читаемости и пользовательского опыта,

- спроектировал и реализовал инфраструктуру уведомлений в реальном времени для SPA (fullstack: PHP/Laravel, Laravel Broadcasting, TypeScript/Vue, Vuex, WebSockets): на основе существующей системы веб-сокетов добавил новые широковещательные события для действий пользователей, элементов и задач; разработал Vue-компоненты флайаута, списка уведомлений и отдельных сообщений, а также хранилище Vuex для управления их состоянием; реализовал отметку о прочтении, массовые операции и интерактивные ссылки на проекты и элементы внутри уведомлений; все уведомления отображаются без перезагрузки страницы; заложенная архитектура позволила легко расширять список нотификаций по мере развития приложения,

- реализовал корзину для удаления и восстановления элементов онлайн-доски (fullstack: PHP/Laravel, Laravel SoftDeletes, Broadcasting, TypeScript/Vue, Vuex, WebSockets): применил механизм SoftDeletes для временного удаления элементов с возможностью последующего восстановления; реализовал REST API для операций с корзиной с валидацией и авторизацией; разработал компоненты интерфейса: флайаут корзины, список превью-компонентов элементов, контекстное меню, кнопки управления, используя Vuex для управления состоянием; реализовал операции удаления и восстановления элементов с использованием шаблона проектирования "Команда", который применяется при перетаскивании элемента из корзины, через контекстное меню или элементы интерфейса в корзине; добавил возможность окончательного удаления и полной очистки корзины; все операции синхронизируются через веб-сокеты, обеспечивая согласованное состояние онлайн-доски у всех участников проекта без перезагрузки страницы,

- модернизировал функционал живых курсоров на онлайн-доске (fullstack: PHP/Laravel, Laravel Broadcasting, TypeScript/Vue, WebSockets, Local Storage): доработал логику отображения и поведения курсоров в реальном времени; обновил дизайн в соответствии с новыми требованиями; реализовал всплывающее меню с настройками внешнего вида и поведения курсоров (отображение, цвет, формат имени - полное или только имя), сохраняемыми в Local Storage индивидуально для каждого пользователя; в результате улучшена наглядность совместной работы - участники проекта видят действия друг друга в реальном времени с учётом индивидуальных предпочтений отображения,

- модернизировал систему прав доступа на онлайн-доске, включая редизайн флайаута и исправление багов (fullstack: PHP/Laravel, Laravel Policies, TypeScript/Vue): уточнил роли и политики в соответствии с новыми требованиями; обновил дизайн интерфейса по макетам Figma/Zeplin; исправил ошибки при выборе ролей и улучшил сортировку в списках; в результате интерфейс и логика работы прав доступа приведены в соответствие с актуальными макетами и требованиями,

- модернизировал функционал постановки задач пользователям и оповещений о их текущем статусе (fullstack: PHP/Laravel, Laravel Broadcasting, TypeScript/Vue, Vuex, WebSockets): выполнил редизайн интерфейса по макетам Figma/Zeplin; исправил ошибки в логике назначения задач, отслеживания прогресса и отображения времени; доработал интеграцию с системой уведомлений; в результате функционал приведён в соответствие с актуальными требованиями к дизайну и стабильности работы,

- исправил широкий спектр ошибок в приложениях и внутренних инструментах компании (fullstack: PHP/Laravel, JavaScript/jQuery, TypeScript/Vue, HTML/CSS/SCSS и др.): устранены неполадки в бизнес-логике, API, фронтенде, несоответствия дизайну, опечатки, некорректная работа элементов интерфейса и др.; в результате обеспечена стабильность работы систем и их соответствие актуальным требованиям,

- обновил дизайн элементов интерфейса, компонентов приложений и email-шаблонов в различных проектах (fullstack: PHP/Laravel, JavaScript/jQuery, TypeScript/Vue, HTML/CSS/SCSS и др.): переработал внешний вид согласно новым макетам Figma/Zeplin; адаптировал вёрстку под разные устройства; привёл email-шаблоны к актуальному дизайну; в результате интерфейсы и письма приведены в соответствие с утверждёнными макетами и требованиями,

- реализовал тестирование REST API приложения (backend: PHP/Laravel, PHPUnit, REST, JWT): покрыл все эндпоинты, включая CRUD-операции и специфику системы контроля версий, а также эндпоинты для web-интерфейса - JWT-аутентификация, управление пользователями, проектами; проверил позитивные и негативные сценарии; при отладке использовал Postman и XDebug; в результате обеспечена стабильность работы API и своевременное выявление регрессий при внесении изменений,

- реализовал тестирование UI приложения (fullstack: PHP/Laravel, Laravel Dusk, headless Chrome/Chromium, Puppeteer): выполнил end-to-end проверки всех основных пользовательских сценариев и страниц через автоматизацию браузера; при запуске использовал headless-режим; при падении тестов анализировал автоматически создаваемые скриншоты; в результате обеспечена стабильность ключевых сценариев и своевременное выявление регрессий при внесении изменений,

- реализовал CI/CD пайплайн для автоматического тестирования кода (devops: macOS, VirtualBox, Ubuntu, Docker, Jenkins, Git, Slack): на рабочей машине (macOS) развернул виртуальную машину (Ubuntu) в VirtualBox; внутри неё развернул Jenkins и Docker; организовал сборку изолированного тестового окружения проекта в Docker с кэшированием слоёв для ускорения сборки; настроил автоматический запуск всех тестов (API и UI) по git-хукам при каждом пуше разработчиков в репозиторий; настроил отправку отчётов о тестировании в удобочитаемом формате в выделенный Slack-канал по завершении каждого прогона; в результате разработчики получают оперативную обратную связь о состоянии кода, что сокращает время обнаружения регрессий и повышает стабильность основной ветки,

- реализовал нагрузочное тестирование ключевых пользовательских сценариев приложения (devops: Apache JMeter): записал основные бизнес-процессы - регистрация пользователя, создание рабочего пространства и проекта, добавление, перемещение, удаление и восстановление элементов на онлайн-доске; настроил профили нагрузки с различным количеством виртуальных пользователей и стратегиями их подключения; сформировал отчёты с метриками времени отклика и пропускной способности для выявления узких мест и оценки стабильности системы под нагрузкой; заложенная инфраструктура позволила легко расширять список тестируемых сценариев по мере развития проекта,

- интегрировал и кастомизировал стороннюю административную панель на основе готового решения для Laravel в несколько приложений (backend: Laravel, Encore/laravel-admin): подключил все существующие сущности приложения к панели, настроив для них CRUD-интерфейсы; добавил всю необходимую специфику через сервисный слой с переиспользованием существующей бизнес-логики; вывел общие метрики по сущностям и дополнительную системную информацию - загрузку процессора, использование памяти, дискового пространства; в результате получена единая точка администрирования с возможностью управления данными и мониторинга системы,

- реализовал инструмент для перехвата и модификации HTTP-запросов (backend: Python, HTTP, сокеты, многопоточность, обработка исключений): разработал сервер, который слушает конфигурируемый порт, принимает запросы, изменяет их по заданным правилам и ретранслирует подключенным клиентам; добавил многопоточную обработку соединений с повторными попытками; реализовал вывод статуса клиентов и содержимого запросов в терминал для мониторинга и отладки; это позволило компании гибко тестировать и анализировать сетевое взаимодействие без развёртывания сложной инфраструктуры,

- реализовал инструмент для сборки приложения с нужной конфигурацией и его бэкапирования на сторонний облачный сервис по расписанию (devops: Bash, Laravel, облачное API): разработал процесс отбора необходимых папок и файлов, их архивации и подготовки к выгрузке; доработал интеграцию с облачным хранилищем после изменений на стороне провайдера; настроил планировщик для регулярного выполнения бэкапов; это позволило автоматизировать создание резервных копий и обеспечить их сохранность без ручного вмешательства,

- выполнил ряд задач по настройке и оптимизации конфигурационных файлов приложений и сервисов, скриптов сборки и установки зависимостей (fullstack, devops: Apache, Nginx, PHP/Laravel, JavaScript/TypeScript/Vue, Bash, Docker, Jenkins, Composer, NPM и др.): настроил окружения под требования разработки и эксплуатации; модернизировал скрипты деплоя и миграций; обеспечил корректную работу зависимостей и процессов сборки; эти работы способствовали поддержанию стабильности инфраструктуры и воспроизводимости окружений на всех этапах разработки,

- и др.


Практикуюсь:
- нужен доступ к резюме
(HTML, PHP/Laravel/Sanctum, MySQL, TypeScript/Vue/Vue Router/Pinia/Axios, CSS/TailwindCss, Docker/Sail, Scribe)
Онлайн тренажёр печати слепым методом: генерация текста уроков по языку/количеству, различные стратегии получения текста финального теста скорости печати - по жанрам с помощью облачной/локальной модели ИИ или из сидов базы данных, загрузка пользовательских файлов, виртуальная клавиатура с подсветкой клавиш, подсветка ошибок, индикация прогресса, вывод статистики и др.,

- нужен доступ к резюме
(HTML, TypeScript/Nuxt/Vue/Vue Router, CSS/TailwindCss)
Страница лендинга для приложения Typing Trainer,

- нужен доступ к резюме
(HTML, PHP/Laravel/Jetstream/Sanctum/Inertia, MySQL, JavaScript/Vue/Pinia/Axios, CSS/TailwindCss, Docker/Sail, Scribe)
Виртуальная файловая система с древовидной структурой папок и файлов: валидация, создание, чтение, обновление, удаление, сортировка и др.,

- нужен доступ к резюме
(HTML, PHP/Laravel/Breeze/Sanctum/ImageMagick, MySQL, JavaScript/Axios, CSS/TailwindCss, Docker/Sail, Scribe)
Онлайн конвертер pdf документов в изображения в формате jpeg: загрузка, валидация, сохранение, преобразование файлов, формирование результатов в виде слайдера в браузере и архива с результатами, скачивание архива на локальный компьютер пользователя и др.,

- нужен доступ к резюме
(HTML, TypeScript/Nuxt/Vue, CSS/TailwindCss)
Профессиональный онлайн тюнер для гитары с анализом звука в реальном времени. Работает прямо в браузере без установки дополнительного ПО. Обеспечивает точную настройку через микрофон с использованием продвинутого алгоритма автокорреляции. Интуитивно понятный интерфейс и поддержка различных строев, включая пользовательские настройки. Отличается высокой точностью благодаря фильтрации гармоник и обработке крайних значений,

- нужен доступ к резюме
( нужен доступ к резюме , TypeScript, GitHub REST API, FS Promises API, Dotenv)
Легковесное и удобное приложение для скачивания любого репозитория GitHub в виде единого, хорошо структурированного текстового файла,

- нужен доступ к резюме
( нужен доступ к резюме , TypeScript, GitHub REST API, FS Promises API, Dotenv)
Легковесное и удобное приложение для отслеживания подписчиков GitHub и обнаружения изменений между запусками.


Обучаюсь:
2021 Иностранные языки: "Английский язык. Upper-intermediate" нужен доступ к резюме
2021 Программирование: "JavaScript. Средний уровень" нужен доступ к резюме
2021 Программирование: "PHP. Средний уровень" нужен доступ к резюме
2021 Программирование: "Python" нужен доступ к резюме
2021 Программирование: "Введение в IOS-разработку на Swift" нужен доступ к резюме
2021 Программирование: "Основы языка Swift" нужен доступ к резюме
2017 Веб-дизайн: "HTML&CSS. Средний уровень" нужен доступ к резюме
2016 Веб-дизайн и графика: "Photoshop" нужен доступ к резюме
2016 Веб-дизайн: "HTML&CSS" нужен доступ к резюме
2016 Веб-дизайн: "Веб-дизайн" нужен доступ к резюме
2016 Программирование: "Java" нужен доступ к резюме
2016 Программирование: "JavaScript" нужен доступ к резюме
2016 Программирование: "PHP и MySQL" нужен доступ к резюме
2016 Программирование: "Основы программирования" нужен доступ к резюме

 

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

1999 Самарский государственный технический университет

Факультет автоматики и информационных технологий, Управление и информатика в технических системах (диплом с отличием).

 

Есть желание работать и развиваться в сфере IT. Имею опыт коммерческой разработки, продолжаю наращивать экспертизу в выбранном направлении. При необходимости готов оперативно изучить новые фреймворки/языки - освою все необходимые технологии.

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

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

Предпочитаю сообщения для связи, просьба указывать наличие IT-аккредитации у компании, место и формат работы, примерный стек и вилку по зарплате. Спасибо!



Интересные кандидаты