Primary Function of Position
As a Senior Software Engineer, you will work on the design and development of system software and digital applications for the latest hardware targeting end-users involved in surgical robotic procedures. The successful candidate must excel in an agile, focused, small-team environment and commit to high-quality research prototypes and supporting infrastructure. A strong sense of shared responsibility and shared reward is required.
Essential Job Duties
- This position is responsible for all aspects of system software development, associated tooling, and infrastructure to explore and build a novel telesurgery system.
- Design, build, debug, and deploy real-time applications using C, C++, C#, Matlab, and Python on platforms like Linux, Windows, and real-time operating systems.
- Characterize and integrate a high-bandwidth, ultra-low-latency communication interface to develop a real-time tele-op system.
- Develop a modular, robust, fail-safe, ultra-low latency embedded streaming application.
- Build compelling prototypes to demonstrate the technical feasibility and to define the product roadmap.
- Construct a software pipeline to synchronize, encrypt, and transmit over a network efficiently.
- Participate in software architecture discussions, code reviews, and user studies design.
- Responsible for unit testing and integrating the code for function testing, robustness, and reliability.
- Cross-functional requirements discussions, ranging from customer-facing clinical needs to safety requirements.
- Translating early requirements into prototype implementations to evaluate and assess a novel and sophisticated robotic system.
- Apply good software engineering practices to write elegant, maintainable, reusable code.
- Create documentation for the developed features and techniques that were tried, rejected, or implemented.
Required Skills and Experience
- Proven track record in building real-time embedded systems, real-time applications, and/or embedded software.
- Experience with industrial embedded OS (e.g., Yocto, QNX) and cross-compilation is a plus
- Demonstrated proficiency in C, C++, C#, Python, and MATLAB.
- Experience with multi-threaded and multi-processor/multi-core systems.
- Hands-on experience with network interface and streaming protocols such as UDP, RTP, SRTP, SSL/TLS, and GStreamer.
- Experience with publish/subscribe architectures, REST interfaces, and interprocess communications.
- Hands-on experience building tools and software to evaluate network performance, characterize throughput, and efficiently interface with high-bandwidth networks.
- Proficiency in profiling and debugging system software to optimize performance.
- Strong communication skills and a commitment to collaborative team success.
- Exceptional programming skills with a deep understanding of software engineering principles and methodologies.
- Disciplined approach to debugging with a persistent attitude towards solving problems.
Required Education and Training
- Minimum Master’s degree or above in Computer Science, Computer Engineering, or a similar technical field. Advanced degrees preferred.
- A minimum of 8 years of experience developing and supporting embedded systems (or 5 years with a PhD).
Preferred Skills and Experience
- Hands-on engineering experience with proven ability to work effectively in a team environment.
- Ability to build and maintain relationships across supported organizations.
- Experience in all phases of the product development lifecycle, including design, implementation, debugging, verification, validation, and transfer to manufacturing.
- Knowledge of serial-arm robot kinematics.
- Knowledge of classical and modern servo control systems.
- Experience building digital applications interfacing with the latest AI/ML models.
- Experience with medical device software development life cycle is a plus
- Experience designing software products in a regulated industry or for mission-critical applications
- Experience with concepts of design input, design output, traceability, risk analysis, and mitigations.