Software Development Engineer, C++
Network Optix (Nx) is a global powerhouse in video software development, driven by a mission to empower the creation of intelligent video-based solutions and products capable of converting video into actionable data. Over a decade in the making, the Network Optix Enterprise Video Operating System helps innovative organizations rapidly and affordably build world-class, custom-tailored, enterprise-scale video products and solutions.Nx is headquartered in Walnut Creek, California, with additional locations in Burbank, California, Portland, Oregon, Belgrade, Serbia; Hague, Netherland; Taipei, Taiwan, and regional teams distributed across the globe. Recognized on the Inc. 5000 Fastest Growing Companies list for 9 years running, we are committed to expanding our teams cross-functionally and globally.Network Optix aims to power the world's most intelligent video solutions, with the ultimate goal of carving a path toward revolutionizing the landscape of video technology and transforming how we perceive the world around us.About the TeamOur team is responsible for a large part of the server-side development — camera integration and support. We work with a wide variety of camera manufacturers, each using different protocols (IP-based, TCP/UDP, HTTP, SOAP, ONVIF, and various proprietary text and binary protocols).The integration team investigates and supports these protocols, often performing reverse engineering. A significant part of the work involves debugging issues on local and remote devices using tools like Wireshark.Our software runs on a wide range of hardware and operating systems. We build efficient, portable solutions using modern C++ (C++20/23), along with CMake, Conan, and Git.What You'll Be DoingExamine various camera APIs and develop plugins for different vendorsAdd support for new cameras and devices (NVRs, DVRs, intercoms, IP speakers, etc.)Implement support for new camera features and capabilitiesMaintain and improve camera support on the server sideCollaborate with the core server team to enhance camera-server interactionInvestigate Wireshark logs and server logs to diagnose and resolve issues reported by technical supportTroubleshoot complex problems, including server crashes and device-specific issuesInteract with device manufacturers to improve and stabilize integrationsRefactor existing code and increase unit and functional test coverageParticipate in code reviewsAssist the Support team in analyzing complex field issuesDomain / Areas of WorkEach integration typically involves working across multiple protocols and includes:Camera discoveryCapability detectionConfiguration managementDevice controlMedia stream handlingVideo analytics data processingCamera Features You'll Work WithAudio/video sources and encodersPTZ (pan-tilt-zoom)Advanced hardware features (wipers, heaters, etc.)Speakers and IO portsSecurity features (doorbells, locks, alarms)Advanced Video AnalyticsEvent detection (line crossing, loitering, etc., 50+ types)Object tracking and classificationRecognition (license plates, faces, etc.)Analytics configuration (regions of interest, rules, etc.)What you bringExperienceExperience working with large codebases and maintaining existing systemsStrong experience in C++17/20, including multi-threaded and asynchronous programmingExperience with Windows and Linux C++ toolchainsExperience analyzing network traffic (e.g., Wireshark)Solid understanding of OOP and software design patternsStrong debugging and problem-solving skillsExperience writing unit and functional testsExperience with web services, SOAP, and ONVIF (desirable)Experience with Qt 6 (desirable)Technical SkillsAbility to write efficient, portable C++ code in a multi-threaded environmentStrong understanding of asynchronous programmingAbility to work with and evolve an existing codebaseExperience with CMake and GitBasic system administration skillsExperience working with issue tracking tools (e.g., Jira)KnowledgeStrong knowledge of C++17/20 and STL (C++23/26 is a plus)Understanding of algorithms and data structuresKnowledge of concurrent programmingSolid understanding of memory management (low-level and high-level)Understanding of Windows and Linux internalsDeep understanding of OOP and design patternsStrong understanding of networking fundamentals and HTTPNice to HaveCross-platform development experience (Windows/Linux, including embedded systems)Familiarity with BoostUnderstanding of device-level integrations and video systemsExperience working with analytics from vendors (e.g., Uniview, Vivotek)Familiarity with modern AI-assisted development tools (e.g., code generation, static analysis, or developer productivity tools)What we offerCompetitive compensationPaid time offFlexible working hoursHybrid work in our brand-new comfortable officeEmployer-sponsored health coverageWorking with top industry experts in our international teamThe position is ideally a hybrid role in one of our offices located in Taipei, Taiwan; Hague, Netherlands; Burbank, CA; Walnut Creek, CA and Portland, OR; Belgrade, Serbia.Please note: We do not accept unsolicited resumes from third-party recruiters or staffing agencies. Any unsolicited resumes sent to our employees or submitted to our careers page or job postings without a formal agreement in place will be considered property of Network Optix, and no fees will be paid in the event that candidate is hired by the company.Base pay range$180,000—$250,000 USDNetwork Optix is an equal opportunity employer committed to diversity and inclusion in the workplace. We celebrate the diversity of our workforce, which includes people of all cultural, national, racial, gender identities, and those who have served in the military. We strive for an environment where creativity and collaborative growth thrive. If you have a disability or special need that requires accommodation, please let us know.CCPA disclosure notice