Product Security Engineer
18 hours ago
New York, United States
Vercel Corp
Full-time
$208,000 - $312,000/year
Free with email or Google
Save this job and keep your search organized
Create a free account to save jobs, create alerts and return to this listing from your dashboard.
Free with email or Google
By continuing, you agree to our Terms & Privacy Policy.
• Security & IT
• New York City, San Francisco
• Full Time Product Security Engineer
• Careers /
• Security & IT
• Security & IT
• New York City, San Francisco
• Full Time About Vercel Vercel is the agentic infrastructure company, freeing people and agents to ship what's next. For more than a decade we've helped builders move from idea to production with speed, security, and exceptional developer experience. Now we're scaling our products for both agents and people to ship and run software, built in the open and trusted by OpenAI, PayPal, Ramp, Supreme, and millions of developers worldwide.
About The Role
We are looking for a Product Security Engineer to build the systems that triage and validate bug bounty and other externally reported security findings, not to work the queue, and this role suits a software engineer moving into security or a security engineer with a strong engineering background. You will build large language model (LLM) and agent-based tooling that validates findings, traces them to their root cause, and opens fixes for well-understood vulnerability classes. This is a hybrid role based in San Francisco or New York City, with three days a week in the office. What You’ll Do
• Build the systems that take in externally reported vulnerabilities and assess validity, severity, and reproducibility at a volume manual triage cannot match
• Build LLM and agent-based analysis that validates business logic, authentication, and design-level findings, not just known signatures
• Build systems that trace validated findings to their root cause and propose, and increasingly open, fixes for well-understood vulnerability classes, with human review gates
• Own the bug bounty program, including scope, policy, and researcher engagement, and feed every resolved report back into automated triage
• Extend the tooling into security testing capabilities that customers can use on what they build and deploy What You Need
• 5+ years of software engineering or security engineering experience, building and shipping production systems or internal tools
• Wrote production code in JavaScript/TypeScript on Node.js, with hands-on experience in web frameworks such as Next.js or React
• Built with LLM or agent-based tooling
• Reproduced and assessed externally reported vulnerabilities, including judging severity Bonus If You
• Built security automation used across an engineering org, not just for your own team
• Built systems that auto-generate or propose code fixes, not just findings
• Tested or secured multi-tenant platforms where customer-built applications run on shared infrastructure Compensation & Benefits
• Competitive compensation package, including equity.
• Inclusive Healthcare Package.
• Learn and Grow
- we provide mentorship and send you to events that help you build your network and skills.
• Flexible Time Off.
• We will provide you the gear you need to do your role, and a WFH budget for you to outfit your space as needed. The San Francisco, CA base pay range for this role is $208,000.00
- $312,000.00. 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. Disclosures
• Privacy: Please review our Job Applicant Privacy Policy for more information on how we handle your data.
• Equal Opportunity: 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 Now. Tell us why you’d be a good fit for the Product Security Engineer role. First Name input]:h-(--ds-size-medium) 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-(--ds-size-medium) 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-(--ds-size-medium) 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 InternationalAfghanistanÅland IslandsAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntigua and BarbudaArgentinaArmeniaArubaAscension IslandAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBonaire, Sint Eustatius and SabaBosnia and HerzegovinaBotswanaBrazilBritish Indian Ocean TerritoryBrunei DarussalamBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongoCongo, Democratic Republic of theCook IslandsCosta RicaCote d'IvoireCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland IslandsFaroe IslandsFederated States of MicronesiaFijiFinlandFranceFrench GuianaFrench PolynesiaGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuernseyGuineaGuinea-BissauGuyanaHaitiHoly See (Vatican City State)HondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsle of ManIsraelItalyJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKosovoKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorth KoreaNorth MacedoniaNorthern Mariana IslandsNorwayOmanPakistanPalauPalestinePanamaPapua New GuineaParaguayPeruPhilippinesPolandPortugalPuerto RicoQatarReunionRomaniaRussiaRwandaSaint BarthélemySaint HelenaSaint Kitts and NevisSaint LuciaSaint Martin (French Part)Saint Pierre and MiquelonSaint Vincent and the GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint MaartenSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth KoreaSouth SudanSpainSri LankaSudanSurinameSvalbard and Jan MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThailandTimor-LesteTogoTokelauTongaTrinidad and TobagoTristan da CunhaTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUruguayUzbekistanVanuatuVenezuelaVietnamVirgin Islands, BritishVirgin Islands, U.
S.
Wallis and FutunaWestern SaharaYemenZambiaZimbabwe 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 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 What is your preferred work location?
* San Francisco (open to relocation)
* New York City (open to relocation)
* Open to either San Francisco or New York City
* Remote preferred/Not open to relocation input]:h-(--ds-size-medium) 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"> 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 Will you require Visa Sponsorship now, or in the future? Yes No 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 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. U.
S. Standard Demographic Questions. At Vercel, we value belonging and believe in fostering an environment where a diversity of perspectives can thrive. As part of this commitment, we invite you to voluntarily provide demographic information. Your responses will be used (in aggregate only) to help us better understand the diversity of our applicants and identify areas of improvement in our recruitment and hiring process. Your responses, or decision not to respond, will be kept confidential and will only be used in aggregate form for diversity and inclusion efforts. This information will not be associated with your specific application and will not be disclosed to the hiring team or used in the hiring decision in any way. Individuals seeking employment are considered without regard to race, color, religion, national origin, age, sex, marital status, ancestry, physical or mental disability, veteran status, or sexual orientation. Asking the below questions help us comply with federal and state Equal Employment Opportunity/Affirmative Action record keeping, reporting, and other legal requirements. How would you describe your gender identity? (mark all that apply) Man Non-binary Woman I prefer to self-describe I don't wish to answer How would you describe your racial/ethnic background? (mark all that apply) Black or of African descent East Asian Hispanic, Latinx or of Spanish Origin Indigenous, American Indian or Alaska Native Middle Eastern or North African Native Hawaiian or Pacific Islander South Asian Southeast Asian White or European I prefer to self-describe I don't wish to answer How would you describe your sexual orientation? (mark all that apply) Asexual Bisexual and/or pansexual Gay Heterosexual Lesbian Queer I prefer to self-describe I don't wish to answer Do you identify as transgender? Yes No I prefer to self-describe I don't wish to answer Do you have a disability or chronic condition (physical, visual, auditory, cognitive, mental, emotional, or other) that substantially limits one or more of your major life activities, including mobility, communication (seeing, hearing, speaking), and learning? Yes No I prefer to self-describe I don't wish to answer Are you a veteran or active member of the United States Armed Forces? Yes, I am a veteran or active member No, I am not a veteran or active member I prefer to self-describe I don't wish to answer Optionally, include links to your social media profiles. LinkedIn input]:h-(--ds-size-medium) 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"> svg]:size-(--ds-control-decoration-size)">linkedin.com/in/ X (Twitter) input]:h-(--ds-size-medium) 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"> svg]:size-(--ds-control-decoration-size)">x.com/ GitHub input]:h-(--ds-size-medium) 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"> svg]:size-(--ds-control-decoration-size)">github.com/ Portfolio input]:h-(--ds-size-medium) 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"> svg]:size-(--ds-control-decoration-size)">https://