Люблю свою работу, большую часть своего времени посвящаю программированию.
Постоянно развиваюсь в разработке: регулярно читаю книги, статьи; смотрю познавательные видео по интересующим технологиям; мне интересно познавать что-то новое про Backend, Frontend, DevOps и вообще про сферу IT в целом.
Опыт коммерческий разработки: 4.5 года.
В целом программированием занимаюсь уже около семи лет.
Сильной моей стороной является разработка Backend'а для веб-приложений:
- Основной опыт разработки - это опыт на фреймворке Laravel (более 4-х лет), но всегда рад попробовать себя в других PHP-фреймворках;
- Есть довольно приличный опыт работы в качестве Backend-разработчика на Node JS (TypeScript, Express, Strapi, Koa, TypeORM) (более 2-х лет);
- Имеется опыт разработки на самописных 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;
- проектирования архитектуры приложения (кода, взаимодействия сервисов и микросервисов, интеграций с внешними системами), выбора подходящего стека технологий;
- разработки RESTful 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
Технологический стек: Laravel, Vue JS, TypeScript, SCSS, MySQL, Redis, ElasticSearch, Docker, Laravel Horizon.
Обязанности:
- Доработка существующего и внедрение нового функционала для группы крупных интернет-магазинов.
- Рефакторинг кода, поддержание чистоты, понятности и актуальности кодовой базы.
- Проведение code review.
Участие в разработке проекта https://hvala.tips/ в качестве основного Backend-разработчика.
Обязанности:
- Доработка и поддержка backend'а на Node JS (Strapi, TypeScript, TypeORM), внедрение нового функционала.
- Разработка и поддержка административных кабинетов на Angular.
- Разработка с нуля backend'а для QR меню на Laravel.
- Настройка CI/СD, администрирование серверов.
Достижения:
- Проведение серьёзного рефакторинга кода, внедрение DDD, слоистой архитектуры, что позволило осуществить мягкую смену фреймворка для разработки. Это, в свою очередь, принесло пользу с точки зрения скорости и удобства разработки.
- Разработка функционала, помогающего осуществлять массовые выплаты официантам и формировать фискальные чеки, что принесло большую пользу бизнесу, сохранив большое количество времени, которое требовалось для ручных выплат.
- Оптимизация функционала массовой фискализации с помощью внедрения Redis-очередей позволила сократить время, требуемое на создание и отправку чеков.
- Внедрение пакета для автоматического формирования документации к API.
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, ознакомился с методологией БЭМ.
После курса практиковался в вёрстке макетов из свободного доступа и продолжать укреплять свои знания, используя различные ресурсы.