We are seeking an Imaging System Software Engineer for our client in Santa Monica, CA (90405). Experience with C++, Python, and imaging processing and devices are required.
The level of title will be determined case by case, based on the candidate''s qualifications and years of experience: senior engineer, staff engineer, principal engineer or higher.
The Engineer will design components and systems (hardware and software) as part of a complete product subjected to FDA regulations. Your design will be subject to safety and efficacy requirements
Required Qualifications and Abilities:
Educational Background:
- Bachelor''s, Master’s or Ph.D. degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
Technical Skills:
- Programming Languages: Strong proficiency in C++ and Python is essential.
- Image Processing: Solid experience with image processing libraries such as OpenCV, VTK, ITK, or similar.
- Imaging Devices: Experience working with industrial cameras, high-speed optical coherence tomography (OCT), and stereo vision systems.
- Operating Systems: Proficiency in working with Linux is required, including system-level programming and real-time performance optimization.
- Graphics Processing: Experience with GPU programming (CUDA, OpenCL) for accelerating image processing tasks.
Experience:
- 5+ years of hands-on experience in C++ software development with a focus on imaging systems or related fields.
- Hands-on experience with imaging hardware (cameras, OCTs, etc.) and handling high-bandwidth image streams.
- Proven ability to optimize software performance for image acquisition, processing, and rendering in real-time applications.
- Experience with multithreading, multiprocessing, and low-latency communication between software components and hardware devices.
Knowledge:
- Deep understanding of object-oriented programming (OOP) principles and design patterns.
- Strong grasp of algorithms for image processing, including feature extraction, filtering, segmentation, and real-time analysis. Familiarity with debayering, distortion correction, contrast-limited adaptive histogram equalization (CLAHE), etc.
- Familiarity with image compression, optimization techniques, and large-scale image data management.
- Experience with embedded systems and hardware/software integration for imaging devices.
- Familiarity with software and system architecture formality like UML or SysML.
- Proficiency with tools like Git/JIRA/Confluence and platforms like GitHub.
Soft Skills:
- Strong analytical and problem-solving abilities, particularly in optimizing system performance.
- Good communication skills to collaborate with interdisciplinary teams, including software engineers, electrical/mechanical engineers, and product managers.
- Detail-oriented with the ability to manage multiple priorities and meet project deadlines.
Other Requirements:
- Comfortable working hands-on with imaging hardware in a lab or clinical environment.
- Ability to work on-site for hands-on software-hardware integration.
Responsibilities:
Software Architecture, Design and Implementation:
- Design, develop, and maintain C++ code for imaging systems including cameras, OCTs, and other medical imaging devices on Linux platforms.
- Implement efficient, scalable algorithms for image processing and data analysis.
- Develop and optimize software to ensure the real-time acquisition, processing, and visualization of image data.
System Integration:
- Collaborate with hardware engineers to integrate software with imaging devices, ensuring seamless performance in capturing and processing high-quality images.
- Work closely with cross-functional teams to ensure alignment between hardware and software components in the imaging pipeline.
Performance Optimization:
- Profile, benchmark, and optimize image processing pipelines to maximize performance, ensuring low-latency, high-throughput processing on both CPU and GPU.
- Develop strategies for efficiently handling large image datasets, balancing performance with memory and storage constraints.
Testing & Reliability:
- Design and implement automated tests to ensure the stability and reliability of image processing software.
- Debug complex issues related to hardware-software interfaces, and provide innovative solutions to technical challenges.
- Ensure reliability and robustness of software through automated testing and performance monitoring.
Research & Development:
- Stay up to date with the latest trends and techniques in imaging technologies and software optimization.
- Prototype and evaluate new algorithms and technologies to improve the performance and accuracy of our imaging systems.
Please note: This position is not open to 3rd party c2c agencies. No have permanent US work authorization and not require sponsorship now or in the future.