Software Development Engineer (Agent Security)
Fortinet · Sunnyvale, CA · 1 mo ago
HybridEngineering$130k–$160k/yrFull-time
We need to output HTML fragment with sections: headings for sections like About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We must only include sections that have real specific content. The posting includes:
- Job title: Senior Software Engineer (Agent Security) (do not repeat as heading)
- Responsibility: Build AI security solutions... etc. That's responsibilities.
- Requirements: list of bullet points.
- Strong Plus: additional nice-to-have.
- Must be authorized to work in the U.S. without sponsorship.
- Salary range: $130,000-$160,000.
- Benefits: description.
- Also "Why Join Us", "About Us", EEO etc. We need to remove boilerplate: EEO, equal-opportunity, scam-warning, navigation, cookie, legal, application instructions. Also "Why Join Us" maybe considered fluff but contains some content about supportive work environment, total rewards, etc. Might be considered boilerplate? The instruction: Remove cookie/navigation/legal/EEO/equal-opportunity/scam-warning boilerplate, duplicated lines, and application instructions. "Why Join Us" is not explicitly listed but could be considered promotional; but it's not EEO etc. Might keep if substantive. However we should prefer few substantive sections over many thin ones. Could combine "Why Join Us" and "About Us" into maybe "About the company" but not required. The instruction says use headings for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So we should map content to those headings if applicable.
We have:
- About the role: could be the initial description (Responsibility). Actually "Responsibility" is a heading. We'll use
for sections like About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We must only include sections that have real specific content. The posting includes:
- Job title: Senior Software Engineer (Agent Security) (do not repeat as heading)
- Responsibility: Build AI security solutions... etc. That's responsibilities.
- Requirements: list of bullet points.
- Strong Plus: additional nice-to-have.
- Must be authorized to work in the U.S. without sponsorship.
- Salary range: $130,000-$160,000.
- Benefits: description.
- Also "Why Join Us", "About Us", EEO etc. We need to remove boilerplate: EEO, equal-opportunity, scam-warning, navigation, cookie, legal, application instructions. Also "Why Join Us" maybe considered fluff but contains some content about supportive work environment, total rewards, etc. Might be considered boilerplate? The instruction: Remove cookie/navigation/legal/EEO/equal-opportunity/scam-warning boilerplate, duplicated lines, and application instructions. "Why Join Us" is not explicitly listed but could be considered promotional; but it's not EEO etc. Might keep if substantive. However we should prefer few substantive sections over many thin ones. Could combine "Why Join Us" and "About Us" into maybe "About the company" but not required. The instruction says use headings for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So we should map content to those headings if applicable.
We have:
- About the role: could be the initial description (Responsibility). Actually "Responsibility" is a heading. We'll use Responsibilities
with the bullet list of duties.
- Requirements: we have bullet list of requirements.
- Qualifications: maybe education etc. Could combine with Requirements? But we have separate "Requirements" and "Qualifications" headings possible. The posting includes "Bachelor’s degree or above..." that's qualification. Also "3+ years of backend development experience..." that's requirement. Could split.
- Skills: maybe "Strong software engineering skills in Python or Go..." etc. Could be skills.
- Benefits: we have benefits description.
- Pay: salary range.
- Schedule: not mentioned; we should not create Schedule section if not present.
- About the role: maybe a short paragraph summarizing role. Could use "About the role" heading with the first sentence: "Build AI security solutions for enterprise customers." But we already have Responsibilities.
We need to avoid filler like "commensurate with experience". Not present.
We must preserve ALL substantive information; do not invent or summarize away detail. So we need to include all bullet points exactly as given, but we can format as - . Must not omit any.
Let's extract substantive content:
From posting:
**Responsibility** (actually heading "Responsibility"):
- Build AI security solutions for enterprise customers.
- Design and implement security controls for agentic AI systems, including agents, tools, and agent-to-agent interactions.
- Work cross-functionally with PM and QA teams to deliver secure and scalable solutions.
- Develop pre-sales and post-sales tools and environments to support customer evaluations, deployments, troubleshooting, and integration.
- Research emerging technologies and security trends to identify new opportunities and develop innovative solutions.
**Requirements**:
- Strong software engineering skills in Python or Go, or in a systems language such as Rust or C/C++.
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
- Solid understanding of application and network protocols, such as HTTP, gRPC, and WebSocket, and/or hands-on experience with reverse proxies, API gateways, or identity-aware proxies.
- Self-drive and proactive with strong problem-solving and debugging skills and a focus on delivering high-quality solutions.
**Strong Plus** (nice-to-have):
- Hands-on experience with the agentic AI ecosystem, including MCP, tool calling, and agent frameworks.
- Experience with LLM and agent security, including areas such as prompt injection, tool poisoning, jailbreaks, and agent security controls.
- Background or professional experience in cybersecurity, particularly application security, network security, identity, or API security.
- Must be authorized to work in the U.S. without sponsorship.
**Pay**:
- The US base salary range for this full-time position is $130,000-$160,000.
- Wage ranges are based on various factors, including the labour market, job type, and job level. Exact salary offers will be determined by factors such as the candidate's subject knowledge, skill level, qualifications, experience, and geographic location.
- All roles are eligible to participate in the Fortinet equity program.
- Bonus eligibility is reviewed at the time of hire and annually at the Company’s discretion.
**Benefits**:
- Fortinet offers employees a variety of benefits, including medical, dental, vision, life and disability insurance, 401(k), 11 paid holidays, vacation time, and sick time, as well as a comprehensive leave program.
**Why Join Us** (maybe keep as "About the role"? but we already have responsibilities). Could treat as "About the role" or "About the company". The instruction says use headings like About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. So we could map:
- About the role: maybe a brief summary: "Senior Software Engineer (Agent Security) role at Fortinet focusing on AI security solutions." But we must not invent. Could use the first sentence from Responsibility? That's already in responsibilities. Might be redundant.
Better to include sections: Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay. For Qualifications we could include education and experience (Bachelor's degree, 3+ years). For Skills we could include language skills, protocols, etc. For Strong Plus we could treat as "Preferred Qualifications" but not in list; maybe we can add as "Skills" or "Qualifications". However we must not create sections without real content. We have content for Strong Plus, so we could make a section "Preferred Qualifications" but not in allowed headings. The instruction says use headings for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). It doesn't forbid other headings, but says "use
for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule)". It implies those are examples; we could still use other headings if needed, but better to stick to those. We can map Strong Plus to "Skills" or "Qualifications". Let's decide:
- Qualifications: education and experience (Bachelor's degree, 3+ years backend, etc.)
- Skills: language skills (Python/Go/Rust/C++), protocols understanding, problem-solving, etc.
- Preferred qualifications (Strong Plus) could go under "Skills" as additional skills, or we could add a separate "Preferred Qualifications" heading but not in list; maybe better to add under "Skills" as bullet points.
We also have "Must be authorized to work in the U.S. without sponsorship." That's a requirement; could be under Requirements.
We need to preserve all info. Let's structure:
Responsibilities
- ... each bullet
Requirements
- ... each bullet from Requirements list
Qualifications
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
But we already used 3+ years in Requirements; maybe better to keep all under Requirements and not duplicate. The instruction says preserve ALL substantive information; we can keep them under Requirements and not duplicate. So we might not need Qualifications separate. But we have to decide.
We could combine education and experience under Requirements; then Skills for language/protocols; Benefits; Pay.
Let's extract:
Requirements list (as given):
- Strong software engineering skills in Python or Go, or in a systems language such as Rust or C/C++.
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
- Solid understanding of application and network protocols, such as HTTP, gRPC, and WebSocket, and/or hands-on experience with reverse proxies, API gateways, or identity-aware proxies.
- Self-drive and proactive with strong problem-solving and debugging skills and a focus on delivering high-quality solutions.
Strong Plus:
- Hands-on experience with the agentic AI ecosystem, including MCP, tool calling, and agent frameworks.
- Experience with LLM and agent security, including areas such as prompt injection, tool poisoning, jailbreaks, and agent security controls.
- Background or professional experience in cybersecurity, particularly application security, network security, identity, or API security.
- Must be authorized to work in the U.S. without sponsorship.
We could treat Strong Plus as "Preferred Qualifications" but not in allowed headings; maybe we can add a section "Skills" that includes both required and preferred skills. However we must not lose the distinction? The instruction says preserve ALL substantive information; we can keep them all under Skills, but we might lose the "Strong Plus" label. But we could keep the bullet points as is; the label is not essential info. The info is the bullet points themselves. So we can put them under Skills.
Thus:
Skills
- Strong software engineering skills in Python or Go, or in a systems language such as Rust or C/C++.
- Solid understanding of application and network protocols, such as HTTP, gRPC, and WebSocket, and/or hands-on experience with reverse proxies, API gateways, or identity-aware proxies.
- Self-drive and proactive with strong problem-solving and debugging skills and a focus on delivering high-quality solutions.
- Hands-on experience with the agentic AI ecosystem, including MCP, tool calling, and agent frameworks.
- Experience with LLM and agent security, including areas such as prompt injection, tool poisoning, jailbreaks, and agent security controls.
- Background or professional experience in cybersecurity, particularly application security, network security, identity, or API security.
- Must be authorized to work in the U.S. without sponsorship.
But we also have Bachelor's degree and 3+ years experience; those are qualifications not skills. Could put them under Requirements.
Thus:
Responsibilities
...
Requirements
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
Skills
... as above (including language skills, protocols, problem-solving, agentic AI, LLM security, cybersecurity background, work authorization)
Benefits
for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule)". It implies those are examples; we could still use other headings if needed, but better to stick to those. We can map Strong Plus to "Skills" or "Qualifications". Let's decide:
- Qualifications: education and experience (Bachelor's degree, 3+ years backend, etc.)
- Skills: language skills (Python/Go/Rust/C++), protocols understanding, problem-solving, etc.
- Preferred qualifications (Strong Plus) could go under "Skills" as additional skills, or we could add a separate "Preferred Qualifications" heading but not in list; maybe better to add under "Skills" as bullet points.
We also have "Must be authorized to work in the U.S. without sponsorship." That's a requirement; could be under Requirements.
We need to preserve all info. Let's structure:
Responsibilities
- ... each bullet
Requirements
- ... each bullet from Requirements list
Qualifications
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
But we already used 3+ years in Requirements; maybe better to keep all under Requirements and not duplicate. The instruction says preserve ALL substantive information; we can keep them under Requirements and not duplicate. So we might not need Qualifications separate. But we have to decide.
We could combine education and experience under Requirements; then Skills for language/protocols; Benefits; Pay.
Let's extract:
Requirements list (as given):
- Strong software engineering skills in Python or Go, or in a systems language such as Rust or C/C++.
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
- Solid understanding of application and network protocols, such as HTTP, gRPC, and WebSocket, and/or hands-on experience with reverse proxies, API gateways, or identity-aware proxies.
- Self-drive and proactive with strong problem-solving and debugging skills and a focus on delivering high-quality solutions.
Strong Plus:
- Hands-on experience with the agentic AI ecosystem, including MCP, tool calling, and agent frameworks.
- Experience with LLM and agent security, including areas such as prompt injection, tool poisoning, jailbreaks, and agent security controls.
- Background or professional experience in cybersecurity, particularly application security, network security, identity, or API security.
- Must be authorized to work in the U.S. without sponsorship.
We could treat Strong Plus as "Preferred Qualifications" but not in allowed headings; maybe we can add a section "Skills" that includes both required and preferred skills. However we must not lose the distinction? The instruction says preserve ALL substantive information; we can keep them all under Skills, but we might lose the "Strong Plus" label. But we could keep the bullet points as is; the label is not essential info. The info is the bullet points themselves. So we can put them under Skills.
Thus:
Skills
- Strong software engineering skills in Python or Go, or in a systems language such as Rust or C/C++.
- Solid understanding of application and network protocols, such as HTTP, gRPC, and WebSocket, and/or hands-on experience with reverse proxies, API gateways, or identity-aware proxies.
- Self-drive and proactive with strong problem-solving and debugging skills and a focus on delivering high-quality solutions.
- Hands-on experience with the agentic AI ecosystem, including MCP, tool calling, and agent frameworks.
- Experience with LLM and agent security, including areas such as prompt injection, tool poisoning, jailbreaks, and agent security controls.
- Background or professional experience in cybersecurity, particularly application security, network security, identity, or API security.
- Must be authorized to work in the U.S. without sponsorship.
But we also have Bachelor's degree and 3+ years experience; those are qualifications not skills. Could put them under Requirements.
Thus:
Responsibilities
...
Requirements
- Bachelor’s degree or above in Computer Science or a related field, or equivalent practical experience.
- 3+ years of backend development experience, including cloud-native infrastructure, networking, and building reliable services at scale.
Skills
... as above (including language skills, protocols, problem-solving, agentic AI, LLM security, cybersecurity background, work authorization)
Fortinet offers employees a variety of benefits, including medical, dental, vision, life and disability insurance, 401(k), 11 paid holidays, vacation time, and sick time, as well as a comprehensive leave program.
Pay
The US base salary range for this full-time position is $130,000-$160,000. Wage ranges are based on various factors, including