About the role
Key ResponsibilitiesAgent Re-Architecture & Development
- Lead the design and re-architecture of cross-platform C++ monitoring agents from the ground up, ensuring modularity, performance, and maintainability.
- Evaluate existing agent codebases, identify technical debt, and define migration strategies to modern C++ standards (C++17/20).
- Implement clean, testable, and high-performance C++ code following established design patterns and SOLID principles.
- Collaborate with architecture and product teams to define agent feature roadmaps and technical specifications.
Filesystem Monitoring
- Design and implement filesystem monitoring components using platform-native APIs: inotify / fanotify (Linux), FSEvents / kqueue (macOS), ReadDirectoryChangesW (Windows), and AIX-specific equivalents.
- Develop efficient file-change detection with minimal overhead, supporting real-time event streams for file create, modify, delete, rename, and permission change events.
- Handle edge cases such as deep directory watches, high-volume event bursts, and symbolic link traversal across platforms.
Process Monitoring
- Build robust process lifecycle monitoring using /proc (Linux), kinfo_proc / sysctl (macOS), toolhelp/PSAPI (Windows), and AIX process accounting APIs.
- Track process creation, termination, CPU/memory consumption, and inter-process relationships (parent-child trees).
- Implement low-latency event notifications for process state transitions without excessive polling.
Registry Monitoring (Windows)
- Implement Windows Registry change monitoring using RegNotifyChangeKeyValue and related Win32 APIs.
- Design efficient registry watch trees with support for key-level and value-level change detection.
- Ensure reliable event delivery and deduplication under high-frequency registry modification scenarios.
Cross-Platform Engineering
- Write platform-abstracted agent core logic with clean OS-specific back-end implementations using preprocessor guards and abstract interfaces.
- Ensure binary compatibility, packaging, and CI/CD pipeline support across Linux (x86_64, ARM), macOS (Intel + Apple Silicon), Windows (x86_64), and AIX (POWER).
- Author platform-specific build configurations using CMake with cross-compile toolchain support.
Required QualificationsCore Technical Skills
- 5+ years of professional C++ development experience, with deep expertise in modern C++ (C++11/14/17 required, C++20 preferred).
- Strong grasp of OS internals: memory management, process scheduling, IPC mechanisms, system calls, and kernel interfaces.
- Proven hands-on experience with filesystem monitoring APIs on at least two of the four target platforms.
- Experience developing cross-platform native software that runs on Linux and Windows (macOS and/or AIX exposure is a plus).
- Familiarity with multi-threaded programming, synchronization primitives (mutexes, condition variables, atomics), and lock-free data structures.
- Strong understanding of build systems — CMake preferred; experience with Makefile-based builds on AIX/Linux.
- Proficiency with debugging and profiling tools: GDB, LLDB, WinDbg, Valgrind, perf, strace/dtrace.
Software Engineering Practices
- Solid experience writing unit and integration tests using frameworks such as Google Test, Catch2, or Boost.Test.
- Comfort with Git-based workflows, code review, and CI/CD pipelines (Jenkins, GitHub Actions, or similar).
- Ability to read, understand, and refactor legacy C++ code with minimal documentation.
Preferred Qualifications
- Experience working with AIX OS internals (POWER architecture, SMIT, ODM, AIX process APIs).
- Exposure to eBPF / kernel tracing mechanisms on Linux for lightweight observability.
- Knowledge of endpoint security, EDR, or SIEM agent architectures.
- Experience with agent-based distributed systems and telemetry pipelines.
- Familiarity with Rust or Go as supplementary system programming languages.
- Contributions to open-source system-level projects are a strong plus.