# Artur Basak > UI/UX Engineer & Frontend Architect (Belarus). Portfolio, digital garden, publications, and browser tools at arturbasak.dev. Focus: React/Next.js, TypeScript, accessibility (WCAG), PWAs, design systems, Edge AI demos, and web performance. This site is bilingual (English and Russian). Prefer English URLs ending with `_en` for garden notes when available. Structured data uses schema.org Person / WebSite / Article / Blog. Canonical host: https://arturbasak.dev. Full crawl map: https://arturbasak.dev/sitemap.xml. Crawl rules: https://arturbasak.dev/robots.txt. ## About - [Home / Portfolio](https://arturbasak.dev/): Overview of Artur Basak — UI/UX Engineer & Frontend Architect with 15+ years experience - [Experience](https://arturbasak.dev/experience): Full work history across X5 Tech, IntexSoft, Godel, Indy, and earlier roles - [Digital Garden](https://arturbasak.dev/garden): Living notes on accessibility, PWA, design systems, testing, and web engineering (RU + EN) - [Publications](https://arturbasak.dev/blog): Index of articles on Smashing Magazine, Habr, Medium, and Better Programming - [Timeline](https://arturbasak.dev/timeline): Career and web-platform timeline with milestones ## Tools & demos - [Tools hub](https://arturbasak.dev/tools): Catalog of browser tools and experiments - [Algorithms hub](https://arturbasak.dev/algorithms): Interactive sorting algorithms and visualizations - [JavaScript Event Loop](https://arturbasak.dev/event-loop): Animated Call Stack / Web APIs / Task & Microtask queues explanation - [OCR](https://arturbasak.dev/ocr): Client-side image-to-text recognition (RU/EN) - [SVG Optimizer](https://arturbasak.dev/svg-optimizer): Clean and minify SVG markup in the browser - [Skeleton Detection](https://arturbasak.dev/skeleton-detection): On-device pose estimation with MoveNet / WebGPU - [Emotion Analysis](https://arturbasak.dev/emotion-analysis): On-device facial expression detection from the camera - [Speech Recognition](https://arturbasak.dev/speech-recognition): Live speech-to-text via the Web Speech API - [Micro:bit Connector](https://arturbasak.dev/microbit-connector): Web Bluetooth / WebUSB UART control for BBC micro:bit v2 - [AI Assistant](https://arturbasak.dev/ai-assistant): Streaming chat UI powered by free AI model backends - [Braille Converter](https://arturbasak.dev/braille-converter): Text ↔ Braille for Russian, Belarusian, and English ## Policies - [Accessibility Statement](https://arturbasak.dev/accessibility): WCAG 2.2 Level AA commitment for this site - [Privacy Policy](https://arturbasak.dev/privacy): What data is collected and how it is handled ## External publications - [Аудит доступности Wildberries. Может ли незрячий пользователь купить Бэтмобиль?](https://habr.com/ru/articles/988756/): Практический аудит доступности маркетплейса "Wildberries" с использованием подхода из 5 шагов. (Habr, 2026-01-25) - [Аудит доступности веб-приложения Приорбанка](https://habr.com/ru/articles/965834/): Я долго думал, аудит какого веб-приложения провести первым для своей небольшой заметки, чтобы показать наглядно подход из 5 шагов. (Habr, 2025-11-12) - [Реальная эффективность Brotli](https://medium.com/@arturbasak/%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-brotli-9ff6edeb5abf): Экспериментально оцениваем пользу Brotli для продакшн‑проектов. (Medium, 2020-11-23) - [How To Configure Application Color Schemes With CSS Custom Properties](https://www.smashingmagazine.com/2020/08/application-color-schemes-css-custom-properties/): A practical approach to splitting colors into palette, functional and component levels with CSS Custom Properties. (Smashing Magazine, 2020-08-11) - [UI Kit, Design System, DesignOps](https://medium.com/better-programming/ui-kit-design-system-designops-e4a60e5dd277): Что важно в индустриальном подходе к дизайну интерфейсов и разработке. (Better Programming, 2020-06-15) - [Оптимизируем загрузку рукописного шрифта](https://medium.com/@arturbasak/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B8%D1%80%D1%83%D0%B5%D0%BC-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D1%83-%D1%80%D1%83%D0%BA%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE-%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%B0-258fb9bee001): Как эффективно подключить кастомный рукописный шрифт и не потерять в производительности. (Medium, 2020-05-12) - [5 Tips To Improve Your UI Development Environment](https://medium.com/better-programming/5-tips-to-help-improve-your-ui-development-environment-6ceda3827618): Практические советы для ускорения и стабилизации UI‑разработки. (Better Programming, 2020-03-31) - [A Visual Tutorial On Every Type Of Test You Can Write](https://medium.com/better-programming/a-visual-tutorial-on-every-type-of-test-you-can-write-ec9b83edcf35): Наглядный гайд по видам тестов и когда их применять. (Better Programming, 2020-03-24) - [GrodnoVR — мой опыт с ReactVR](https://medium.com/@arturbasak/grodnovr-my-first-and-last-experience-with-reactvr-7ac156fc1a70): История о первом и последнем опыте с ReactVR. (Medium, 2018-11-13) - [Flux: Some Things Never Change](https://medium.com/@arturbasak/flux-some-things-never-change-46ad8820e92c): О принципах Flux и почему они до сих пор актуальны. (Medium, 2018-02-14) - [Знай свой инструмент: Event Loop в libuv](https://habr.com/ru/articles/336498/): Знай свой инструмент — твердят все вокруг и все равно доверяют. Доверяют модулю, доверяют фреймворку, доверяют чужому примеру. Излюбленный вопрос на собеседованиях по Node.js — это устройство Event Loop. (Habr, 2017-08-28) - [Тесты, которые должен писать разработчик](https://medium.com/@arturbasak/%D1%82%D0%B5%D1%81%D1%82%D1%8B-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5-%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD-%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-a04cab35f45b): Какие тесты действительно важны на проекте и почему. (Medium, 2017-07-19) - [Human-Computer Interaction](https://www.slideshare.net/slideshow/js-amp-hci-2017ppt/77153125): This document summarizes technologies related to human-computer interaction including computer vision, face detection, face recognition, thought detection, barcode reading, and Bluetooth. It provides links to resources on OpenCV, Point Cloud Library, Node OpenCV, tracking.js, CCV, Visage, Haar-like features, Viola-Jones algorithm, WebRTC, getUserMedia, Neurosky brain-computer interface, Bluetooth Low Energy including AltBeacon, iBeacon, and Eddystone, Noble and Bluetooth Serial Port Node.js modules, and Web Bluetooth. It also lists some example applications built with Angular2 that incorporate computer vision and QR code reading functionality. (Slideshare, 2017) - [Dev Guide to the Internet of Things (IoT)](https://www.slideshare.net/slideshow/dev-guide-to-the-iot-ibm-stack/74148969): The document provides an overview of developing for the Internet of Things using the IBM stack. It introduces various hardware components like Raspberry Pi and sensors that can be used to build IoT devices. It also shares links to software tools and platforms like Node-RED, Bluemix, and Fritzing that are useful for prototyping and developing IoT applications. The goal is to share knowledge from a course on IoT development with the team. (Slideshare, 2017) - [CI, CD, CT, Deploy, IaaS, DevOps, Stage](https://www.slideshare.net/slideshow/ci-cd-ct-deploy-iaas-devops-stage/74660514): По следам своего свежего опыта с AWS и Jenkins (Slideshare, 2016) - [Experience with hapi.js](https://www.slideshare.net/slideshow/hapi-2016/77153062): Walmart is investing heavily in open source software development. The presentation discusses Walmart's use of open source technologies like Node.js, NPM, and modules to build server-side applications and APIs. Key aspects include routing, plugins, and leveraging existing open source packages. (Slideshare, 2016) ## Optional - [Sitemap](https://arturbasak.dev/sitemap.xml): Complete URL list for crawlers - [robots.txt](https://arturbasak.dev/robots.txt): Crawl allow/disallow rules - [Real programmers don't use AI](https://arturbasak.dev/garden/real-programmers-dont-use-ai_en): The historical paradox of demand for engineers — from Pascal and the PC to AI. Stacks die, the profession does not. The recent layoffs are about COVID-era headcount and the economic cycle, not the end of engineering. - [Recovery and observability for a PWA that fails before it starts](https://arturbasak.dev/garden/pwa-recovery-observability_en): When code splitting meets a fresh deploy — a static fallback that runs without the bundle, careful reloads for missing chunks, and the Service Worker telemetry that makes recovery something other than guesswork. - [When offline support collides with lazy loading](https://arturbasak.dev/garden/offline-vs-lazy-loading_en): Code splitting assumes the network will be there when the user navigates; offline support assumes it will not. How I split chunks into offline-critical and expendable, why the webpack trick does not survive the move to Vite, and the Service Worker layers that keep the critical code around. - [Measuring the visible part of the viewport](https://arturbasak.dev/garden/viewport_en): Meta viewport, interactive-widget, viewport-fit, dvh, safe-area and the visualViewport API — how to control the visible area on mobile. - [Accessibility: a developer's field guide](https://arturbasak.dev/garden/accessibility-tools-and-quality-gates_en): A working accessibility stack for web engineers — WCAG, ARIA, APG, WAI, UI kits, manual testing, audit tools, linters, CI/CD, E2E, and AI agents. - ['Wildberries accessibility audit: can a blind shopper buy a Batmobile?'](https://arturbasak.dev/garden/audit-wildberries-a11y_en): A hands-on five-step accessibility audit of Wildberries, one of the largest e-commerce marketplaces in the CIS, from the first Tab press to a checkout that never happens. - [View Transitions in React — a year in production](https://arturbasak.dev/garden/view-transitions_en): The View Transitions API has been shipping in my mobile WebView PWA for over a year. The navigation wrapper, named groups, header and tab bar isolation, and the Safari blur artifacts — no waiting on React's ViewTransition. - ['A practical web accessibility audit: five steps, no dogma'](https://arturbasak.dev/garden/audit-a11y-without-wcag_en): A grounded five-step accessibility audit you can run today, without first disappearing into the specs. - [Web accessibility is not hype, it is responsibility](https://arturbasak.dev/garden/a11y-my-task-crafting_en): Accessibility is easy to talk about and easy to postpone. Here is the personal reason it stopped being optional for me, and the habit I built around it. - [Why an empty GitHub profile is perfectly fine](https://arturbasak.dev/garden/github_en): The green squares myth — why a bare contribution graph tells you almost nothing about how good an engineer is. - [15 years in commercial development — what I learned is how little I know](https://arturbasak.dev/garden/15-years-in-dev_en): A set of working theses about the craft, knowledge, titles and products — no absolute truths, just conclusions that have held up in practice. - [Workbox Background Sync that survives iOS Safari and Android WebView](https://arturbasak.dev/garden/workbox-background-sync_en): Replaying offline mutations reliably when Sync Manager is missing or switched off — extending the Workbox queue instead of rewriting it, with exponential backoff and a hand-rolled sync trigger.