Hi, I'm

Dominik Ficek

Software Scientist at Thermo Fisher Scientific

I write the software that gets the most out of scanning electron microscopes. My work spans physics simulation of electrons, detectors and optics, crystallography, and the image processing and automation that run on the instrument.

Portrait of Dominik Ficek

About

A bit about me

Dominik Ficek outdoors

I'm a software scientist at Thermo Fisher Scientific in the Czech Republic, working on scanning electron microscopes. My background is in computer vision, machine learning and mathematical modeling, and in 2022 I graduated with honors from Brno University of Technology with a master's degree in Cybernetics, Control and Measurement.

What I enjoy most is the whole path from an idea to working software. My biggest strength is how quickly I adapt and learn: I pick up new concepts on the fly and apply them straight away, which comes in handy when a project leads somewhere unfamiliar.

Outside of work I like to travel and explore other cultures and natural sites, ideally with some diving along the coast. At home you'll usually find me gardening, cooking, tinkering with my computer, playing games or watching movies, and every now and then I bake a cake.

Based in
Czech Republic
Degree
MSc, Brno University of Technology
Currently
Software Scientist, Thermo Fisher Scientific

Experience

Work and education

Work experience

  1. 2022 to present

    Software Scientist

    Thermo Fisher Scientific

    I'm part of a small team that prototypes new technology for scanning electron microscopes. Over the years I've worked on challenging image processing and automation, imaging and custom metrology, and modeling of detectors and electron optics. Today much of my work is in physics simulation, optical aberrations and crystallography, especially electron backscatter diffraction (EBSD).

  2. 2021 to 2022

    Master's Thesis: Sign Language Interpretation

    Brno University of Technology

    Automatic recognition of American Sign Language from the interpreter's hand and face pose, followed by avatar interpretation of the recognized signs in Czech Sign Language. Part of the work was presented at the EEICT student conference, where it won a sponsor award and the best paper award. The thesis also received the Dean's award for an outstanding thesis.

Education

  1. 2020 to 2022

    Master's in Cybernetics, Control and Measurement

    Brno University of Technology

    Specialized in computer vision, machine learning and image processing. I led several student projects in these fields, such as automatic bee counting at a beehive and automatic calibration of fused RGB, depth and thermal cameras for a medical robotic manipulator.

  2. 2017 to 2020

    Bachelor's in Automation and Measurement

    Brno University of Technology

    A broad introduction to automation, programming, electronics and mathematics. My bachelor's thesis focused on 3D camera localization from markers placed at known positions, one of the building blocks of augmented reality.

Skills

What I work with

Languages 4

Python

My go-to for prototyping, data exploration and visualization, proofs of concept and research code. The scientific Python stack and JAX let me test an idea within hours instead of days.

C++, Rust & Zig

For production: turning proven prototypes into fast, reliable software, optimizing the hot paths and working close to the hardware when performance really matters.

Domains 6

Computer Vision & Image Processing

Turning images into measurements and decisions, from image quality improvement, automated navigation and metrology in microscopy to pose estimation and camera calibration.

Machine Learning

Detection, recognition and pose estimation models, taken from training and evaluation all the way to running in real applications.

Modeling

Describing how real systems behave, with physical models of hardware or models identified from measurements, so a process can be simulated, predicted and controlled.

Algorithm Optimization

Making working algorithms fast: vectorizing and JIT compiling with JAX, moving heavy computation to the GPU and rewriting critical parts in C++, Rust or Zig.

Mathematics & Physics

The foundation under everything else: linear algebra, geometry, optimization, signal processing and the physics needed to simulate real systems, including Monte Carlo methods.

System Design

Designing technical solutions with maintenance and scalability in mind, from data acquisition to the final result, along with the testing that keeps connected parts working together.

How I work

  1. 01

    Idea

    Every project starts with a problem worth solving. Before any code is written, I work out what is really needed, what success looks like and which constraints matter.

  2. 02

    Research

    I go through the state of the art and the relevant scientific literature and pick out the approaches that actually fit the problem.

  3. 03

    Proof of Concept

    A quick prototype tests the most promising approach on real data. It's cheap to throw away and shows early whether the idea holds up.

  4. 04

    Design

    Once the idea has proven itself, I turn it into a concrete technical design together with the team, weighing the options against the constraints in open design discussions.

  5. 05

    Implementation

    I turn the prototype into efficient, tested production code and optimize the critical parts where performance matters.

Projects

Notable projects

Applications

Things you can try

Contact

Say hello

I'm always happy to talk about simulation, image processing or building scientific software, so feel free to reach out.