Software Engineer | Smart Microscope Control Software Development (Chan Zuckerberg Biohub in SF)


Dear Colleagues,

My lab at the Chan Zuckerberg Biohub in San Francisco is booting up!
We will build smart lightsheet microscopes and other cool instruments to advance the initiatives at the CZ Biohub. The lab will be highly interdisciplinary with projects at the interface between Artificial Intelligence, Biology and Optics.

For this purpose, I am hiring a Software Engineer with a taste for smart microscopy, real-time image processing and analysis, deep learning, controlling hardware, robotics, visualization, etc…
My current smart microscopy software stack is 95% Java and a bit of OpenCL and OpenGL here and there…
If you are interested please apply here:

If you know someone who might be interested please forward this job ad, Thanks!

Btw, I am also hiring a biologist and a physicist:

Dr. Loic Alain Royer
Group Leader, Chan Zuckerberg Biohub
Twitter: @royerloic

Lab Vision:

The Discovery Machine Lab led by Loic Royer at the Chan Zuckerberg Biohub will design and build lightsheet microscopy based ‘discovery machines’ that will not only acquire image data, but also perform online processing, instant 3D visualization, adaptive imaging, and automated photo-manipulation. These integrated instruments bring together state of the art optics, robotics, machine learning, and image analysis with the aim of building comprehensive atlases of development and modeling complex cellular choreographies.


We are looking for a Software scientist or engineer that will help write hardware microscope control software and deep learning based image analysis algorithms.

What we provide:

  • The resources to conceive disruptive technology and obtain ground-breaking results to advance knowledge of cell biology.
  • Collaborative environment with access to talent and resources of the Biohub platforms
    (Bioengineering, Genome Editing, Data Sciences, and Advanced Imaging).
  • Access to collaborators, resources and facilities at Stanford, Berkeley and UCSF.
  • Competitive compensation and benefits commensurate with experience.
    On site free snacks and beverages :slight_smile:


  • Maintain a large Java code-base (> 10 interdependent projects, >100’000 loc) together with a growing international community (FiJi, ImgLib2, ClearVolume, ClearControl, Scenery, …)
  • Interface Java framework with C/C++ device drivers
  • Write software to control robotic systems
  • Write new or integrate existing image processing, image analysis, control algorithms
  • Write or adapt real-time deep learning algorithms for microscopy
  • Maintain and improve JavaFX based GUIs
  • Collaborate with Lab’s microscope builder on instrument control
  • Collaborate with the Biohub’s Bioengineering team on instrument control
  • Collaborate with the Biohub’s DataScience on backend storage and processing


Experience in live fluorescence microscopy and computational optics is highly desired. The candidate should be willing to learn new skills and knowledge, think creatively and show enthusiasm while engaging in risky but potentially rewarding projects.


  • Programming is your first language and you love to build software and/or control robots
  • At least 5 years of Java programming experience and have the know-how to handle large collections of large and interdependent projects (>20 projects >1000 classes)
  • Familiarity with the FiJi / ImageJ / ImgLib2 / ClearVolume / KNIME ecosystem
  • Experience with large Java software engineering projects and familiarity with tools and frameworks such as: Gradle and Eclipse.
  • Computer vision and image processing experience
  • Experience in controlling hardware via device drivers using C/C++ libraries interfaces
  • GPU-based (OpenCL) image processing and analysis algorithms
  • Software and hardware interfacing


  • C++/ Labview / OpenCL / OpenGL
  • Computer Graphics: 3D Volume rendering
  • Notions of Digital and analog electronics for instrument control
  • Robotics
  • Physics knowledge, ideally optics and mechanics
  • Signal processing