Open Positions

Required: C or Rust (able to write and debug basic programs)
Required: Linux/Unix
Plus: Lua/Python
Plus: suricata/snort/bro, infosec in general
Part Time (16h/w+) or Full time

Tasks: develop Suricata, triage & analyze bugs reported by users, fix or escalate bugs, develop new features.

Learning opportunities: learn how to use and support Suricata. Learn interaction with open source community. Learn operating in a virtual team. Improve C skills. Learn to use Lua, Python and Rust. Attend various Suricata trainings, both for users and developers.

This person works to fix bugs, and develop new features of limited size and complexity. Also assist other developers with their larger change sets. Together with ‘support staff’ triage bugs, fixing them where possible or escalating them where necessary.

Day to day workflow: working under guidance of Management & Senior level devs. Work on high priority tickets.

Required: One or more years of C or Rust and Python
Required: Linux/Unix
Required: infosec experience
Plus: suricata/snort/bro
Plus: Lua
Part Time (16h/w+) or Full time

Tasks: develop Suricata, assist ‘junior’ in triaging bugs. Develop new features. Perform code review for team and community contributions.

Learning opportunities: same as ‘junior’, plus: code reviews, designing features and/or solutions to issues. Work independently. Attend various Suricata trainings, both for users and developers. Assist trainers.

Growth opportunities: opportunity to grow into subsystem maintainer. Starting by maintaining smaller components within a subsystem.

This person works to fix more complex bugs and develops new features under guidance of management. SuriCon roadmap is leading here. Assist ‘junior’ in fixing issues.

Required: 5+ years C. Be able to interact with community easily. Work independently. Perform code reviews.
Plus: 1+ Rust, 3+ Python.
Plus: already made contributions to Suricata’s code base
Full time (32h/w+)

Tasks: develop complex new features. Refactoring of subsystems. Maintain one or more subsystems (e.g. ‘packet capture’, or ‘stream engine’). Perform code reviews for team and community. Assist team in triaging complex bugs/issues. Help improve development processes and overall quality of the project.

Growth opportunities: become a (dev) trainer. Become part of leadership team. Help guide & interact with advisory council. Present work at SuriCon and 3rd party conferences as an OISF representative or personally where applicable.

This person works on major new features such as new detection capabilities, complex new protocols and performance optimizations. The Suricata roadmap as created at the SuriCon conference determines for a large part what we work on. Suggest and discuss designs and design choices. Assist rest of the team in addressing complex issues, helping with code review.

Core Suricata Developers

These roles/jobs are for work on the Suricata program itself. Suricata is written mostly in C, which a growing share of Rust code.

Required skills: Python, Linux/Unix, Bash, CI tools (e.g. buildbot, jenkins, gitlab-ci)
Plus: experience with Suricata/Snort/Bro/tcpdump/wireshark
Plus: experience with development tools like gcc, clang, scan-build, fuzz testing and/or other relevant code quality tools

Tasks: develop and maintain suricata-verify, help manage the Suricata CI efforts and implement security related QA steps.

Suricata-verify is a Python tool to streamline testing many features of Suricata. Both the tool itself, and development of new test cases, is part of this. On the CI side Suricata uses a mix of public tools, such as Travis CI and AppVeyor, combined with private tools and tests, such as a buildbot instance.

Part-time: 12-20h/week

Required skills: Suricata, Linux/Unix, good communicator via email, chat and phone.
Plus: experience in open source communities
Plus: experience with doing professional support

Tasks: First responder to support requests in the redmine ticketing, on the mailing lists and through our other public and private support channels such as the official commercial Support program that is currently in a pilot phase.

Update FAQ documents and general documentation based on questions and feedback. Triage issues, collect necessary information for further processing.

Supporting Development Roles

These roles/jobs are for work on the Suricata program itself. Suricata is written mostly in C, which a growing share of Rust code.

How to apply

There are several ways to apply. You can send us your resume. Make sure to include FOSS experience (if any) and also specify what you are looking for in this work. Send your email to info@oisf.net, or reach our through Contact

You can also join the community as a volunteer contributor first. Start helping out in the community, with documentation, bugs, feature development, etc. Please let the team know you’re willing to join, so that we can help you with feedback and guidance on those tasks.

Questions

If you have questions or want to apply, please email us at info@oisf.net, or reach out to us through Contact