Dmitry Vlasenko
RU

~/dmitry-vlasenko $ whoami

Dmitry Vlasenko

Senior Frontend Developer

Vue 3 · TypeScript · SPA architecture

  • 7 years
  • Moscow
  • Remote, full-time
scroll down

About

Frontend developer with 7 years of building large Vue.js single-page applications. I focus on frontend architecture, reusable components and migrations of big codebases.

Recent years: Vue 3, TypeScript, Pinia, TanStack Query. I run code reviews and mentor, negotiate API contracts with the backend team and write technical documentation for QA.

I build RepoBuddy on the side and lean on AI tooling for routine work. Happy to switch the stack to React or Angular.

Tooling and code generation

  • A TinyMCE plugin for LaTeX formulas — it let the company drop a paid solution
  • Template generators on hygen that cut the time to scaffold new code
  • A UI-kit library shared across projects, documented in Storybook
  • A custom ESLint plugin that keeps code standards in the team

Migrations and refactoring

  • A full Vue 2 → Vue 3 migration with zero downtime: Class Options API → Composition API
  • Moved state from Vuex to Pinia and introduced TanStack Vue Query for server state
  • Refactored legacy code and the architecture of internal services

Non-trivial integrations

  • Monaco Editor for editing code right in the browser
  • PNG rendering from Vue components both in the browser and on a Node.js server
  • Real-time features over WebSocket and Pusher.js
  • An npm library wrapping Yandex.Metrica with a type-safe API

Build and performance

  • Moved the build to SWC with code splitting and tree shaking — 40% faster builds
  • GitLab CI/CD with automated deploys and source maps shipped to Sentry
  • SPA render optimisation: load speed and interface responsiveness

Architecture

  • Feature-based architecture for a codebase of 2000+ files and 550+ components
  • Component-driven development with components built in isolation
  • Strictly typed API contracts in TypeScript

Team and collaboration

  • Regular code review and help with architectural decisions
  • API contracts agreed with backend at design time — fewer breaking changes, work goes in parallel
  • Technical documentation: feature specs, QA instructions, JSDoc/TSDoc
  • Task breakdown and estimation, technical interviews

Stack

What I work with daily and what I keep within reach.

Core

  • Vue.js 3
  • Vue.js 2
  • TypeScript
  • JavaScript ES6+
  • HTML5
  • CSS3
  • SCSS/SASS

State

  • Pinia
  • Vuex
  • TanStack Vue Query

Build

  • Vite
  • Webpack 5
  • SWC
  • npm
  • pnpm

Testing

  • Vitest
  • Storybook 8

UI

  • Naive UI
  • Vuetify
  • Tailwind CSS

Forms

  • Vee-validate
  • Yup
  • Vue i18n

Editors

  • Monaco Editor
  • TinyMCE

Backend and data

  • Node.js
  • PostgreSQL
  • SQL
  • Drizzle ORM

DevOps

  • Docker
  • GitLab CI/CD
  • Linux
  • Sentry

Real-time

  • WebSocket
  • Pusher.js

Code quality

  • ESLint (+ custom plugins)
  • Prettier
  • Husky
  • lint-staged
  • TS strict mode

Architecture

  • Feature-based
  • Feature-Sliced Design
  • Monorepo
  • Component-driven
  • hygen

API

  • REST
  • API contract design
  • Axios
  • Postman
  • Insomnia

AI

  • LLM tooling at work
  • MCP servers
  • pgvector

Team

  • Code review
  • Mentoring
  • Technical interviews
  • Estimation
  • Documentation

Experience

4 companies, 7 years of continuous practice.

  1. maximum-educationfrontend developercurrent

    MAXIMUM Education

    · 4 years 2 months · Moscow

    An educational LMS platform: student area, authorisation centre, testing service and a test builder. 2100+ files, 550+ components.

    • A TinyMCE plugin for LaTeX formulas — the company dropped its paid solution
    • Template generators on hygen that cut the time to scaffold new code
    • A full Vue 2 → Vue 3 migration with zero downtime, together with the team
    • PNG rendering from Vue components in the browser and on a Node.js server
    • Server state management on TanStack Vue Query
    • Build optimisation: SWC, code splitting, tree shaking
    • Regular code review and help with decisions across the team
    • API contracts agreed with backend at design time — fewer breaking changes, parallel work
    • Technical documentation: feature specs, QA instructions, JSDoc/TSDoc
    • Vue 3
    • Vue 2
    • TypeScript
    • Pinia
    • TanStack Vue Query
    • Axios
    • Webpack 5
    • SWC
    • Vitest
    • Naive UI
    • Storybook 8
    • GitLab CI/CD
    • Docker
    • WebSocket
    • Pusher.js
    • Monaco Editor
    • Vee-validate
    • Yup
    • Vue i18n
  2. leadhitfrontend developer

    LeadHit

    · 1 year 10 months · Moscow

    Frontend of a B2B SaaS platform for email marketing and sales automation: the client area and the admin panel.

    • Refactored the architecture of an internal service: legacy → a modern Vue stack
    • Built the functionality of the client area
    • Maintained and extended the platform admin panel
    • REST API integrations
    • Vue 2
    • JavaScript ES6+
    • Vuex
    • Webpack
    • SCSS
    • REST API
    • Axios
  3. gridnine-systemsfrontend developer

    Gridnine Systems

    · 2 months · Moscow

    Support and development of the frontend of a corporate web application: user area and admin panel on Vue 2.

    • New features and bug fixes within a component-based architecture
    • Vue 2
    • JavaScript ES6+
    • Vuex
    • REST API
  4. worklefrontend developer

    Workle

    · 11 months · Moscow

    Frontend for the company's products: admin panel, marketing site and landing pages.

    • Migrated the admin panel from jQuery to Vue 2
    • Built an admin panel from scratch with a component-based approach
    • Marked up the marketing site and landing pages, responsive across desktop, tablet and mobile
    • Vue 2
    • JavaScript ES6+
    • jQuery
    • SCSS
    • Responsive design
    • REST API

Projects

What I build outside of work.

RepoBuddy

Self-hosted, in progress

Your first pull request to any open-source repo. Faster.

Indexes a public GitHub repository into a typed knowledge graph and answers questions about it: what runs here, what matters, where a first contribution could safely land. Answers are grounded in the actual code and cite it.

  • AST extraction across TypeScript, JavaScript, Python and Go into a graph of entities and relations — Postgres + pgvector
  • A planner picks operators over the graph (find_symbol → get_callers → retrieve_code_chunks); the executor runs them deterministically
  • Answers stream with citations: every claim is linked to the entity or chunk it came from
  • Contributor's tour: entry points, hot files, safe first-PR zones, an auto-generated architecture diagram
  • Issue triage: checks whether the work is already done — by commits, live PRs and similar closed issues
  • MCP server: the same graph is addressable from Claude Code and Cursor
  • Vue 3
  • TypeScript
  • Node.js
  • PostgreSQL
  • pgvector
  • Drizzle ORM
  • Tailwind CSS
  • D3
  • Mermaid
  • Docker
  • Caddy
  • MCP SDK

Open Source

FormKit Drag and Drop 1.9k

July 2024 — February 2025

A framework-agnostic drag-and-drop library used in production around the world.

  • Found and documented a critical bug with nested drag groupsIssue #83
  • Built a CodeSandbox reproduction and described the problem
  • Wrote and submitted a pull request with the fix
  • The PR was merged into v0.4.1 and mentioned in the release notesv0.4.1

Education

Secondary education

The working knowledge comes from practice, open source and self-study.

Contact

Open to offers: remote, full-time. I write Vue and read everything else.

$ exit