/about-me

Обо мне, опыт, проекты

Батраков Никита

.NET Core \ JavaScript разработчик

Опыт

Веб-приложения разного уровня сложности. От классических ASP.NET MVC приложений, до более интересных систем с несколькими сервисами, SPA-фронтендом и машинным обучением.

Коммерческую разработку начал в 2015 году. Активно работал с JavaScript с 2018.

Интересный опыт:

  • Писал на .NET middle-tier системы с фронтендом на Angular и бэкендом на 1С. Налаживал коммуникации как между системами, так и между людьми.
  • Писал фронтенд на React, компоненты на VueJS, расширения для браузеров, внутренних ботов для Slack.
  • Проектировал и оценивал очень смелые и амбициозные идеи проектов. Учился трезво смотреть на вещи, задавать правильные вопросы, проявлять изобретательность.
  • Много общался с менеджерами. Учился доносить свои мысли и понимать чужие.

Основные обязанности:

  • Активное участие в проектировании архитектуры систем
  • REST API (реализация, проектирование спецификаций в Swagger) на .NET Core и NodeJS
  • CLI-утилиты на NodeJS
  • аутентификация и авторизация
  • Настройка билдов компонентов, CI \ CD, Docker, скрипты
  • Нагрузочное тестирование
  • Код-ревью и оценка технических заданий
  • Написание документации

Технологический стэк:

  • ОС: Linux, Windows
  • Языки: C#, JavaScript (TypeScript), Python
  • Данные: MS SQL, PostgreSQL, Redis, MongoDb, RabbitMQ, InfluxDB, ElasticSearch
  • Контейнеры: Docker
  • Библиотеки и фреймворки: ASP.NET Core, React, Redux, RxJS, VueJS

О себе

  • Люблю проектирование, дизайн кода и систем. Не люблю преждевременную оптимизацию, микро-оптимизации и жертвоприношения производительности.
  • Не боюсь новых технологий и языков. Всегда рад попробовать что-то новое. Но отношусь к этому практично, когда речь заходит о продуктовом коде.
  • Хороший опыт в ООП благодаря .NET. Учил паттерны, SOLID, разбирался с UML.
  • Нравится ФП, но за моноид в категории эндофункторов не поясню.
  • Мне действительно интересно, что я делаю, и я хочу улучшаться и развиваться в этом.
  • Готов давать фидбэк о рабочем процессе, предлагать улучшения, проявлять инициативу.
  • Думаю о людях и пусть никто не уйдет обиженным. Делать жизнь людей проще - то, что мне нравится в работе, будь то мои коллеги или конечные пользователи.
  • Свободно читаю и слушаю английский. Могу написать документацию на английском.
  • Работаю удаленно больше года. Умею дисциплинировать себя, продуктивно работать и отдыхать, разделять работу и дом.

Открытые проекты

TypeScript

Инструмент для NodeJS, аналогичный npm, но для произвольных бинарников. Находит ссылки в package.json, скачивает, распаковывает, записывает на диск.

TypeScript, RxJS

Библиотека для написания скриптов ETL (Extract-Transform-Load), т.е. набор функций для удобной работы с файловой и другими популярными системами.

Идея полностью аналогична Apache Airflow.

Проект незакончен и медленно развивается. Создавался ради доказательства возможности идеи (Proof of Concept).

Использовал подход монорепозитория с помощью Lerna. Уделил много внимания подходу и дизайну библиотеки.

Gulp, Pug, SASS, Figma

Статический сайт с советами эффективной переписки.

Занимался всем - от написания текста и дизайна, до реализации.

Уделил внимание Доступности (a11y), SEO, размеру бандла.

Проект временно заморожен из-за недостатка свободного времени.

TypeScript

Крошечная библиотека для сериализации HTML формы в объект. Аналогично классу FormData.

Уделил внимание тестированию, совместимости с браузерами, размеру библиотеки, дизайну.

TypeScript, React, Redux, WebPack

Приложение, интегрирующееся с таск-трекером Redmine, предоставляющее альтернативный UI для работы со временем.

Занимался всем - дизайн, разработка сервера и клиента, деплой в виде Docker-контейнеров.

  • Репозиторий содержит фронт на React и бэк на Fastify.
  • Настроен свой билд с помощью Webpack.
  • При разработке запуск сервера бэкенда и сервера статики производится одной командой. Билд происходит при изменении кода сервера или клиента.

C#, ASP.NET Core, Swagger

Утилита для создания Mock-API на основе OpenAPI 3 (aka Swagger Spec).

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

Итог: проект был доведен до первого рабочего прототипа, но невостребован из-за организационных причин.

  • Уделил внимание дизайну и гибкости
  • Покапался во "внутренностях" ASP.NET Core
  • Задеплоил утилиту в виде NuGet Tool и npm бинаринков.

TypeScript, Marble

Чат-бот для Mattermost для проведения тайного санты.

Серверный API написан на Marble - библиотека для создания REST API на RxJS.