Vue.js developer job description template (2026)
A Vue.js developer job description you can copy, written for Vue 3 and Nuxt codebases, with a level breakdown, writing tips and FAQs.
By the Ryz Labs team · Updated October 2026
A Vue.js developer job description should state whether the role is Vue 3 work, a Vue 2 migration or both. Vue 2 reached end of life at the end of 2023, and many production apps still carry Options API code, Vuex stores and Vue 2-only plugins. That changes the job: a developer moving a large app to the Composition API and Pinia needs different judgment than one building a fresh Nuxt site. The post should also say whether you use Nuxt for server rendering or a Vite single-page app. The template below targets a senior Vue.js developer building in Vue 3 and Nuxt while finishing a migration from older Vue code.
Vue.js developer job description template
Job title
Senior Vue.js Developer (Vue 3 and Nuxt)
Employment type: full-time or contract. Location: remote, with at least four hours of overlap with US Eastern time.
About the role
We are looking for a senior Vue.js developer to build and modernize the web front end of [product name]. Our app runs on [Nuxt / Vite + Vue Router] and uses Pinia for state, with some older screens still written in the Options API and Vuex. You will ship new features, lead the remaining migration and set conventions for composables and components. You will work with [number] engineers, a designer and a product manager, and report to [title].
Responsibilities
- Build features with single-file components using
<script setup>, the Composition API and TypeScript. - Write reusable composables for data fetching, forms and shared behavior, with clear inputs and cleanup.
- Design Pinia stores that hold only truly shared state, and move logic out of components where it belongs.
- Migrate remaining Options API components and Vuex modules to the Composition API and Pinia without breaking production.
- Replace Vue 2-only plugins and libraries with maintained Vue 3 alternatives, using the migration build where needed.
- Use Nuxt features well: server-side rendering, useFetch and useAsyncData, route middleware, and hybrid rendering rules per route.
- Avoid reactivity pitfalls such as losing reactivity on destructuring, deep watchers on large objects and overuse of reactive versus ref.
- Build accessible components, alone or on top of [PrimeVue / Vuetify / Reka UI], that match our design system.
- Write component tests with Vitest and Vue Test Utils, and end-to-end tests with Playwright.
- Review pull requests and document conventions for composables, props, emits and slots.
Requirements
- 5+ years of front-end development, with at least 3 years building production Vue applications.
- Deep knowledge of Vue 3 reactivity: ref, reactive, computed, watch, watchEffect and how dependency tracking works.
- Production experience with the Composition API and
<script setup>, including typed props and emits. - Experience with Pinia, and with Vuex in older code.
- Experience with Nuxt 3 or later, including server rendering, hydration issues and data fetching.
- Strong TypeScript, HTML and CSS skills, including scoped styles and responsive layout.
- Experience with Vite and modern front-end tooling.
- Experience testing Vue components and working in a CI pipeline with code review.
- Clear written English for pull requests, design notes and async communication.
Nice to have
- Experience leading a Vue 2 to Vue 3 migration in a large codebase.
- Experience moving from Nuxt 2 to Nuxt 3, or from Nuxt 3 to Nuxt 4.
- VueUse, Vee-Validate or other common ecosystem libraries.
- Building a shared component library documented in Storybook or Histoire.
- Internationalization with vue-i18n for several locales.
- Laravel or another back end that Vue is often paired with.
Tech stack
Vue 3.5, Nuxt 4, TypeScript, Pinia, Vue Router, VueUse, Vite, Tailwind CSS, Vitest, Vue Test Utils, Playwright, ESLint with eslint-plugin-vue, Netlify or AWS, Sentry. Replace this list with your real stack; candidates read it closely.
What success looks like in 6 months
- You have shipped several user-facing features and own one area of the app.
- The remaining Options API and Vuex code has a clear migration plan, and a large part of it is already done.
- Hydration mismatches and other server rendering bugs on key pages have been found and fixed.
- The team follows a written set of conventions for composables and stores that you wrote or shaped.
How to apply and interview process
Send your resume or LinkedIn profile and a link to a Vue project, live site or code sample you are proud of. Our process has four steps: a 30-minute intro call, a technical conversation about a Vue app you have built or migrated, a practical exercise or pairing session on a realistic component and composable, and a final conversation with the team you would join. We aim to give feedback within a few days of each step.
Junior vs mid vs senior Vue.js developer
Vue is approachable, which makes it easy to hire someone who can build screens but not someone who can keep a large app's reactivity and state under control. Level the role accordingly.
| Level | Scope | Typical experience | Key skills |
|---|
| Junior | Components and small screens from finished designs, with review | 0-2 years | Template syntax, props and emits, v-model, basic ref and computed, CSS |
| Mid-level | Complete features, including routing, API calls, forms and state | 2-5 years | Composition API, composables, Pinia, Vue Router guards, component testing, TypeScript |
| Senior | App architecture, migrations, rendering strategy and conventions | 5+ years | Reactivity internals, Nuxt rendering modes, Vue 2 to Vue 3 migration, performance, mentoring |
Tips for writing a Vue.js developer job description that attracts senior talent
- Say how much Vue 2 is left. Developers read "Vue" and want to know whether it means Vue 3 or a stack past end of life. Give an honest estimate of the remaining migration.
- Name Options API or Composition API. Your preferred style shapes code review every day. Senior Vue developers want to know which one they will write and which one they will maintain.
- Explain the Nuxt question. Server rendering with Nuxt brings hydration bugs, server routes and caching rules. A single-page app on Vite does not. State which you run.
- List your component library. Vuetify, PrimeVue, Quasar and a custom design system lead to very different work. Naming yours saves both sides time.
- Mention the back end. Vue is often paired with Laravel, Django or Node.js. Saying which tells full-stack-minded candidates whether they can contribute beyond the front end.
- Do not filter on Vue-only experience. Strong React or Angular developers often switch to Vue easily. Require Vue for senior architecture roles, but consider transferable experience for mid-level ones.
Skip the job post: hire a vetted senior Vue.js developer
A job description starts a hiring cycle that can take months, and senior developers with real Vue 3 migration experience are not easy to find through a job board. If you need that capacity sooner, Ryz Labs can match you with senior Vue.js developers from Latin America who work on your team, ship in your repos and join your standups, working within an hour of US time zones. Only the top 1% of the engineers we interview make it through our vetting, which covers reactivity, composable design, Nuxt rendering and migration work.
Our staff augmentation model lets you add one developer or several without changing your process. Ryz engineers join your team and report to your leads. Talk to us to scope your team. If you are running interviews yourself, our Vue.js interview questions show what we test and what strong answers sound like.
FAQ
Should a Vue.js job description require Nuxt?
Require Nuxt if your app uses it, because server rendering, hydration and Nuxt's data fetching add real complexity. If you run a Vite single-page app, list Nuxt as a plus. Candidates with Nuxt experience usually handle plain Vue well.
Is Vue 2 experience still useful in 2026?
Yes, if you still have Vue 2 code. Developers who know both versions can migrate safely because they understand the old reactivity system, filters, mixins and plugins they are replacing. For a pure Vue 3 codebase, it matters much less.
Should I ask for Pinia or Vuex experience?
Ask for Pinia, since it is the official state library for Vue 3. Mention Vuex only if you still have Vuex stores to maintain or migrate, and say so in the responsibilities.
Questions we didn't answer? Email info@ryzlabs.com.