Шашанк Агарвал

Архитектор UI/UX · Ведущий инженер Front-End

Я создаю доступные, высокопроизводительные интерфейсы на React, React Native и SolidJS — с сильным предпочтением четких требований, надежных тестов и продуманной архитектуры.

Профиль

Я ориентированный на UI/UX фронтенд-лидер с более чем 13 годами опыта создания веб-приложений и мобильных интерфейсов. В каждой роли, которую я занимал, я изучаю требования на раннем этапе, тщательно планирую функции, согласую контракты API с бэкенд-партнерами и оспариваю техническое задание, когда возможна более эффективная область или лучший опыт. День за днем я больше всего забочусь о фронтенд-архитектуре, системах проектирования и производительности — и о укреплении стандартов кода посредством своевременных код-ревью и наставничества.

В Webbee GmbH я руковожу работой React и React Native в Butlerapp (менеджер бронирований и CRM) — включая встраивания на 200+ веб-сайтов — и TaylorDb (конструктор приложений на основе AI).

Навыки

Основное
  • React
  • React Native
  • TypeScript
  • JavaScript
  • Node.js
Архитектура
  • Архитектура UI/UX
  • Системы проектирования и библиотеки компонентов
  • Проектирование контрактов API
  • Доступные интерфейсы
  • Высокопроизводительный UI
  • Адаптивные макеты
Состояние и данные
  • Redux
  • GraphQL
  • TanStack Query
  • TanStack Router
  • React Router
Стиль
  • CSS-in-JS
  • Tailwind
Качество
  • Разработка, управляемая тестами
  • Vitest
  • Playwright
  • Модульное / интеграционное / E2E тестирование
  • Storybook
  • Отладка
Платформы
  • Next.js
  • Expo
  • Reanimated / Gesture Handler
  • SolidJS
Мягкие навыки
  • Наставничество
  • Код-ревью
  • Анализ требований
  • Планирование функций
  • Инженерия на основе AI

Разговорные языки

Опыт

Ведущий инженер Front-End · Webbee GmbH

Август 2020 – Настоящее время

Минск, Беларусь

Я владею архитектурой Frontend и поставкой Butlerapp (менеджер бронирований и CRM) и TaylorDb (конструктор приложений на основе AI). Нижняя временная шкала показывает, как эта работа развивалась.

  1. Butlerapp Booking Form

    React 16 · TypeScript · архитектура UX

    • Перестроил старые формы бронирования как современное React и TypeScript приложение, которое продолжало общаться с существующими PHP API.
    • Спроектировал и отправил корзину событий, которая чисто работала поверх уже имевшихся данных, вместо того, чтобы принудить переписание бэкенда.
  2. SchnellTestButler

    React Native · Expo · NativeBase · архитектура UX

    • Расширил Butlerapp потоками планирования для высокопроизводительного тестирования COVID, охватывая бронирования, синхронизацию очереди и передачу результатов.
    • Построил приложение React Native для полей с QR-регистрацией и доступом к нескольким учетным записям; в пиковый период оно использовалось более чем в 1500 центрах тестирования по всей Германии.
    • Выпустил приложение в App Store и Google Play.
  3. Butlerapp Dashboard — миграция React Native

    React Native · Expo · NativeBase

    • Перенес основанный на классах React Butlerapp Dashboard в гибридное приложение React Native на Expo и NativeBase, и одновременно дал продукту полный UX-рефакторинг.
    • Спроектировал и построил систему представлений с нуля, чтобы операторы могли сохранять фильтры, сортировку и макет как переиспользуемые представления, и сделал интерфейс полностью адаптивным.
    • Принял Autodesk BaseTable, чтобы дать операторам заметно более быстрый опыт работы с таблицами на больших наборах данных.
    • Переделал фильтры в фишки фильтров с моделью ранжирования, которая сначала появляется наиболее используемыми фильтрами.
    • Добавил настройку панели управления, чтобы каждый клиент мог адаптировать продукт к своему собственному брендингу.
  4. TaylorDb — конструктор приложений на основе AI

    React Native · GraphQL · WebSockets · уровень данных на стороне клиента

    • Руководил TaylorDb примерно два с половиной года, пока он развивался от конструктора приложений в Airtable-подобный продукт данных и, в конечном итоге, в конструктор приложений на основе AI.
    • Рассматривал клиент как локальную базу данных: все данные продукта поступали через GraphQL на WebSockets вместо REST, поэтому я построил выделенный уровень загрузки данных и систему подписки, которая синхронизировала локальное состояние, навигируя расовыми условиями по мере поступления событий. Локальный кэш позволил людям сразу начать работу, с активными данными, заполняющимися через подписки по мере их поступления.
    • Ввел инженеров среднего уровня и наставил их, пока они не смогли действовать как независимые старшие.
    • Сравнил доступные библиотеки компонентов React Native в то время, затем спроектировал и построил неоригинальную библиотеку— react-native-molecules (npm)—служить общей основой UI по продуктам.
  5. Butlerapp Dashboard — улучшения и система сетки

    React Native · системы виджетов

    • Вернулся к Butlerapp Dashboard для основного цикла обновления, включая адаптивный конструктор сетки и набор виджетов, управляемых бэкенда.
    • Реализовал самостоятельную ориентацию, чтобы зарегистрированные пользователи могли достичь значения без доверительного установки.
    • Ввел младшего разработчика, наставил его в ежедневной доставке и провел тщательные проверки кода, чтобы качество оставалось высоким, пока команда двигалась быстрее.
    • В настоящее время работаю над мобильным приложением для этой поверхности продукта.
  6. Butlerapp Booking Form — платформа React 19 и встраивания

    React 19 · TypeScript · встраиваемые виджеты · интеграция между сайтами

    • Переделал Butlerapp Booking Form вокруг React 19, чтобы кодовая база могла чисто усваивать будущие изменения, и интегрировал форму в Butlerapp Dashboard, чтобы операторы работали в едином непрерывном опыте.
    • Форма теперь работает на более чем 200 веб-сайтов и приносит тысячи бронирований каждый месяц. Он может открыться на любой странице, которая загружает скрипты бронирования, а не только на выделенной странице интеграции.
    • Создавайте кроссдоменные встраиваемые виджеты, которые находятся вокруг формы — календарь, карточку предложения, аккордеон, таблицу и вход пользователя — чтобы сайты-хосты могли представлять инвентарь в нужной им форме.

UX Lead · Zycus India Pvt. Ltd.

Январь 2018 – июль 2020

Мумбаи, Индия · React · Angular 8

Zycus создает ведущую платформу source-to-pay для закупок. Я руководил работой Frontend по модулям продуктов, продвигал модернизацию с устаревших стеков и управлял командой инженеров Frontend.

  • Построил React плагины, которые заменили Flash и ActionScript в собственных внутренних инструментах, что облегчило обслуживание этих поверхностей и сделало их пригодными для использования в современных браузерах.
  • Взял на себя CRMS и iAnalyse, когда они еще жили на отдельных стеках — один PHP сервис с jQuery/PHP фронтенда, другой Java сервис с jQuery/Java фронтенда. Я руководил переписанием фронтенда обоих на Angular 8, так как Zycus стандартизировал одну UX платформу по всей компании.
  • Построил COVID Dashboard анализа расходов, который сравнивал расходы компании с конкурентами отрасли, чтобы команды закупок могли быстро выявлять выбросы. Мы взяли идею из двухдневной POC хакатона на производство примерно за неделю.
  • Построил Dashboard расходов с адаптивными Highcharts визуализациями, чтобы команды могли изучать данные о стоимости на рабочем столе и меньших экранах, не теряя опыт диаграммы.
  • Спроектировал и реализовал пользовательскую таблицу сводки с нуля для iAnalyse, сформированную вокруг потребностей анализа этого продукта, а не общей сетки третьей стороны. Она поддерживала перетаскивание макета нескольких измерений и мер на обеих осях, плюс вложенные группы со сворачиваемыми строками.
  • Наставил команду из пяти инженеров Frontend, проводил регулярные проверки кода, чтобы обеспечить согласованность качества, и вовлекал их в технический дизайн и планирование спринта, чтобы владение было с командой, а не только со мной.

Ключевые модули: фирменные отчеты и анализ данных, COVID Dashboard анализа расходов, Dashboard расходов (Highcharts), пользовательская таблица сводки для iAnalyse

Software Engineer II · Omnichanneler Technologies Pvt. Ltd.

Апрель 2017 – ноябрь 2017

Бангалор, Индия · React · Backbone.js

Стартап продукта, создающий точку продажи и инструменты многоканального инвентаря для розничных торговцев, которые продают как в интернете, так и в реальных магазинах.

  • Поддерживал и расширял фронтенд Backbone.js, подключая новые API функций в адаптивный веб-интерфейс под плотными крайними сроками выпуска.
  • Построил поток B2B POS, чтобы розничные торговцы могли принимать заказы B2B в больших объемах вместо обработки их только как одноразовых розничных продаж.
  • Интегрировал рабочие потоки подключения QuickBooks и Tally ERP, чтобы клиенты могли подключить свой стек бухгалтерского учета как часть установки.
  • Руководил переделкой ключевых поверхностей приложения в React, так что работа миграции слилась вместе с новыми возможностями для розничных операторов.

Ключевая работа: B2B POS для оптовых заказов, подключение QuickBooks и Tally ERP, настраиваемые счета-фактуры и миграция со старого фронтенда на React

Ассистент Project Manager · Unlock Technologies Pvt. Ltd.

Сентябрь 2013 – апрель 2017

Мумбаи, Индия · jQuery · AJAX · HTML5 · CSS3 · Ionic

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

  • Отправил производство веб-сайтов и веб-приложений с jQuery, AJAX, HTML5 APIs и CSS3, от требований и макетов через готовый к браузеру delivery.
  • Построил мобильную линию приложений компании в Ionic: PayPointZ Wallet и приложение WebView для компании электронного аукциона искусства — расширил портфель и открыл новый поток доходов для работы с клиентами.
  • Построил несколько шаблонов электронной коммерции для вертикали Unlock Commerce, предоставляя команде переиспользуемые стартовые точки витрины для работы с клиентами.
  • Внедрил современные веб-практики в организацию и перенес контроль версий с VSS на самостоятельно размещенный Git.
  • Провел подключение и обучение клиентов, установил цели для многофункциональных команд и поддерживал delivery согласованного качества и сроков.

Избранные проекты: PayPointZ Wallet, Intro (онлайн-идентификация) и шаблоны электронной коммерции Unlock Commerce

Побочные проекты и библиотеки

shashankagarwal.devэтот проект

Astro · Puppeteer · TypeScript · CSS Grid

Многоязычное резюме с генерацией PDF во время сборки. Включает адаптивный дизайн, макеты CSS Grid, которые идеально отображаются в PDF, локальные шрифты и автоматическое развертывание на Cloudflare Pages через GitHub Actions. Доступно на английском, немецком и русском языках.

json-tree-editorпобочный проект

SolidJS · TypeScript · Web Component

Высокопроизводительный редактор JSON-дерева для приложений Solid и через веб-компонент для других стеков. Я руководил сборкой с помощью AI с акцентом на большие деревья и простое правило: строка источника остается единственным документом истины.

json-schema-formпобочный проект

React · JSON Schema · UI Schema · TypeScript

Конструктор форм на основе данных для React: JSON Schema для валидации, UI Schema для разметки сетки и пользовательские рендереры, когда вам нужен полный контроль. Порты JS и SolidJS находятся в разработке.

react-native-moleculesс Webbee

React Native · TypeScript

Общая библиотека компонентов React Native, которую я разработал, руководя TaylorDb; она стала основой UI, используемой в нескольких продуктах.

Панель управленияхобби, в разработке

SolidJS · TanStack Query · Router

Движок рабочего процесса хобби и конструктор в стиле ERP, предназначенный для поставки с предопределенными модулями. Конечные пользователи смогут создавать свои собственные панели управления, секции отчетов и пользовательские рабочие процессы на основе своих наборов данных.

Образование

Степень бакалавра наук в области информационных технологий

Университет Мумбаи, Мумбаи, Индия

2009
Давайте поговорим