Stanford, California, USA
12 days ago
Software Developer 1

In addition to the application, the candidates must submit a statement of interest (a couple of paragraphs will suffice) explaining their suitability for the position and long-term career interests to adubra@stanford.edu.


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.


This position is for a full-time in-person (no remote work) software developer that will work on the implementation of modules and applications with C++, Python and LabView FPGA components for custom ophthalmic instrumentation and image processing. The work will not use artificial intelligence, machine learning, programming for the cloud, internet of things, web applications, or security. The successful candidate will assist in the design and assembly of custom computers for high-performance applications, such as image acquisition, low-latency pupil tracking, adaptive optics control and image processing. He/she/they will observe and understand all stages of ophthalmic image capture, processing and analysis to assist in the design of overall strategy and technical approaches for a streamlined pipeline with maximum automation.  Our custom instruments are deployed at Stanford and collaborating academic centers, and the candidate will assist with the installation and troubleshooting of our custom software as needed. All the software will be kept in an Azure DevOps repository that will eventually transition to open-source.


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

DESIRED QUALIFICATIONS: Bachelor's degree in computer science or computer engineering  • Object-oriented programming, C, C++ and Python proficiency. • Experience LabView, LabView FPGA, CUDA, CuPy, OpenGL/Vulkan and/or SWIG are highly desirable. • Familiarity with Azure DevOps and/or GitHub automation. 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 • Must be able to assemble, disassemble and troubleshoot computer and electronics equipment (e.g., must be able to lift and carry an oscilloscope). * - 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 their job. WORKING CONDITIONS: May work extended hours, evening and weekends,  in particular when required for grant submission and/or conference presentation/submission deadlines.

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.

Additional Information Schedule: Full-time Job Code: 4821 Employee Status: Regular Grade: I Requisition ID: 105158 Work Arrangement : On Site
Confirm your E-mail: Send Email