Люблю свою работу, большую часть своего времени посвящаю программированию.
Постоянно развиваюсь в разработке: регулярно читаю книги, статьи; смотрю познавательные видео по интересующим технологиям; мне интересно познавать что-то новое про Backend, Frontend, DevOps и вообще про сферу IT в целом.
Опыт коммерческий разработки: 4.5 года.
В целом программированием занимаюсь уже около семи лет.
Сильной моей стороной является разработка Backend'а для веб-приложений:
- Основной опыт разработки - это опыт на фреймворке Laravel (более 4-х лет), но всегда рад попробовать себя в других PHP-фреймворках;
- Есть довольно приличный опыт работы в качестве Backend-разработчика на Node JS (TypeScript, Express, Strapi, Koa, TypeORM, Nest JS) (около 2-х лет);
- Активно работал с СУБД MySQL, PostgreSQL, Redis.
- Есть знания о разработке высоконагруженных приложений, а также о микросервисной архитектуре; о подходах и технологиях, которые лучше применять в определенных ситуациях.
- Имеется опыт разработки на самописных PHP-фреймворках (поддержка готовых движков, рефакторинг legacy-кода, опыт плавного переноса проекта на популярные фреймворки);
- Есть опыт доработки сайтов на CMS (Wordpress, Opencart, Modx Evolution).
Кроме того, есть опыт:
- вёрстки сайтов с использованием следующих технологий: HTML, CSS / SCSS, Bootstrap, Tailwind, JavaScript, TypeScript, jQuery;
- разработки фронтенда на следующих JavaScript-фреймворках: Vue, React, Next, Angular;
- настройки и использование Laravel Mix, Vite.js, Gulp;
- разработки сайтов с использованием Livewire, Alpine JS;
- базового администрирования сервера (из терминала по SSH, из панелей управления ISPManager / Plesk / Timeweb и так далее);
- работы с Docker и Docker Compose;
- проектирования структуры базы данных и написания оптимальных запросов к базам данных MySQL / PostgreSQL;
- настройки Apache / Nginx / PHP-FPM;
- проектирования архитектуры приложения (кода, взаимодействия сервисов, интеграций с внешними системами), выбора подходящего стека технологий;
- разработки REST API;
- интеграции с различными внешними API;
- интеграции платёжных систем (Robokassa, Yookassa, Stripe, UPC, Best2pay, Payspot)
- настройки аналитики в Яндекс Метрике (цели, электронная коммерция, контентная аналитика), а также в DataLens;
- базовой SEO-оптимизации;
- оптимизации скорости работы сайтов (клиентской и серверной части);
- работы с веб-сокетами (Workerman);
- разработки автоматических тестов с помощью PHPUnit;
- базовой настройки инструментов CI / CD;
- использования Redis для кеширования и очередей;
- работы с RabbitMQ;
- работы с Laravel Horizon;
Очень увлекаюсь тематикой чистого кода и ООП, нравится знакомиться с различными идеями и паттернами проектирования. При разработке стараюсь следовать принципам SOLID, TDD, KISS, DRY, YAGNI.
Знаком с такими архитектурными подходами как DDD, CQRS, Event Sourcing, Porto, MicroServices.
Люблю решать архитектурные вопросы.
Всегда стараюсь писать чистый, понятый и качественный код. Но при разработке прежде всего ориентируюсь на интересы команды и бизнеса, а не на свои собственные.
========================================
Дополнительно:
В начале своего пути программировал на Pascal, а затем на Python ради своего удовольствия (олимпиадное программирование, игры и приложения на Kivy и PyGame, немного начинал изучать Django, игрался с разными библиотеками).
Затем стал заниматься веб-разработкой (с конца 2019-го года).
Также знаком с языками C / C++:
- множество лабораторных в университете по алгоритмам, ООП, Windows Forms, C++ Builder;
- курсовые работы;
- параллельное программирование с помощью OpenMP, MPI, CUDA.
- написание графического приложения Doodle Jump с использованием SFML
Участие в разработке FinTech проекта https://hvala.tips/ в качестве основного Backend-разработчика.
Технологический стек: Node JS, TypeScript, TypeORM, Strapi, Nest JS, PostgreSQL
Обязанности:
- Разработка API для нескольких сервисов на Node JS внедрение нового функционала.
- Разработка и поддержка административных кабинетов на Angular.
- Разработка с нуля backend'а для QR меню на Laravel.
- Настройка CI/СD, администрирование серверов.
- Управление процессом деплоя.
Достижения:
- Проведение серьёзного рефакторинга кода, внедрение DDD, слоистой архитектуры, что позволило осуществить мягкую смену фреймворка для разработки. Это, в свою очередь, принесло пользу с точки зрения скорости и удобства разработки, оптимизации скорости работы системы.
- Разработка функционала, помогающего осуществлять массовые выплаты официантам и формировать фискальные чеки, что принесло большую пользу бизнесу, сохраняя большое количество времени, требующееся для процесса ручных выплат.
- Оптимизация функционала массовой фискализации с помощью внедрения Redis-очередей позволила сократить время, требуемое на создание и отправку чеков.
- Интеграция с сервисом сплитования платежей с полным отслеживанием процесса, отказоустойчивостью и обработкой ошибок.
Технологический стек: Laravel, Vue JS, TypeScript, SCSS, MySQL, Redis, ElasticSearch, Docker, Laravel Horizon.
Обязанности:
- Доработка существующего и внедрение нового функционала для группы крупных интернет-магазинов.
- Рефакторинг кода, поддержание чистоты, понятности и актуальности кодовой базы.
- Проведение code review.
- Сложные интеграции.
- Полная переработка центральной функциональности интернет магазина с применением DDD и модульной архитектуры.
Backend-разработка проектов на стеке PHP 8, Laravel, Livewire, Tailwind CSS.
Техническая поддержка и доработка клиентских проектов на Yii, Wordpress, Opencart.
Доработка функционала сайтов (MODX Revolution, Yii 2).
Интеграция платёжных систем (YooKassa).
Доработка клиентского плагина на с бэком на Yii 2.
Работу пришлось вскоре покинуть в связи с невозможностью совмещать с учёбой в университете.
Fullstack-разработка и поддержка продуктов компании.
Разработка основного проекта велась на фреймворке Laravel.
Но доводилось работать и с самописными системами, а также немного с некоторыми CMS: Wordpress, Opencart.
Полученный опыт и обязанности:
- Fullstack-разработка и поддержка продуктов компании;
- Проектирование БД, оптимизация запросов;
- Рефакторинг существующего кода, улучшение архитектуры приложений;
- Интеграция сторонних сервисов и систем;
- Интеграция платёжных систем;
- Базовое администрирование сервера (настройка Apache/Nginx, настройка почты - SPF/DKIM/DMARC, настройка SSL и др.);
- Оптимизация скорости загрузки и скорости работы сайтов;
- Настройка инструментов для деплоя и управление процессом деплоя (Deployer, Bitbucket Pipelines, Gitlab CI/CD);
- Настройка аналитики в Яндекс Метрике (цели, электронная коммерция, контентная аналитика);
- Проведение Code Review; Наставничество;
- Frontend-разработка (технологии, с которыми доводилось работать в проектах компании: html, css, scss, twig, blade, vue js, чистый javascript, jquery);
- Backend-разработка (в основном Laravel, но был опыт и с легаси-самописами, некоторыми CMS);
- Работа с Docker и Docker Compose;
Специальность - "Математическое обеспечение и администрирование информационных систем".
Направление: "Параллельное программирование".
Учёбу не завершил в связи с обстановкой в регионе.
Изученные технологии и полученные профессиональные навыки:
- HTML
- CSS (Bootstrap, Tailwind)
- JavaScript (jQuery, React, Vue.js)
-PHP (CodeIgniter, Laravel, Livewire, Inertia)
- Разработка и проектирование баз данных
- Работа с СУБД MySQL / PostgreSQL
- Знакомство с Golang
- C++ (SFML, Windows Forms, OpenMP)
Помимо этого курса проходил курсы по HTML, CSS, JavaScript, Responsive Web Design, MySQL, Python.
Если говорить честно, то эти курсы особых знаний не давали, большую часть знаний получил из книг и из работы над собственными проектами.
С помощью этого курса были изучены основы языка программирования JavaScript, базовое использование языка для работы.
После курса практиковался в использовании JS, читал книгу Eloquent JavaScript и знакомился с библиотекой jQuery.
На курсе были изучены основы вёрстки сайтов с использованием HTML, CSS, SCSS, ознакомился с методологией БЭМ.
После курса практиковался в вёрстке макетов из свободного доступа и продолжать укреплять свои знания, используя различные ресурсы.