Architecture
Decomposition, data flow, state, routing, API contracts, and the design system. I choose boundaries that simplify the product's next stage, not only today's ticket.
Frontend engineer· JavaScript / Vue / Nuxt / TypeScript
I design and ship complex web products in Vue and Nuxt, typed with TypeScript. I own architecture, performance, and the full client-side path — from data model to release.
Overview
I treat the interface as a system: I understand the business flow, model data and states, align on the API contract, ship the feature, and validate it against real scenarios. Vue and Nuxt are my main tools, but the solution does not start with the framework.
Decomposition, data flow, state, routing, API contracts, and the design system. I choose boundaries that simplify the product's next stage, not only today's ticket.
Initial HTML, hydration, network, bundles, long lists, and heavy graphics. I profile the bottleneck and reduce actual latency instead of optimizing by intuition.
I cover the full client-side surface: roles and permissions, forms and complex tables, search and filters, dashboards and logs, real-time, maps, video and 3D, and API integrations. Component systems, accessibility, security, and tests belong in the feature from the start — not after release.
How I work
I can take a feature from brief to release independently or join a product team with product, design, backend, and QA. In either mode, I am accountable for the working flow — not the amount of code.
I clarify scenarios and constraints, model permissions, empty states, and failure paths, and align on the API contract. The solution goes from mock to release and post-release validation.
Tables with sorting, filtering and virtualization, dashboards, logs, schema-driven forms, real-time, and large datasets. The interface stays readable and responsive as the volume grows.
DOM, network, caching, accessibility, responsive behavior, and cross-browser support. I account for authentication and authorization; types, tests, and profiling support the solution without replacing platform knowledge.
I can build independently. In a team I discuss architecture, review code, and align with adjacent specialists. When needed, I help engineers navigate the codebase, decompose work, and debug problems.
AI in engineering
I use Cursor (Claude and other models) to explore codebases, compare approaches, refactor, draft tests and docs, and investigate failures. Generated code goes through type checking, linting, tests, review, and browser validation — just like code written by hand.
I describe the task with project constraints, provide the rules and relevant code, ask for alternatives, and verify assumptions. AI can then help at feature and system level, not just predict the next line.
I can connect company docs, issue trackers, API schemas, knowledge bases, and CI through MCP servers or direct API integrations. The default is read-only, least-privilege access; writes require explicit approval and an audit trail.
If external transfer is prohibited, only a local or approved internally hosted model is suitable. Where company policy allows cloud processing, a gateway or private endpoint must control transmission, retention, and audit logging.
A model answer is not evidence. I check architecture, types, edge cases, performance, and security, and turn the result into automated tests where practical.
JavaScript
Vue and Nuxt are my main stack. When a task does not need a framework, I write plain JavaScript, typed with TypeScript — from a small widget to a module that works directly with the DOM, network, and browser APIs.
Scope, closures, prototypes, this, modules, and memory. I build a clear data model, and TypeScript makes it explicit at component and API boundaries.
Event loop, microtasks, Promise, fetch, AbortController, WebSocket, races, and cancellation. Loading and error states are designed before users discover them.
Events, forms, focus, DOM updates, geometry measurement, and avoiding forced reflow. I profile layout, paint, compositing, and user-visible browser metrics.
I can build interaction without Vue: ES modules, Web APIs, state, and lifecycle by hand. I use that when a separate application would add more weight than value.
Stack
Core: JavaScript, TypeScript, Vue and Nuxt, SPA/SSR. Data: REST, WebSocket, Pinia and Vuex. Release and quality: Vite, Webpack, Vitest/Jest, i18n, responsive UI and performance. For specialised interfaces: maps, media, and WebGL.
Server side
I work on the other side of the contract too: Django REST, NestJS, Node.js, Express, PostgreSQL, and Docker. When needed I cover the server side myself: API, auth, and the feature through the stack.
Next