Despite being so purely functional, I cant help but feel nostalgic when using FileZilla.

How did FileZilla come about?

As a school project, actually.

We spoke with developer Tim Kosse about how and why he created FileZilla some 15 years ago.

So FileZilla actually started as a school project, is that right?

Sadly I dont remember the details anymore how we eventually settled on an FTP client.

After you came up with the idea, what was the next step?

With the GUI design we did imitate the basic layout of other graphical FTP clients known to us.

For the backed functionality we used some third-party FTP classes.

Gradually I added features and fixed the bugs as they surfaced.

At some point I also started with FileZilla Server to complement the client.

How did you choose which platforms to target and which to ignore or wait on?

At some point however I wanted to extend onto other platforms and Linux in particular.

Furthermore I kept improving FileZilla Server during this time.

Nonetheless, the rewrite has been a success.

What was your biggest roadblock and how did you overcome it?

Its more like an endless collection of needless speed bumps that has hampered me most.

FTP is a rather old protocol with lots of history and legacy functionality.

Parts of FTP are specified in great detail while other parts are being left unspecified.

Further, FileZilla might be the only client that makes use of this command.

As result, FileZilla cannot be used to exchange files with such a server.

In these situations I spend a lot of time and effort to determine the root cause of the problem.

When this happens in other open-source FTP software I usually write a patch that fixes the issue.

Furthermore, the underlying problem would remain unfixed.

Thus I made an important decision: I wont implement any workarounds if it would compromise security or performance.

Still, I strongly believe that solving the root cause of a problem is the correct thing to do.

Theres little value in implementing a feature that would be better suited to other types of programs.

The first is reliability.

Each feature needs to work as advertised in all conceivable usage scenarios.

The second aspects is performance and scalability.

Naturally FileZilla should be as fast as possible, nobody likes to wait longer than necessary on a task.

When implementing a feature I always consider what happens if somebody would use it to the extreme.

After it lived beyond its academic purpose, what was launch like for you?

Yes, the initial release had been very quiet.

Eventually the first users tried out FileZilla and sent valuable feedback.

I kept improving FileZilla and in turn the user base kept growing with every release.

I had never expected this much success, but it keeps me motivated to continue with the project.

Fun fact: The early versions from 2001 still function on a modern Windows 10 machine.

Were there ever any thoughts of trying to sell it or monetize it somehow?

Ive never considered selling FileZilla as a viable option.

However I am participating in SourceForges DevShare partnership program to generate revenue.

How do you handle user requests and criticisms effectively?

Problem reports I triage immediately.

If it turns out to be a bug in FileZilla itll likely be fixed in the next release.

I find it important to maintain a coherent product vision, so feature requests are dealt with differently.

Many features would go orthogonal to the product vision, implementing them would quickly move FileZilla out of focus.

This already filters out many feature requests.

Now, how do you split time between developing new features and managing existing ones?

I always aim to have a bit of both in every new release.

On average Id say that two thirds of my development time are spent to implement new features.

While FileZilla still looks the same as it always did, a lot has changed under the hood.

What advice would you give to others that want to take on a similar project?

Be persistent and maintain a sharp product vision.

Release early and release often to find out which of your focus areas need improvement or could be extended.

Last but not least, use for yourself what you have created.

Have someone youd like to see featured?