Резюме
Привет👋, меня зовут Александр, я web-разработчик 💻.
Мой GitHub. Есть свой pet-проект, на котором я оттачиваю свои навыки и исследую новые технологии, библиотеки и тд. https://github.com/domosedov/eec
Как со мной связаться ✉️
Frontend
JavaScript
Основной стек технологий основан на использовании стандарта ES2015+ и экосистемы библиотеки ReactJS⚛️.
Компоненты пишу в функциональном стиле с использованием хуков.
При необходимости использую встроенные возможности React для оптимизации: memo, useMemo, useCallback.
Для переиспользования кода использую такие паттерны, как кастомные хуки, ренедер-пропсы и HOC.
Использую ESLint и Prettier для форматирования кода.
Для маршрутизации использую React Router.
Из стейт-менеджеров на данный момент использую Redux и его экосистему (Redux Toolkit, Thunk), а также изучал Redux Saga(в своих проектах пока не использовал). Сейчас сфокусирован на более глубоком изучении Apollo Client, есть собственный проект, где его использую для сетевого взаимодействия и управления локальным состоянием. В планах изучить - Effector.
Для создания больших и маленьких форм использую встроенные возможности ReactJS. (пример), так же использовал Formik. Сейчас использую react-hook-form. Для создания схемы валидации использую Yup.
Делал таблицы на "чистом" React с возможностью сортировки по столбцам, фильтрацией.
Создавал несложные анимации используя библиотеку React Spring. В основном это были dropdown-меню, слайдеры.
Для работы с HTTP-запросами чаще всего использую библиотеку Axios, а также нативный Fetch API. Для кэширования запросов использовал SWR (делал с ее помощью пагинацию). В планах изучить - React Query.
Для иммутабельности данных использую ImmerJS. (В основном в связке с хуками useState/useReducer и Context API).
Тестирование компонентов: в процессе изучения библиотека React Testing Library.
Для Server Side Rendering и Static Site Generation использую NextJS.
На данный момент мне больше всего нравится разарботка React-приложений именно с использванием NextJS.
Есть понимание основ работы систем бандлинга и транспилятора Babel (понимаю зачем и для чего они нужны, но в то, как они работают "под капотом" пока не углублялся😁). Cам обычно конфигурационные файлы не пишу, доверяя это дело таким CLI-инструментам как CRA, next-create-app и т.п. Если мне требуется система соборки для какого-то sandbox-проекта, то обычно использую Parcel📦, либо пишу несложные конфиги для Webpack.
TypeScript
На данный момент пишу в основном на TypeScript.
HTML и CSS 💅
Есть опыт адптивной верстки с использванием Flexbox, Grid (Mobile-First подход), а так же поддержка кросс-браузерности.
В своих проектах использовал Sass(оба синтаксиса): модульность, переменные, вложенность селекторов, миксины и т.д.
Использовал для CSS БЭМ-методологию именования классов.
Был небольшой опыт работы с Bootstrap 4.
В React использовал подход CSS/SASS-модулей. Так же знаком с CSS-in-JS (React Styled Components).
В данный момент для стилизации компонентов активно использую PostCSS и TailwindCSS. С помощью TailwindCSS легко реализую адаптивность, поддержку темных тем.
Backend
NodeJS
Моя цель - стать Fullstack JavaScript-разработчком.
Сейчас я на активной стадии изучени NodeJS, а также СУБД PostgreSQL.
В своем pet-проекте на NodeJS использую TypeORM, также в процессе изучения ORM Prisma.
Из NodeJS-фреймворков изучал пока что ExpressJS. Сейчас моих знаний хватает для создания несложного CRUD REST API сервиса с использованием JWT-авторизации, либо GraphQL сервера.
Очень интересна технология GraphQL, сейчас активно изучаю данную технологию и пишу свой pet-проект. Использую Apollo Server и TypeGraphQL
В планах изучить фреймворк NestJS, так как сейчас много времени уделяю изучению архитектуры web-приложений, ООП. А этот фреймворк (из тех, который мне известен на данный момент) даёт "правильную" базовую структуру для построения крупных приложений.
PHP и WordPress
Основы PHP7, ООП, паттерны проектирования.
Есть опыт работы в создании темы для WordPress, а так же опыт создания плагинов. Хорошо знаком с концепцией хуков, умение пользоваться документацией WP.
Умею составлять сложные запросы в WP_Query.
Без использования сторонних плагинов могу сделать кастомные модели данных (Custom Post Types), роли пользователей, дополнительные мета-поля, таксономии, конечные точки REST API с пагинацией и фильтрами, кастомные SQL-запросы к БД и многое другое.
Также для разрабоки WordPress-приложений использую WPGraphQL, Sage Starter Theme, Bedrock, Composer, LocalWP.
Рабочее окружение 💻
Базовое использование Git и GitHub.
В качестве операционной системы использую Ubuntu 20.04.
Прочие навыки
Английский язык на уровне чтения техничкской документации.
Работа с Markdown и MDX.
Выгрузка сайта на хостинг, настройка домена, Let's Encrypt сертификата, SMTP, базовая развертка NodeJS/PHP-приложения на DigitalOcean, VPS/VDS, Vercel.