The Dubra Lab at Stanford University is seeking a highly motivated software developer to create an automated ophthalmic image processing and analysis pipeline, as well as custom novel retinal imaging instrumentation. The resulting software and hardware will be deployed across premier academic centers in the US and Europe to advance our understanding, diagnosing and management of ocular, neurodegenerative and systemic diseases and conditions. This will require the implementation and optimization of novel and sophisticated image algorithms in C++, Python, LabView, OpenGL and CUDA. The candidate must have a bachelor's degree in Computer Science or Computer engineering. Expertise in designing, developing, testing, and deploying C++ applications using Microsoft Visual Studio is required. Familiarity with the following is highly desirable: Microsoft Team Foundation Server (now Azure DevOps Server), GitHub, Python, SWIG and CUDA. Experience programming hardware such as cameras, frame grabbers, motors, etc. is desirable but not required. The applicant must be experienced with CPU multi-threading and GPU parallel processing programming, as well as profiling and performance optimization.
If appointed, the applicant would collaborate closely and be mentored by colleagues with expertise in firmware, middleware, business logic, user interfaces and databases. Exposure to such a diverse set of technical challenges is an opportunity for acquiring and developing new skills, at the cutting edge of almost all the technologies used in the lab, and thus, provide a strong foundation for a career in R&D. Although not required, the applicant would be able to work hands on with optical instrumentation and develop practical experimental skills.
The candidate would be part of a highly collaborative and welcoming multidisciplinary team with optical designers, computer engineers, vision scientists, students and staff of various backgrounds as well as physicians. If desired, the applicant would have opportunities to present their contributions at conferences and submit for publication in peer-reviewed scientific journals.
Duties include:
• Assess user needs and requirements.
• Design and develop applications that may involve sophisticated data manipulation.
• Maintain and update existing programs.
• Troubleshoot and solve technical problems.
• Create programs to meet reporting and analysis needs.
• Design and implement user and operations training programs.
• Document changes in software for end users.
• Follow team software development methodology.
• Serve as technical resource with respect to applications.
* - Other duties may also be assigned
**The job duties listed are typical examples of work performed by positions in this job classification and are not designed to contain or be interpreted as a comprehensive inventory for all duties, tasks, and responsibilities. Specific duties and responsibilities may vary depending on department or program needs without changing the general nature and scope of the job or level of responsibility. Employees may also perform other duties as assigned.
EDUCATION & EXPERIENCE (REQUIRED):
Bachelor's degree and three years of relevant experience or a combination of education and relevant experience.
KNOWLEDGE, SKILLS AND ABILITIES (REQUIRED):
• Working knowledge of latest software and design standards.
• Ability to define and solve logical problems for technical applications.
• Knowledge of and ability to select, adapt, and effectively use a variety of programming methods.
• Ability to recognize and recommend needed changes in user and/or operations procedures.
• Basic knowledge of software engineering principles.
• Strong knowledge of at least one programming language.
CERTIFICATIONS & LICENSES:
None
PHYSICAL REQUIREMENTS*:
• Constantly perform desk-based computer tasks.
• Frequently sit, grasp lightly/fine manipulation.
• Occasionally stand/walk, writing by hand.
• Rarely use a telephone, lift/carry/push/pull objects that weigh up to 10 pounds
* - Consistent with its obligations under the law, the University will provide reasonable accommodation to any employee with a disability who requires accommodation to perform the essential functions of his or her job.
The expected pay range for this position is $107,423 to $133,600 annually.
Stanford University provides pay ranges representing its good faith estimate of what the university reasonably expects to pay for a position. The pay offered to a selected candidate will be determined based on factors such as (but not limited to) the scope and responsibilities of the position, the qualifications of the selected candidate, departmental budget availability, internal equity, geographic location and external market pay for comparable jobs.
At Stanford University, base pay represents only one aspect of the comprehensive rewards package. The Cardinal at Work website (https://cardinalatwork.stanford.edu/benefits-rewards) provides detailed information on Stanford’s extensive range of benefits and rewards offered to employees. Specifics about the rewards package for this position may be discussed during the hiring process.
Consistent with its obligations under the law, the University will provide reasonable accommodations to applicants and employees with disabilities. Applicants requiring a reasonable accommodation for any part of the application or hiring process should contact Stanford University Human Resources by submitting a contact form.
Stanford is an equal employment opportunity and affirmative action employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, protected veteran status, or any other characteristic protected by law.