Software Development Engineer, C++ - Server Integrations

3 days agoFull-time
180K - 220K USD / 年 Network Optix

Network Optix

location Los Angeles
unsaved
Network Optix (Nx) 是一家全球领先的视频软件开发公司,致力于赋能智能视频解决方案和产品的创建,能够将视频转化为可操作的数据。经过十多年的发展,Network Optix 企业视频操作系统帮助创新型组织快速且经济地构建世界级、量身定制的企业级视频产品和解决方案。 Nx 总部位于加利福尼亚州的 Walnut Creek,并在加州的 Burbank、俄勒冈州的 Portland、塞尔维亚的贝尔格莱德、台湾的台北等地设有分支机构,全球各地还分布着区域团队。我们连续 9 年被评选为 Inc 5000 快速成长公司,致力于跨部门和全球扩展团队。 Network Optix 的目标是推动全球最智能的视频解决方案,最终目标是开辟一条革命视频技术领域的道路,改变我们对周围世界的认知。 我们的团队负责服务器开发中的重要部分 - 摄像头支持。不同的摄像头制造商有自己的协议来与设备进行配合(基于 IP、基于 TCP/UDP、基于 HTTP、基于 SOAP、基于 ONVIF 等各种文本和二进制协议)。集成团队负责调查和支持这些协议,常常进行逆向工程。工作中有相当一部分是在本地和远程设备上使用 Wireshark 调查错误。 我们的软件运行在各种硬件和操作系统上。我们使用 C++20/23、cmake、conan 和 git 编写高效的可移植代码。 你将要做的事情: • 检查各种摄像头 API,并为不同的厂商创建摄像头插件 • 维护和改善服务器端的摄像头支持 • 与核心服务器团队合作,改善摄像头与服务器的交互 • 调查 Wireshark 日志和服务器日志,以修复来自技术支持的错误 • 与设备制造商互动,改善他们的 API • 重构现有代码并增加测试覆盖率(单元测试和功能测试) • 审查团队其他成员的代码 研究领域: 开发的主要方向包括(每个方向使用数十种协议): • 摄像头搜索 • 获取摄像头能力 • 摄像头配置 • 摄像头控制 • 接收媒体流 • 接收视频分析数据 一些需要获取、配置和控制的摄像头功能: • 音频/视频源 • 音频/视频编码器 • PTZ(平移-倾斜-缩放)能力 • 高级功能(雨刷、加热器等) • 扬声器 • IO 端口功能 • 安全功能(门铃、锁、警报) 我们支持的现代摄像头高级视频分析功能: • 事件(越线、徘徊等 - 超过 50 种) • 物体跟踪和分类 • 识别(车牌、面部等) • 分析设置(绘制兴趣区域等) 所需经验与技能: • 具备大型代码库的经验,能够支持当前代码库 • 在多线程环境中对 C++17/20 有扎实背景 • 深刻理解网络协议栈,具备异步网络编程经验 • 具备使用 Wireshark 调查网络流量的经验 • 具备调试和解决问题的能力 • 理解面向对象编程和软件设计模式 • 能够编写高效和可移植的代码 • 具备实施单元测试和功能测试的经验 加分项: • 熟悉 Qt 6 • 了解 C++23/26 • 具备 Windows 和 Linux 的跨平台经验,包括嵌入式设备 • 理解 Windows/Linux 的内部结构 • 具备基本的系统管理技能 • 具备 Web 服务、SOAP 和 ONVIF 的经验 混合工作: 该职位理想上是一个混合角色,办公室位于加州 Burbank。工作不能完全远程进行,因为需要与设备(摄像头、对讲机、NVR、IP 扬声器)进行互动。