Staff Software Engineer, C++ (Patching)
About the Role
We are hiring a Staff C++ Software Engineer to join our growing team developing NinjaOne’s automated endpoint management suite of software products, trusted by over 40,000 customers globally. You will develop high-impact software products used daily by IT teams and MSPs (managed service providers) to monitor, manage, and secure endpoints at scale.
About the Patching Team
Patching engineers own the full lifecycle of keeping endpoints up-to-date, from detecting available patches to safely applying them and rebooting. The work spans OS patches across multiple platforms (Windows Update, macOS software update, Linux package managers) and third-party application updates (3PP). As a Staff Engineer on this team, you'll work on our C++ agent repo — the software that runs directly on customer devices with elevated system privileges to detect, install, and validate patches across Windows, macOS, and Linux. This means working close to the metal with system-level APIs, building resilient install and rollback logic, and reading and acting on policy owned by our mainline platform team. You'll be one of the most senior technical voices on the C++ side of Patching, helping shape architecture and mentoring other engineers as the team continues to grow.
Location
We are flexible on remote working from home if you are located in the USA and reside in one of the following states: CA, CO, CT, FL, GA, IL, KS, MA, MD, ME, NJ, NC, NY, OR, TN, TX, VA, and WA. We have physical offices in Austin, TX and Tampa, FL if you prefer a hybrid option.
Technical Environment
NinjaOne is built on Java, Kotlin, C++, Golang, and Postgres, supporting millions of user endpoints and running as a scalable cloud service in AWS. Experience with large-scale datastore bottlenecks, asynchronous application design, and client-server architecture will be beneficial.
Responsibilities
- Review code for correctness, maintainability, and architectural health
- Mentor and guide senior and mid-level engineers on the team
- Identify process gaps, propose fixes, and drive them through to completion
- Collaborate cross-team with mainline, catalog, and other patching squads on shared ownership and integration points
- Translate roadmap priorities and customer needs into sound technical design
- Other duties as needed
Requirements
- Bachelor’s Degree in Computer Science, Engineering, Information Technology, or related technical field
- 10+ years of C++ development experience, with Modern C++ (C++17 and above)
- Experience in cross-platform development (Windows/macOS/Linux – Win32 API, POSIX)
- Experience with gRPC / Protocol Buffers
- Experience with SQLite / embedded database patterns
- Experience with CMake
- Proficiency working with Qt and Vcpkg is a strong plus
About Us
NinjaOne unifies IT to simplify work for nearly 40,000 customers in 140+ countries. The NinjaOne Unified IT Operations Platform delivers endpoint management, autonomous patching, backup, and remote access in a single console to improve efficiency, increase resilience, and reduce spend. By automating IT and managing all endpoints, organizations give employees a great technology experience at work. NinjaOne is obsessed with customer success and has retained a 98% customer satisfaction score for more than 5 years.
Benefits
- Comprehensive benefits package including medical, dental, and vision insurance
- 401(k) plan
- Unlimited PTO
- Opportunities for growth and advancement
Pay
Starting pay for the successful applicant depends on a variety of job-related factors, including location, market demands, experience, job-related knowledge, and skills. For roles based in California, Colorado, Maryland, New Jersey, or Washington, the base salary hiring range is $150,000 to $240,000 per year. For roles based in New York, the base salary hiring range is $150,000 to $240,000 per year.
This position is not eligible for visa sponsorship. Due to operational policies, NinjaOne is unable to hire for this role within the city limits of Chicago. We will consider all qualified candidates who reside outside of the city proper or are willing to self-relocate.