- 地点
- 桑尼维尔,美国
- 工作方式
- 现场办公
- 类型
- 全职
- 资历
- staff
职责
- 设计和开发强大的多线程 C++ 嵌入式 Linux 软件基础架构、库和工具套件,以在异构硬件环境中实现模块化、可配置和可重用的边缘计算架构。
- 为计算密集型应用(包括机器学习推理、感知算法和其他高性能工作负载)设计和开发分布式计算框架、数据传输机制和基于图的执行管道。
- 定义、分析和优化 GPU/CPU 流水线和多节点系统的端到端计算性能,包括延迟、吞吐量、抖动、内存带宽、功耗、散热行为、资源利用率和确定性。
- 开发自动化测试、可重复的基准测试工作流程和 CI 集成,以维护性能基线、防止回归,并为架构和产品设计决策提供经验证据。
- 与硬件、平台软件、应用软件、算法和系统工程团队合作,确定架构要求、性能目标、集成策略和可重用框架功能。
- 通过指标、结构化日志、健康监控、性能监控和分析工具等共享机制,提高软件的模块化、可移植性、检测性、可观测性和现场诊断能力。
- 创建高质量的技术文档,记录架构决策、设计理念、权衡取舍和实施原则。
必备要求
- 在异构边缘计算系统、分布式计算框架、中间件、库或平台级服务的嵌入式软件基础设施的设计和开发方面拥有丰富的经验。
- 拥有丰富的现代 C++、高级 Linux 系统软件开发以及 Linux 内核(包括调度、内存管理、并发、进程间通信、网络、日志记录和存储)方面的实践经验。
- 深入理解分布式系统设计概念,包括数据流、调度、同步、资源管理、故障处理、可观测性、可扩展性、可靠性和可维护性。
- 具备在嵌入式或资源受限系统中进行 GPU 应用开发、CUDA 编程、GPU 执行模型以及 CPU/GPU 性能分析和优化的实践经验。
- 了解 ML 推理框架(例如 TensorRT),以及在嵌入式系统上部署 ML/AI 工作负载的实际考虑因素。
- 具备 Python 和 shell 脚本(如 Bash)的实际软件开发经验。
- 具备较强的解决问题和分析能力,能够独立分析复杂的系统问题,并找出软件、硬件、集成和性能问题。
- 能够与跨职能团队有效合作,并将产品、系统和应用程序需求转化为可重用的软件架构。
- 需持有计算机科学、电气/计算机工程或相关专业的学士学位,并至少拥有7年行业经验;或持有硕士学位,并至少拥有5年行业经验。
- 5年以上使用机器学习模型开发嵌入式系统的行业经验。
优先条件
- 具备为嵌入式系统构建可扩展、生产就绪的边缘计算、分布式计算、数据流、图执行或机器学习推理管道的经验。
- 熟悉 NVIDIA Nsight Systems、Nsight Compute、基于 eBPF 的工具或类似系统分析工具等性能分析工具。
- 具备系统可观测性方面的经验,包括指标收集、跟踪、结构化日志记录、健康监控和可视化工具。
- 了解网络安全最佳实践、安全加固策略和安全软件开发实践。
- 熟悉计算机视觉、机器人、医学成像或机器学习项目从概念到部署的整个过程。
Responsibilities
- Design and develop robust multi-threaded C++ embedded Linux software infrastructure, libraries, and toolkits to enable modular, configurable, and reusable edge computing architecture in heterogeneous hardware environments.
- Design and develop distributed computing frameworks, data transport mechanisms, and graph-based execution pipelines for compute-intensive applications, including machine learning inference, perception algorithms, and other high-performance workloads.
- Define, analyze, and optimize end-to-end compute performance of GPU/CPU pipelines and multi-node systems, including latency, throughput, jitter, memory bandwidth, power, thermal behavior, resource utilization, and determinism.
- Develop automated tests, repeatable benchmarking workflows, and CI integration to maintain performance baselines, prevent regressions, and provide empirical evidence for architecture and product design decisions.
- Collaborate with hardware, platform software, application software, algorithm, and systems engineering teams to define architecture requirements, performance targets, integration strategies, and reusable framework features.
- Improve software modularity, portability, testability, observability, and field diagnostics through shared mechanisms such as metrics, structured logging, health monitoring, performance monitoring, and profiling tools.
- Create high-quality technical documentation capturing architecture decisions, design rationale, trade-offs, and implementation principles.
Must Have
- Extensive experience in design and development of embedded software infrastructure for heterogeneous edge computing systems, distributed computing frameworks, middleware, libraries, or platform-level services.
- Extensive hands-on experience with modern C++, advanced Linux system software development, and Linux kernel (including scheduling, memory management, concurrency, inter-process communication, networking, logging, and storage).
- Deep understanding of distributed system design concepts, including data flow, scheduling, synchronization, resource management, fault handling, observability, scalability, reliability, and maintainability.
- Hands-on experience with GPU application development, CUDA programming, GPU execution models, and CPU/GPU performance analysis and optimization in embedded or resource-constrained systems.
- Knowledge of ML inference frameworks (e.g., TensorRT) and practical considerations for deploying ML/AI workloads on embedded systems.
- Hands-on software development experience with Python and shell scripting (e.g., Bash).
- Strong problem-solving and analytical skills, with ability to independently analyze complex system issues and identify software, hardware, integration, and performance problems.
- Ability to collaborate effectively with cross-functional teams and translate product, system, and application requirements into reusable software architectures.
- Bachelor's degree in Computer Science, Electrical/Computer Engineering, or related field with at least 7 years of industry experience; or Master's degree with at least 5 years of industry experience.
- 5+ years of industry experience developing embedded systems with machine learning models.
Preferred
- Experience building scalable, production-ready edge computing, distributed computing, dataflow, graph execution, or machine learning inference pipelines for embedded systems.
- Familiarity with profiling tools such as NVIDIA Nsight Systems, Nsight Compute, eBPF-based tools, or similar system analysis tools.
- Experience with system observability, including metrics collection, tracing, structured logging, health monitoring, and visualization tools.
- Knowledge of cybersecurity best practices, security hardening strategies, and secure software development practices.
- Familiarity with computer vision, robotics, medical imaging, or machine learning projects from concept to deployment.
公司简介
一切始于一个简单的想法:如果手术创伤更小、术后恢复更轻松,那会怎样?近30年后,这个问题依然是我们Intuitive公司一切工作的动力。作为机器人辅助手术和微创治疗领域的全球领导者,我们的技术——例如达芬奇手术系统和Ion系统——已经改变了全球数百万患者的生活。我们是由工程师、临床医生和创新者组成的团队,我们拥有一个共同的目标:让手术更智能、更安全、更人性化。每一天,我们的工作都在帮助医疗团队更精准地完成手术,帮助患者更快康复,从而改善全球的医疗效果。我们所解决的问题需要创造力、严谨性和协作精神。这项工作充满挑战,但意义深远——因为我们所做的每一项改进都有可能改变一个人的生活。如果你准备好为比你自身更伟大的事业做出贡献,并帮助改变医疗保健的未来,那么你将在这里找到你的使命。