F
Filigran logo

Senior Software Engineer

France, France
Category
Software & Data
Job Type
Full-time
Experience
Senior
This position may no longer be active

This job posting may have expired or been filled. Please check with Filigran directly, or explore other opportunities.

Job Description

<think> Okay, let's tackle this job description cleanup. The user wants me to preserve the original structure and wording but clean up the markdown formatting. First, I need to go through the provided markdown and identify the sections as per the company's original structure.

The job title is "Senior Software Engineer – OpenCTI @ Filigran". I should keep that as is. Then there are some navigation elements like the logo and links, which I need to strip out according to the rules. The main sections are "Your Mission", "What We're Looking For", "About Us", "Your Profile", etc. Wait, looking at the content, the sections are titled "The Company", "The Role", "Your Responsibilities", "Who You’ll Work With", "Profile We’re Looking For", "Why Join Filigran?", "Compensation & Benefits", "Equal Employment Opportunity", and "Ready to Join Us?".

I need to make sure all these sections are present. The user mentioned to use ### for section headings, so I'll adjust the headers from ## to ###. Also, bullet points should use - instead of

  • or *. The original uses

  • for some bullets, so I'll replace those.

Looking at the "Your Responsibilities" section, the original uses

  • for bullets. I'll change them to -. The same goes for "Profile We’re Looking For" and other sections. Also, check for any bold text using bold. The original has some bold text like "Why Join Filigran? More than just a job." and "CORE values". I need to ensure those are kept as bold.

I should remove any duplicate content, like the title repeated in the body. The original starts with the job title, then the sections. The user said if the description starts with company info, keep it as-is. The "The Company" section is part of the original structure, so it's okay.

Also, need to remove "Apply Now" buttons, social links, legal disclaimers, etc. The last part has the reCAPTCHA notice, which I should remove. The "Equal Employment Opportunity" section is part of the original and should stay.

Check for any markdown formatting that's not needed, like the initial list items with the logo and links. Those are page chrome and should be stripped.

Now, going through each section step by step. The "The Company" section is under the job title. Then "The Role" becomes "Your Mission" as per the user's example. Wait, the original sections don't have the exact headings like "Your Mission", but the user mentioned preserving the company's own sections. Let me check the original content again. The original has "The Company", "The Role", "Your Responsibilities", "Who You’ll Work With", "Profile We’re Looking For", "Why Join Filigran?", "Compensation & Benefits", "Equal Employment Opportunity", and "Ready to Join Us?".

The user's example mentions sections like "Your Mission", but in the provided content, the closest is "The Role" which might correspond to "Your Mission". However, the user says to preserve the company's own section structure. So I should keep the original headings as they are, but adjust the markdown formatting. So "The Company" becomes ### The Company, etc.

Wait, the user's instruction says to preserve the company's own section structure and wording. So if the original has "The Company", "The Role", etc., I should keep those headings. However, the user's example mentions "Your Mission" as a section, but in the provided content, the "The Role" section might be the equivalent. But since the user says to preserve the original sections, I shouldn't change the headings.

Wait, the user's example in the instructions says to preserve the company's own sections like "Your Mission", "What We're Looking For", etc. But in the provided content, the sections are "The Company", "The Role", "Your Responsibilities", etc. So maybe the user expects me to map these to the standard sections. However, the user's instruction says to preserve the company's own structure and wording. Therefore, I shouldn't change the headings.

Wait, the user's instruction says: "Preserve the company's original sections and headings (e.g. "Your Mission", "What We're Looking For", "About Us", "Your Profile", etc.)". So if the original has "The Company", "The Role", etc., but the example uses "Your Mission", "What We're Looking For", etc., perhaps the user expects me to adjust the headings to match those standard ones. However, the user also says to preserve the company's own wording. So maybe the original sections are "The Company", "The Role", etc., and I need to keep those.

But the user's example includes "Your Mission", which might correspond to "The Role" in the original. But since the user says to preserve the original sections, I should keep the original headings.

This is a bit confusing. Let me recheck the user's instructions.

The user says: "Preserve the company's original sections and headings (e.g. "Your Mission", "What We're Looking For", "About Us", "Your Profile", etc.)". So if the original has "The Company", "The Role", etc., but the example uses different headings, perhaps the user expects me to map them. However, the user also says to preserve the company's own wording. So maybe the original sections are as they are, and I should keep them.

But the user's example shows that "Your Mission" is a section. In the provided content, the "The Role" section might be the equivalent. However, the user's instruction says to preserve the company's original sections. Therefore, I should not change the headings.

So, the original sections are:

  • The Company

  • The Role

  • Your Responsibilities

  • Who You’ll Work With

  • Profile We’re Looking For

  • Why Join Filigran?

  • Compensation & Benefits

  • Equal Employment Opportunity

  • Ready to Join Us?

But the user's example includes "Your Mission", "What We're Looking For", etc. However, the user says to preserve the company's own structure. Therefore, I should keep the original sections as they are.

But the user's example might be illustrative. So the actual job description has the sections as listed.

Now, applying the formatting rules:

  • Use ### for section headings

  • Use - for bullet points

  • Use bold where necessary

  • Remove duplicate content

  • Remove "Apply Now" etc.

So, converting the original markdown to use ### for headings, replacing

  • with -, and ensuring bold is preserved.

Also, removing the navigation elements like the logo and links.

The original starts with the job title, then the location, employment type, etc. Those are part of the page chrome and should be stripped.

So the final output should start with the job title, then the sections as they are, with proper markdown formatting.

I think that's the approach. Now, applying this to the content provided. </think>

Senior Software Engineer – OpenCTI

Location

France

Employment Type

Full time

Location Type

Remote

Department

Research & Development

🌀 The Company

Filigran, founded in October 2022, stands out in the cybertech ecosystem for its commitment to revolutionizing cyber threat management with a proactive approach. Its mission is to develop innovative open-source solutions designed to anticipate cyber threats, identify security gaps, and strengthen organizational security posture.

Filigran solutions are now trusted by over 6,000 public and private organizations worldwide.

🎯 The Role

We’re looking for a Senior Software Engineer to join the OpenCTI team and contribute to the core of our open-source platform. In this role, you will work on features and technical topics that are central to how users interact with and rely on OpenCTI.

You will bring strong technical expertise and have a direct impact on the product roadmap, collaborating closely with product, engineering, and community contributors. The role involves working across a modern stack including Node.js, TypeScript, React, GraphQL, and ElasticSearch.

💼 Your Responsibilities

  • Contribute actively to the OpenCTI codebase, with strong ownership of new features and continuous improvements.

  • Identify, investigate, and resolve bugs.

  • Participate in technical brainstorming and task refinement, challenging both new proposals and existing implementations.

  • Take part in the on-call rotation and act proactively during incidents to drive resolution.

  • Mentor junior and mid-level engineers, supporting their technical growth.

  • Address technical debt and legacy pain points.

  • Lead or facilitate technical workgroups to explore and align on engineering topics.

  • Review pull requests from internal teams and the open-source community

  • Contribute to documentation and the shared knowledge base.

🤝 Who You’ll Work With

You will report directly to an Engineering Manager and work closely within a cross-functional squad composed of a Product Owner, a Staff Engineer, and engineers at senior, mid-level, and junior levels.

You will also collaborate regularly with the wider OpenCTI engineering organization, as well as with adjacent product teams such as Integrations, Platform, and Data.

🧬 Profile We’re Looking For

  • 7+ years of experience as a Software Engineer, with solid exposure to complex, production-grade systems.

  • Strong proficiency in a modern JavaScript/TypeScript stack, including Node.js, React, GraphQL, and experience with data-oriented systems such as ElasticSearch.

  • Comfortable working in a remote, async-first environment, with strong written communication skills.

  • Proven ability to work autonomously, take ownership of technical topics, and drive initiatives from design to delivery.

  • A collaborative mindset, with a strong sense of team spirit and a willingness to mentor and support less experienced engineers.

  • Ability to challenge existing solutions, address technical debt, and contribute to long-term architectural improvements.

  • Experience contributing to or working with open-source projects is a strong plus.

  • Bonus: Prior exposure to cybersecurity, threat intelligence, or large-scale data platforms, and knowledge of Rust.

🌱 Why Join Filigran? More than just a job.

We’re a fast-growing, global, and fully remote company on a mission to empower defense teams to be proactive — through open-source solutions that uncover threats and drive action.

  • What we believe
    We believe we do work that matters — uniting defenders into a global community to make security more open, resilient & collaborative.

  • 💻 How we work
    That belief fuels how we work — with focus, clarity and high standards. Always with care and respect, never with ego.

  • 🧭 What guides us
    That focus and care is grounded in our CORE values: Cohesion, Openness, Responsibility, and Equity — the compass that guides our decisions, collaborations, and growth, even when no one’s watching.

💰 Compensation & Benefits

  • Competitive pay + equity — everyone shares in our success

  • Remote-first, flexible, and balanced — work that fits your life

  • Your setup, your choice — pick the gear that works for you

🌍 Equal Employment Opportunity

We enable cybersecurity through inclusion — from code to culture.

At Filigran, we are proud to be an equal opportunity employer. We believe diversity of our people make our products and our team stronger. We welcome talent of every background, identity, and lived experience — regardless of race, color, religion, gender, gender identity or expression, sexual orientation, national origin, age, disability, or veteran status.

What matters here is what you bring — not what you look like, where you’re from, or how you identify.

Posted February 14, 2026

Company Info

F
Filigran logo

Filigran

European cybersecurity company developing open-source extended threat management (XTM) suite includi...

Industry
Cybersecurity
Founded2022
Company Size51-200
HeadquartersParis, France

Other Jobs at Filigran

Similar Opportunities