Software Engineer, eve Skip to content Copy Logo as SVG Copy Wordmark as SVG Brand Guidelines Products Agent Stack AI SDK AI Gateway Sandbox Workflows Passport eve Core Platform Security Content Delivery Fluid Compute Observability CI/CD Tools Next.js Vercel Agent Vercel Plugin Domains v0 Resources Learn Docs About Blog Changelog Knowledge Base Build AI Apps Web Apps Marketing Sites Platforms Commerce Explore Customers Marketplace Partner Finder AWS Community Enterprise Pricing Get a Demo Log In Sign Up Ask AI Dashboard Products Agent Stack AI SDK AI Gateway Sandbox Workflows Passport eve Core Platform Security Content Delivery Fluid Compute Observability CI/CD Tools Next.js Vercel Agent Vercel Plugin Domains v0 Resources Learn Docs About Blog Changelog Knowledge Base Build AI Apps Web Apps Marketing Sites Platforms Commerce Explore Customers Marketplace Partner Finder AWS Community Enterprise Pricing Get a Demo Log In Sign Up Engineering New York City, San Francisco Full Time Software Engineer, eve 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.
About
the role: We are looking for a Software Engineer to join the Agent Stack team and help build eve — Vercel's framework for building production-ready AI agents. Eve is to agents what Next.js is to web apps: an opinionated, batteries-included framework that lets developers write only what's unique about their agent and have the platform handle the rest. You will design and implement core framework primitives, contribute to eve's runtime (built on Vercel Workflows, AI SDK, and Sandbox), and help shape the developer experience for the next generation of AI-native applications. You will report to the Director of Vercel's Agent Stack and will be located onsite in New York City . If you're based within a pre-determined commuting distance of one of our offices (SF, NY, London, or Berlin),
the role includes in-office anchor days on Monday, Tuesday, and Friday, even if
the role is listed as remote. For location-specific details, please connect with our recruiting team. What you will do: Design and ship core eve framework features — the file-system conventions, compiler, and runtime that turn an agent directory into a durable, production-ready agent on Vercel. Build and maintain integrations across eve's channel layer (Slack, Web Chat, WhatsApp, API, Cron, and more) and connections layer (Vercel Connect / MCP endpoints). Collaborate with the AI SDK, Workflows, and Sandbox teams to ensure eve's primitives compose seamlessly on the Vercel platform. Drive DX quality — CLI ergonomics, error messages, docs, and examples — so TypeScript/Next.js developers can ship their first agent in minutes. Contribute to eve's evaluation and observability story: test suites, scoring rubrics, and deployment-time evals that make agents production-safe. Partner with early customers and internal teams to gather feedback, diagnose agent reliability issues, and iterate rapidly. About you: 5+ years of production TypeScript/JavaScript experience; comfortable owning complex, stateful systems end to end. Strong understanding of distributed systems concepts — durable execution, checkpointing, async workflows, and failure recovery. Experience building or operating developer tooling, frameworks, or SDKs used by external developers. Familiarity with LLM APIs and agent orchestration patterns (tool calling, multi-agent delegation, human-in-the-loop flows). Track record of shipping high-quality open-source or customer-facing APIs and caring deeply about API design. The New York, NY base pay range for this role is $208,000-$312,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, eve 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"> Preferred 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"> 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 Upload your resume Resume should be a PDF under 3.5MB. 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/ 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 *]:col-span-2"> Agent Stack AI SDK AI Gateway Sandbox Workflows Connect New Passport New eve New Core Platform CI/CD Content Delivery Fluid Compute Observability Security Platform Security WAF Bot Management Bot ID Tools Vercel Drop New Vercel Agent Vercel Plugin New Agent Skills Next.js Domains v0 Frameworks eve New Nuxt SvelteKit Nitro Turborepo Tanstack Start FastAPI xmcp All frameworks SDKs Vercel SDK Workflow SDK New Flags SDK Chat SDK New Queues SDK New Streamdown Build AI Apps Web Apps Marketing Sites Platforms Commerce Platform Engineers Design Engineers Learn Docs Blog Changelog Knowledge Base Academy Articles Community Explore Customers Marketplace Templates Partner Finder Vercel + AWS Company About Careers Press Events Startups Shipped on Vercel Open Source Program Enterprise Pricing Help Legal & Trust Privacy Policy Terms of Service Cookie Policy DPA Acceptable Use Policy Legal (all documents) Trust Center Status Cookie Preferences Social GitHub X LinkedIn YouTube Instagram *]:leading-[var(--geist-form-line-height)] !border-none rounded-none !bg-transparent hover:!bg-gray-100"> Loading status… Select a display theme: system light dark
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.