About the Role
Position Summary
The Senior Software Developer will help us design, build, and test our Rust eBPF agent. Additionally, they will be a core contributor to our other system call related agents.
Key Areas of Responsibility
- Contribute to the architecture, design and development of new security products, features and proof of concept prototypes
- Investigate, perform root cause analysis, and solve complex issues identified in the field
- Perform all the tasks required of a software developer within an Agile SDLC
- Ensure code quality through comprehensive and effective unit and integration testing
- Collaborate with a cross-functional team of developers, product managers and QA engineers, pre-sales engineers and field support engineers
Basic Qualifications
- 3+ years of professional experience in Rust, 8+ in a professional software development role
- Experience with eBPF highly desired
- Experience building and delivering production software.
- Experience working with Linux system calls
- Knowledge of Rust and C/C++ build systems and toolchains; experience handling library compatibility issues
- Understanding of the HTTP protocol
- Experience building performant, thread-safe and memory-safe executables and shared libraries in Rust
- A belief in the importance of unit testing, design patterns and an understanding of common development best practices
- Ability to communicate and transfer knowledge clearly and effectively to both technical and non-technical audiences
- Ability to prioritize and multitask in a fast-paced environment
- A passion for getting to the bottom of issues and eliminating unknowns
- BSc or MSc in computer science or a related degree
Preferred Qualifications
- Understanding of how software security exploits work and experience building software that mitigates them
- Experience building interop layers (native language bindings) between other programming languages and Rust
- Experience with containerized environments (e.g. Docker, Kubernetes)
- Experience with performance testing, penetration testing tools and techniques
Compensation
The anticipated TTC range for this role is 118,377.21 - 157,996.89 - 197,496.11 CAD Annual. The Company reserves the right to ultimately pay more or less than the posted range and offer additional benefits and other compensation, depending on circumstances not related to an applicant’s status protected by local, state, or federal law.
Why Join Us?
Thales provides an extensive benefits program for all full-time employees working 24 or more hours per week and their eligible dependents, including the following:
- Company paid Extended Health, Dental, HSA, Life, AD&D, Short-term Disability, Cancer Care Program, travel insurance, Employee Assistance Plan and Well-Being program.
- Retirement Savings Plans (RRSP, DCPP, TFSA) with a company contribution and a match to a DCPP, with no vesting period.
- Company paid holidays, vacation days, and paid sick leave.
- Voluntary Life, AD&D, Critical Illness.
Requirements
Rust experience
3+ years of professional experience in Rust is required.
Software development experience
8+ years in a professional software development role is necessary.
Linux system calls
Experience working with Linux system calls is essential.
Unit testing
A belief in the importance of unit testing and design patterns is required.
Nice to Have
Experience with eBPF is highly desired.
Experience with containerized environments like Docker and Kubernetes is a plus.
Benefits
Health insurance
Company paid Extended Health, Dental, HSA, Life, AD&D, and Short-term Disability.
Retirement plans
Retirement Savings Plans with company contributions and matching.
Paid time off
Company paid holidays, vacation days, and paid sick leave.