Software Engineer
Full time Posted April 11, 2026
About Fog Panther
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.
We are a very small team. The work is varied and the bar is high.
What you'll do
- Design and implement features end to end, from data model through UI.
- Profile and optimise performance-critical code paths.
- Improve interoperability with common image and document formats.
- Build new tools and filters for working with images.
- Help with packaging, desktop integration, and releases when it's your turn.
- Write tests and keep the ones we have green.
What we're looking for
Required:
- Strong C. You should be comfortable reading and writing idiomatic C, reasoning about ownership, lifetimes, and undefined behaviour without a borrow checker holding your hand.
- Solid grasp of 2D graphics fundamentals: premultiplied vs straight alpha, colour spaces, blending, sampling, gamma, ICC profiles. You don't need to know all of it, but you should know what you don't know.
- Experience with at least one large C or C++ codebase. You can navigate unfamiliar code, find the right place to make a change, and respect the conventions already in place.
- Comfort with Linux as a primary development environment, the command line, git, and a real build system.
- Care about correctness. We'd rather ship slowly than ship a corruption bug into someone's file.
Nice to have (any of these):
- GTK4, GObject, or GLib experience.
- Cairo, Pango, or other 2D rendering stacks.
- Image format internals.
- Colour management.
- SIMD, threading, or GPU compute for image processing.
- Packaging for deb, rpm, Arch, Flatpak, or Snap.
- Reverse engineering or interop work with proprietary file formats.
How we work
- Small team, direct communication, no process theatre.
- Code review on everything. We explain the why, not just the what.
- We write things from scratch when the alternative is dragging in a dependency we'd have to fight forever. We use libraries when they earn their keep.
- We document non-obvious decisions and commit messages.
Practical details
- Location: on-site in Toronto, Canada. This is not a remote role. You must already be authorised to work in Canada — we are not able to sponsor visas.
- Compensation: competitive, depends on experience. Tell us what you need.
- Start date: flexible.
How to apply
Send an email with:
1. A short note about why this project interests you. Skip the cover letter boilerplate. One or two paragraphs is plenty.
2. Links to code you've written that you're proud of. Personal projects are fine. If your best work is closed-source, describe it.
3. Optional: a small sample of work that shows how you think about a hard problem, in any language.
We read every application ourselves. No recruiters.
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.
We are a very small team. The work is varied and the bar is high.
What you'll do
- Design and implement features end to end, from data model through UI.
- Profile and optimise performance-critical code paths.
- Improve interoperability with common image and document formats.
- Build new tools and filters for working with images.
- Help with packaging, desktop integration, and releases when it's your turn.
- Write tests and keep the ones we have green.
What we're looking for
Required:
- Strong C. You should be comfortable reading and writing idiomatic C, reasoning about ownership, lifetimes, and undefined behaviour without a borrow checker holding your hand.
- Solid grasp of 2D graphics fundamentals: premultiplied vs straight alpha, colour spaces, blending, sampling, gamma, ICC profiles. You don't need to know all of it, but you should know what you don't know.
- Experience with at least one large C or C++ codebase. You can navigate unfamiliar code, find the right place to make a change, and respect the conventions already in place.
- Comfort with Linux as a primary development environment, the command line, git, and a real build system.
- Care about correctness. We'd rather ship slowly than ship a corruption bug into someone's file.
Nice to have (any of these):
- GTK4, GObject, or GLib experience.
- Cairo, Pango, or other 2D rendering stacks.
- Image format internals.
- Colour management.
- SIMD, threading, or GPU compute for image processing.
- Packaging for deb, rpm, Arch, Flatpak, or Snap.
- Reverse engineering or interop work with proprietary file formats.
How we work
- Small team, direct communication, no process theatre.
- Code review on everything. We explain the why, not just the what.
- We write things from scratch when the alternative is dragging in a dependency we'd have to fight forever. We use libraries when they earn their keep.
- We document non-obvious decisions and commit messages.
Practical details
- Location: on-site in Toronto, Canada. This is not a remote role. You must already be authorised to work in Canada — we are not able to sponsor visas.
- Compensation: competitive, depends on experience. Tell us what you need.
- Start date: flexible.
How to apply
Send an email with:
1. A short note about why this project interests you. Skip the cover letter boilerplate. One or two paragraphs is plenty.
2. Links to code you've written that you're proud of. Personal projects are fine. If your best work is closed-source, describe it.
3. Optional: a small sample of work that shows how you think about a hard problem, in any language.
We read every application ourselves. No recruiters.