Junior Frontend-разработчик
Контакты
Цель:
Получить работу мечты на позиции React/Frontend-разработчика. Рассматриваю вакансии на полную занятость, в офисе, удалённо или в гибридном формате.
Локация:
Москва и Московская обл.
Юношеский неокрепший ум и незрелость в плане самоопределения сильно усложнили выбор профессионального пути. Кто-то сразу знает кем он хочет быть, но это был совсем не мой случай. Одним роковым вечером решил "просто попробовать" заняться программированием по совету знакомого. С тех пор интерес к разработке не угас, и едва ли могу вспомнить хоть один день без теперь уже любимого занятия.
Что меня вдохновляет?
- Хочу участвовать в создании крутых проектов, быть частью команды единомышленников, быть частью чего-то важного.
- Видеть как люди пользуются трудами твоих усилий, быть тем человеком по ту сторону экрана, который кропотливо, словно невидимой заботливой рукой, постарался сделать опыт пользователя максимально приятным - это потрясающее ощущение. Сделать чат, в который можно пригласить друга и там переписываться, для меня было уже маленьким чудом.
- Человек не может отказаться от того, что придает жизненных сил расти над собой, преодолевать трудности и идти к цели каждый день, ведь это равносильно потере себя. Именно это даёт мне разработка.
Опыт:
Более года учусь программированию и занимаюсь frontend-разработкой, значительно повысив свои навыки в школе программирования Hexlet и участием в OpenSource проектах.
За время обучения реализовал 4 учебных проекта:
1. Brain games – приложение, состоящее из пяти простых консольных игр, основанных на математической логике. Движок спроектирован так, чтобы был общим для всех игр.
- Стек: JS, readlineSync, Git, GitHub Actions, CodeClimate.
Полученные навыки:
- работа с командной строкой
- настройка окужения: Node.js, REPL, Eslint
- работа с пакетным менеджером npm: установка звисимостей, публикация пакета
- работа с git, github, github actions (Continuous Integration, Workflow)
- работа с переменными, функция, циклами, ссылочными и примитивными типами данных, модулями (импортами и экспортами)
2. Gendiff – консольное приложения, которое принимает на вход пути до двух конфигурационных файлов в форматах json/yaml/yml и генерирует разницу в их внутреннем представлении. Выходной формат доступен в трех вариантах: stylish, plain, json.
- Стек: JS, Commander.js, Jest, Lodash, Git.
Полученные навыки:
- создание cli-приложения и предоставление к нему справочной информации, поиск оптимального решения поставленной задачи
- работа с древовидными структурами данных, разными форматами данных: json, yaml/yml
- написание кода в функциональном стиле, рекурсия вместо циклов, функции высшего порядка
- работа с файловой системой: чтение, запись
- работа с фреймворком Jest(unit) для написания тестов и отладки кода
3. Rss-client – rss-клиент для агрегации новостных лент с любого ресурса, предоставляющего rss-поток. Работает подписка на ресурс с последующими регулярными запросами на подписанный ресурс для автообновления постов. Построен на архитектурном паттерне MVC, написан на чистом JS.
- Стек: JS, Webpack, Bootstrap, lodash, axios, i18next, on-change, yup, Vercel.
Полученные навыки:
- работа с DOM и DOM API: селекторы, манипулирование dom деревом, события
- работа с системой сборки проектов Webpack и его конфигурированием
- HTML/Bootstrap: работа с версткой. CSS: подключение стилей, работа со стилями. Знакомство и работа с препроцессором SASS
- работа c библиотекай yup для решения задач валидации; c библиотекой интернационализации i18next для создания словаря текстов приложения; с библиотекой on-change для создания и работы с состоянием, реагирующим на обновления
- работа с AJAX: промисы, композиция, обработка ошибок, выполнение HTTP-запросов; парсинг данных
- построение состояния приложения, сохранение иммутабельности при работе с состоянием. Разделение архитектуры приложения на отдельные слои со своей зоной ответственности(model-view-contoller)
- деплой проекта (использовался сервис Vercel)
- продумывание дружелюбного, отзывчивого и интуитивно понятного пользовательского интерфейса приложения; продумывание привлекательного визуального оформления приложения.
4. Chat-client – real-time чат-клиент, упрощенный аналог Slack с возможностью добавлять/переименовывать/удалять каналы.
- Стек: React, Redux-Toolkit, React-bootstrap, React-i18next, React-router-dom, React-toastify, socket.io-client, axios, Formik, yup, leo-profanity, rollbar/react
Полученные навыки:
- работа с React (с хуками) + Redux-Toolkit (организация и управление состоянием)
- работа с формами и валидацией с помощью библиотеки Formik
- работа с серверной стороной посредством RESP API
- организация роутинга на клиента, авторизация и аутентификация
- работа с веб-сокетами
- cборка бандла, деплой, мониторинг ошибок в продакшене (Rollbar)
OpenSource Contributions:
Можно посмотреть здесь
Работал над проектом онлайн редактора кода "hexlet-editor", а теперь "Runit":
- Разработал страницы с формами входа и регистрации + валидацией; сверстал страницу профиля и разработал под неё UI, внедрил регистрацию и логирование пользователя, организовал роутинг и файл со всем рутами унифицирую интерфейс рутов; организовал и дополнял словарь текстов через библиотеку интернационализации.
- Разработал модальные компоненты как интерфейс сохранения фрагментов кода в личный кабинет пользователя.
- Внедрил функционал сохранения сниппетов (фрагментов кода), формирование уникальной ссылки для каждого сниппета и возможность поделиться им с любым пользователем, добавил автообновление сниппета после каждого запуска кода, разработал функционал встраивания(embed) окна редактора в html, внедрил функционал удаления сниппетов.
- Разработал кастомные хуки с унифицированным интерфейсом для работы со снипетами во всем приложении через контекст провайдер.
- Разрабатывал и исправлял UI приложения, внедрил отзывчивый интерфейс зависящий от авторизированности пользователя.
Полученные навыки:
- Работа в опенсорс проектах, как правильно делать пул реквесты, работать на отдельных ветках.
- Читать и понимать чужой код.
- Понимать и выполнять предоставленные задачи.
- Понимать свои ошибки, исправлять их, делать рефакторинг после ревью.
- Работать в команде, сообща с другими разработчиками.
Ещё немного о себе:
Уже более 2-х лет преподаю английский, готовлю к ЕГЭ, в том числе удалённо. Когда начал изучать программирование, мотивировал нескольких своих учеников помимо изучения «естественных» языков, изучать и «искусственные», просто показывая примеры того чем занимаюсь. Таким образом ко мне начали ходить и на уроки программирования. Как известно, если сам хочешь в чем-то разобраться, нет лучше способа, чем объяснить этому другому.
В свободное время хожу в спортзал, увлекаюсь качественным звуком, аудиотехникой, игрой на гитаре и в видеоигры. Помимо учебной, увлекаюсь чтением разнообразной познавательной литературы и изречений ныне покойных гигантов мысли, что пытались познать объективную природу реальности! По возможности всё читаю на английском, чтобы поддерживать навык. В данный момент читаю "Грокаем алгоритмы" и "Выразительный JavaScript".
Hard
- JavaScript(ES6), имею представление о:
- функциональном, автоматном программировании, ООП
- некоторых паттернах проектирования вроде MVC, планирую узнать больше
- параметрическом полимофизме, полиморфизме подтипов
- В процессе изучения TypeScript + читаю "Программируй и типизируй"
- React(func. components, hooks). Изучаю Next.js. Планирую ознакомиться с Vue;
- Redux + Toolkit;
- HTML / CSS;
- Препроцессоры, вроде SCSS, стараюсь использовать.
- Git: основным набором операций для работы владею;
- Vim + tmux поражают меня своей мощностью, простотой, но в то же время изощрённостью; Webstorm мне более удобен для больших проектов;
- English(advanced): смотрю/слушаю/читаю контент практически любой сложности
Soft
- Благодаря опыту работы репетитором:
- научился просто и понятно объяснять сложные вещи
- развил навыки коммуникабельности, индивидуального подхода к каждому человеку
- работая с клиентами, научился ответственности, исполнительности
- развил навыки самодисциплины и что еще более важно, научился учиться самостоятельно
Опыт
Преподаю английский в зависимости от потребностей клиента. Преподаю по школьной программе, готовлю к ЕГЭ, подтягиваю грамматику просто любителям.
Образование
Рекомендации
Привет, Александр.
Отличное резюме и прекрасный опыт реализации учебных и Opensource-проектов!
Желаю тебе успехов и интересных проектов в IT!
Добавить комментарий/ссылку на вакансию