Process Engineering Positions
2 days ago
Canada
Fog Panther
Full-time
Free with email or Google
Save this job and keep your search organized
Create a free account to save jobs, create alerts and return to this listing from your dashboard.
Free with email or Google
By continuing, you agree to our Terms & Privacy Policy.
Fog Panther is a professional desktop image editor for Linux. We build native packages for the major distributions as well as Flatpak and Snap, and we care deeply about performance, correctness, and a clean native feel on the GNOME desktop.
The work is varied and the bar is high.
We are looking for someone whose instinct, when faced with a hard imaging problem, is to go to the literature, work the maths out on paper, build a small prototype, and prove to themselves that it actually does what they think it does — before a single line of production code gets written.
Survey the literature in the areas where we want to push the product forward: denoising, sharpening, upscaling, segmentation, masking, inpainting, healing, warping, tone mapping, colour, and the long tail of filters and adjustments that a serious image editor needs.
Build prototypes in whatever is fastest — Python, NumPy, SciPy, Julia, MATLAB, Jupyter notebooks. The goal of a prototype is to answer a question, not to ship.
Future-you and the rest of the team will need to understand why the algorithm we shipped is the one we shipped.
Work alongside engineering to land your prototypes in the product. You do not have to write the final production code yourself, but you should be able to explain the algorithm clearly enough that someone else can, and you should care whether the shipped version still does what your prototype did.
Build small test harnesses, golden-image suites, and perceptual metrics so we can tell when a change is actually an improvement and not just a different kind of wrong.
A real foundation in the maths: linear algebra, signal processing, numerical methods, basic optimisation, a bit of statistics and probability. Image processing or computer vision background. Convolution, frequency domain, sampling and reconstruction, interpolation, edge-aware filtering, colour science, gradient-domain methods, variational formulations — these should be familiar territory, not things you would have to look up to use.
Course projects, a thesis, a research role, a side project, an open notebook — we don't care about the venue, we care that you've done it.
Prototyping fluency in Python with the scientific stack (NumPy, SciPy, scikit-image, matplotlib), or a comparable environment (Julia, MATLAB). Reading-level comfort with C or C++. You don't need to be a systems programmer on day one, but you should be able to follow what production code is doing and discuss changes to it with engineering.
We would much rather hear "I tried this and it doesn't reproduce" than ship something fragile.
Nice to have (any of these):
A graduate degree in a relevant field, or equivalent self-taught depth. Published work in image processing, computer vision, computer graphics, or applied mathematics.
Classical computer vision: feature detection, segmentation, optical flow, image registration, structure from motion, inpainting, matting.
Production C or C++ experience.
Photography, retouching, illustration, or another hands-on creative practice. Small team, direct communication, no process theatre.
Research and engineering sit at the same table. We prototype in whatever language gets us the answer, then port the parts that need to be fast.
Location:
on-site in Toronto, Canada. Start date: flexible. #
Location:
on-site in Toronto, Canada. Start date: flexible. #