Frontend developer specializing in Vue 3 / Nuxt 4·3·2 with 4 years of commercial experience in fintech (SberSpasibo, Pochta Bank). Outside of work I build desktop and mobile apps on Tauri, with the systems half written in Rust.
Core: TypeScript · JavaScript · Vue 3 · Nuxt 4/3/2 · React · Next.js
State & Data: Pinia · TanStack Query · Vuex · Zustand · Redux
UI: Tailwind CSS · SCSS/SASS · CSS Modules · Shadcn/ui
Backend: Node.js · NestJS · Express · REST API · GraphQL · WebSocket · PostgreSQL · Prisma
Systems: Rust · Tauri 2 · SQLite · Kotlin (Android)
Tooling: Vite · Webpack · Vitest · Jest · Playwright · Cypress · Docker · CI/CD · Sentry
Performance: Core Web Vitals (LCP · INP · CLS) · SSR · SSG · ISR · SPA · code splitting · lazy loading
| Project | Description |
|---|---|
| Vestibule | Desktop focus tracker that gives distraction a price — Rust workspace of four crates, privileged helper over a Unix socket, site blocking via /etc/hosts and app freezing via SIGSTOP, 196 tests |
| protected-gallery | Encrypted media vault for Android — AES-256-GCM, Android Keystore, native Kotlin module, fully offline |
| GitSpace | macOS app for keeping git projects in order — Tauri 2 + Nuxt 4, tokens in the Keychain, batched parallel git status |
| freel | Time tracking and invoicing for freelance work, desktop and Android — Tauri 2, React 19, SQLite, transactional sync with the token kept out of JavaScript |
| whostolemysleep.ru | Full-stack portfolio — Nuxt 4, Drizzle ORM, Neon, Vercel ISR, built-in CMS, EN/RU |
| attractions42 | Cultural heritage landmarks of the Kemerovo region — Nuxt 4, fully prerendered, zero runtime API calls |
| Project | Description |
|---|---|
| @wsms/logger | Zero-dependency structured logger for Node.js — async writes (~700k logs/sec), log rotation, child loggers |
| @wsms/logger-connect-nuxt | Nuxt 3/4 module for @wsms/logger |
| tauri-plugin-timer |
Android ongoing timer notification for Tauri — system chronometer and action buttons held by a foreground service, so it keeps counting with no JavaScript running |
| attractions-sync | Rust data pipeline — pulls the Ministry of Culture registry from a Russian IP, converts photos to WebP and commits the dataset into the site repo, so the build makes no network calls |
- Website: whostolemysleep.ru
- Telegram: @WhoStoleMySleepDev
- Email: whostolemysleep@gmail.com