Software Engineer, Dashboard Skip to content Products AI Cloud AI Gateway One endpoint, all your models Sandbox Isolated, safe code execution Vercel Agent An agent that knows your stack AI SDK The AI Toolkit for TypeScript v0 Build applications with AI Core Platform CI/CD Helping teams ship 6× faster Content Delivery Fast, scalable, and reliable Fluid Compute Servers, in serverless form Workflow Long-running workflows at scale Observability Trace every step Security Bot Management Scalable bot protection BotID Invisible CAPTCHA Platform Security DDoS Protection, Firewall Web Application Firewall Granular, custom protection Resources Company Customers Trusted by the best teams Blog The latest posts and changes Changelog See what shipped Press Read the latest news Events Join us at an event Learn Docs Vercel documentation Academy Linear courses to level up Knowledge Base Find help quickly Community Join the conversation Open Source Next.js The native Next.js platform Nuxt The progressive web framework Svelte The web’s efficient UI framework Turborepo Speed with Enterprise scale Solutions Use Cases AI Apps Deploy at the speed of AI Composable Commerce Power storefronts that convert Marketing Sites Launch campaigns fast Multi-tenant Platforms Scale apps with one codebase Web Apps Ship features, not infrastructure Tools Marketplace Extend and automate workflows Templates Jumpstart app development Partner Finder Get help from solution partners Users Platform Engineers Automate away repetition Design Engineers Deploy for every idea Enterprise Pricing Ask AI Ask AI Log In Sign Up Sign Up Dashboard Engineering New York City, San Francisco Full Time Software Engineer, Dashboard Careers / Engineering Engineering New York City, San Francisco Full Time About Vercel: Vercel is the agentic infrastructure company. We free people and agents to ship what’s next. For more than a decade, Vercel has shaped how the web is built. As
the team behind Next.js, v0, and AI SDK, we create products that help builders move from idea to production with speed, security, and exceptional developer experience. Now, software is entering a new era, and the next generation of products will not just be used by people. They will be built, extended, and operated by agents. We are building the platform for that future, trusted by companies like OpenAI, PayPal, Ramp, Supreme, and millions of developers worldwide . Whether you’re building our products, supporting our customers, growing our community, or shaping our story, you’ll help define what comes next. We're looking for a Full Stack Engineer to build the Vercel Dashboard, the control plane for every Vercel user. You'll own the core surface through which developers and teams interact with Vercel, from first login through daily use. The Dashboard is where the self-driving aspect of Vercel's Cloud comes to life. Today, it's a project listing page. We're turning it into a personalized, agent-powered surface that proactively helps users ship and stay on best practices. This is a foundational role: you'll be one of the first engineers on a new team, working alongside our current tech lead to rearchitect and rebuild the Dashboard from the ground up. You'll work across the stack: building fast, polished UI on the frontend and the APIs, data layers, and services that power personalization, agent experiences, and real-time push surfaces on the backend. The Dashboard must be the reference implementation of Vercel's own platform. What You Will Do Build and own core Dashboard infrastructure: the shell, navigation, layout system, and shared components that every product area builds within Architect and implement the backend services and APIs that power the Dashboard, including personalization, notifications, and agent-powered experiences Drive performance as a core feature. Profile, measure, and optimize aggressively. Every interaction should feel instant Build agent-facing surfaces: the UI and API layers where agents surface errors, suggest fixes, update config, and keep users on best practices Work closely with product area teams (Billing, CI/CD, Observability, etc.) to ensure their pages integrate cleanly into the Dashboard shell and follow shared patterns Ship incrementally and continuously. This is a living product that improves every week About You 4+ years of experience as a software engineer building user-facing products. You're strong across the stack: modern frontend (React, TypeScript, Next.js) and backend (APIs, databases, services) You've built products for developers or technical users. You understand the expectations of this audience and you hold yourself to the same bar You think in systems. You naturally build reusable abstractions, composable components, and clean APIs rather than one-off solutions You're comfortable with ambiguity. This is a new team building a new product direction. You can take a rough problem statement and turn it into shipped code You use AI tools in your own development workflow and have opinions on how they should work You ship fast without sacrificing quality. You bias toward iteration and production feedback over long planning cycles You communicate clearly and collaborate well with Product, Design, and other engineering teams
Bonus Experience working on platform or horizontal teams where you built shared infrastructure that other teams depended on Contributions to open source projects, especially in the React or Next.js ecosystem The San Francisco, CA base pay range for this role is $196,000-$294,000. Actual salary will be based on job-related skills, experience, and location.
Compensation outside of San Francisco may be adjusted based on employee location. The total
compensation package may include
benefits, equity-based
compensation, and eligibility for a company
bonus or variable pay program depending on
the role. Your recruiter can share more details during the hiring process. Vercel is committed to fostering and empowering an inclusive community within our organization. We do not discriminate on the basis of race, religion, color, gender expression or identity, sexual orientation, national origin, citizenship, age, marital status, veteran status, disability status, or any other characteristic protected by law. Vercel encourages everyone to apply for our available positions, even if they don't necessarily check every box on the job description. Apply for Role Apply Now. Tell us why you’d be a good fit for the Software Engineer, Dashboard role. First Name input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)]" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> Last Name input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)]" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> Email Address input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)]" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> Phone Number International Afghanistan Åland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antigua and Barbuda Argentina Armenia Aruba Ascension Island Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bonaire, Sint Eustatius and Saba Bosnia and Herzegovina Botswana Brazil British Indian Ocean Territory Brunei Darussalam Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Congo, Democratic Republic of the Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Curaçao Cyprus Czech Republic Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia Gabon Gambia Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Isle of Man Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo Kuwait Kyrgyzstan Laos Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestine Panama Papua New Guinea Paraguay Peru Philippines Poland Portugal Puerto Rico Qatar Reunion Romania Russia Rwanda Saint Barthélemy Saint Helena Saint Kitts and Nevis Saint Lucia Saint Martin (French Part) Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Sint Maarten Slovakia Slovenia Solomon Islands Somalia South Africa South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tristan da Cunha Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu Uganda Ukraine United Arab Emirates United Kingdom United States Uruguay Uzbekistan Vanuatu Venezuela Vietnam Virgin Islands, British Virgin Islands, U.S. Wallis and Futuna Western Sahara Yemen Zambia Zimbabwe Resume (Optional) Upload your resume Resume should be a PDF under 3.5MB. Are you currently based in any of these countries? Please note these are the only countries where we are accepting applications United States Germany United Kingdom Argentina Australia Canada India Japan Other Will you require Visa Sponsorship now, or in the future? Yes No Your authorization to work in the country where you live. Please choose the option that describes your work authorization. I am authorized to work in the country due to my nationality I am authorized to work in the country based on a valid work permit and do not need a company to sponsor my visa I am authorized to work in the country based on a valid work permit which needs to be sponsored by the company I work for I am not authorized to work in the country and need visa support Other Do you live in one of the following states? Alabama, Alaska, Delaware, Kansas, Maine, Mississippi, Montana, Nebraska, New Mexico, North Dakota, South Dakota, West Virginia, or Wyoming. Yes No By submitting my application, I acknowledge that I have read and understand Vercel’s Job Applicant Privacy Notice Acknowledge/Confirm Please double-check all the information provided above. Ensuring accuracy is crucial, as any errors or omissions may impact the review of your application. I have reviewed and confirmed that all the information provided is accurate and complete. Where did you first hear about this role? Events Built In LinkedIn Google Search Advertisements Other job boards LLMs (ChatGPT, etc.) I'm a Vercel customer Referral from a Vercel customer Referral from a Vercel team member Social media (X, Instagram, YouTube, etc.) Other Content (news articles, podcasts, blogs) Developer communities (GitHub, Hacker News, Reddit, etc.) Other Optionally, include links to your social media profiles. LinkedIn input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] [&>:nth-child(2)]:border-r [&>:nth-child(2)]:border-[var(--ds-gray-alpha-400)] [&>:nth-child(2)]:shrink-0 [&>:nth-child(2)]:relative [&>:nth-child(2)]:text-[var(--ds-gray-700)] [&>:nth-child(2)]:px-3 [&>:nth-child(2)]:py-0 [&>:nth-child(2)]:flex [&>:nth-child(2)]:items-center [&>:nth-child(2)]:order-0 [&>:nth-child(2)]:bg-[var(--ds-background-200)] [&>:first-child:not([disabled])]:text-[var(--themed-fg)] [&>input]:rounded-tl-none [&>input]:rounded-bl-none" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> linkedin.com/in/ X (Twitter) input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] [&>:nth-child(2)]:border-r [&>:nth-child(2)]:border-[var(--ds-gray-alpha-400)] [&>:nth-child(2)]:shrink-0 [&>:nth-child(2)]:relative [&>:nth-child(2)]:text-[var(--ds-gray-700)] [&>:nth-child(2)]:px-3 [&>:nth-child(2)]:py-0 [&>:nth-child(2)]:flex [&>:nth-child(2)]:items-center [&>:nth-child(2)]:order-0 [&>:nth-child(2)]:bg-[var(--ds-background-200)] [&>:first-child:not([disabled])]:text-[var(--themed-fg)] [&>input]:rounded-tl-none [&>input]:rounded-bl-none" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> x.com/ GitHub input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] [&>:nth-child(2)]:border-r [&>:nth-child(2)]:border-[var(--ds-gray-alpha-400)] [&>:nth-child(2)]:shrink-0 [&>:nth-child(2)]:relative [&>:nth-child(2)]:text-[var(--ds-gray-700)] [&>:nth-child(2)]:px-3 [&>:nth-child(2)]:py-0 [&>:nth-child(2)]:flex [&>:nth-child(2)]:items-center [&>:nth-child(2)]:order-0 [&>:nth-child(2)]:bg-[var(--ds-background-200)] [&>:first-child:not([disabled])]:text-[var(--themed-fg)] [&>input]:rounded-tl-none [&>input]:rounded-bl-none" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> github.com/ Portfolio input]:h-10 text-sm [&>input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] [&>:nth-child(2)]:border-r [&>:nth-child(2)]:border-[var(--ds-gray-alpha-400)] [&>:nth-child(2)]:shrink-0 [&>:nth-child(2)]:relative [&>:nth-child(2)]:text-[var(--ds-gray-700)] [&>:nth-child(2)]:px-3 [&>:nth-child(2)]:py-0 [&>:nth-child(2)]:flex [&>:nth-child(2)]:items-center [&>:nth-child(2)]:order-0 [&>:nth-child(2)]:bg-[var(--ds-background-200)] [&>:first-child:not([disabled])]:text-[var(--themed-fg)] [&>input]:rounded-tl-none [&>input]:rounded-bl-none" data-geist-input-wrapper="" data-version="v1" style="width:100%;--geist-icon-size:16px"> https:// Submit Application Get Started Templates Supported frameworks Marketplace Domains Build Next.js on Vercel Turborepo v0 Scale Content delivery network Fluid compute CI/CD Observability AI Gateway New Vercel Agent New Secure Platform security Web Application Firewall Bot management BotID Sandbox New Resources Pricing Customers Enterprise Articles Startups Solution partners Learn Docs Blog Changelog Knowledge Base Academy Community Frameworks Next.js Nuxt Svelte Nitro Turbo SDKs AI SDK Workflow SDK New Flags SDK Chat SDK Streamdown AI New Use Cases Composable commerce Multi-tenant platforms Web apps Marketing sites Platform engineers Design engineers Company About Careers Help Press Legal Privacy Policy Community Open source program Events Shipped on Vercel GitHub LinkedIn X YouTube Loading status… Select a display theme: system light dark Products AI Gateway One endpoint, all your models Sandbox Isolated, safe code execution Vercel Agent An agent that knows your stack AI SDK The AI Toolkit for TypeScript v0 Build applications with AI CI/CD Helping teams ship 6× faster Content Delivery Fast, scalable, and reliable Fluid Compute Servers, in serverless form Workflow Long-running workflows at scale Observability Trace every step Bot Management Scalable bot protection BotID Invisible CAPTCHA Platform Security DDoS Protection, Firewall Web Application Firewall Granular, custom protection Resources Customers Trusted by the best teams Blog The latest posts and changes Changelog See what shipped Press Read the latest news Events Join us at an event Docs Vercel documentation Academy Linear courses to level up Knowledge Base Find help quickly Community Join the conversation Next.js The native Next.js platform Nuxt The progressive web framework Svelte The web’s efficient UI framework Turborepo Speed with Enterprise scale Solutions AI Apps Deploy at the speed of AI Composable Commerce Power storefronts that convert Marketing Sites Launch campaigns fast Multi-tenant Platforms Scale apps with one codebase Web Apps Ship features, not infrastructure Marketplace Extend and automate workflows Templates Jumpstart app development Partner Finder Get help from solution partners Platform Engineers Automate away repetition Design Engineers Deploy for every idea
Location
San Francisco, New York
Total raised
$863.0M
Last stage
Series F
Investors
No applications, no recruiter spam. Just the intro.
A few questions to make sure this role is the right shape for you. Two minutes.
I write the intro, send it to the founder, and handle the back-and-forth.
If they’re a yes, I book the chat. You show up — that’s the whole job-hunt.