Find Any File — An Interview with Thomas Tempelmann
Thomas Tempelmann explains the file-system knowledge behind Find Any File, the features users requested, and why it remains a one-time purchase.
I discovered Find Any File when I needed a direct way to search for files by name without depending on Spotlight. It became my primary graphical file-search tool and one of the rare Mac apps I have continued using for more than a decade.
For My Mac Apps Story, I asked Thomas Tempelmann about the file system knowledge behind Find Any File, the features users requested, and why he still sells it as a one-time purchase.
Interview by Ighor July for Reverse Everything.
Interview
Ighor July
Does Find Any File involve much reverse engineering?
Thomas Tempelmann
I did not do much reverse engineering for Find Any File. I have a background in file systems, so I know how they work and how to optimize access to them. I have also gotten pointers from smart people such as Jim Luther and others who worked on Apple’s file system team.
Find Any File contains many unique abilities that most users never notice. One example appears when searching the entire boot volume without root privileges. An ordinary recursive search may not discover an accessible directory such as
/System/Volumes/Data/.Trashes/501because one of its parent directories is not browsable by non-root users. Find Any File knows about that deeper directory and searches it directly. That’s an example why FAF finds files that other file search programs don’t.For some reverse-engineering stories unrelated to Find Any File, see the top two stories in this Stack Overflow discussion.
Ighor July
I read those stories, and they are exactly the kind of content I get excited about. It feels like that kind of experience may never be possible again because technology has changed so much since then.
Why does Find Any File have so many hidden settings?
Thomas Tempelmann
Many of the hidden preferences came from users asking for special features that I did not want to expose to everyone, since that would make the regular preferences too cluttered. I want to keep Find Any File simple for people who use it only occasionally while also keeping power users happy.
Ighor July
What motivates you to continue developing and supporting Find Any File after so many years?
Thomas Tempelmann
Find Any File provides a side income that I rely on. I also enjoy getting feedback for my work, which is why I make my products personal instead of hiding anonymously behind a company name.
I also earn a little from another app, iClip, although its popularity has declined because there are many competitors. On the other hand, Find Any File has become popular enough to maintain a good reputation without advertising, which is not one of my strengths.
I have tried to create other apps that would earn money, but none of them has worked out so far. I keep trying, though.
Ighor July
Find Any File has remained a one-time purchase without being replaced by a separately sold new edition or moving to a subscription. What has enabled you to keep supporting existing customers under this model for so long?
Thomas Tempelmann
I have sold software since 1982. The first product (F-Copy II for the C-64) used a “pay-first” model, and the next (Templemon for Atari ST) was shareware, where I offered users a printed manual if they sent me money. The shareware model worked quite well for me - the free availability allowed it to spread wide, yet people who were willing to pay for it could do so.
When I was much younger, I avoided paying for software if I could get it for free. Eventually, I understood that this was unfair to developers, especially when I started trying to make software development my main job. Software prices have also declined since then, making it easier to pay for most software today.
I also learned that trying to fight piracy does not work well. I prefer to use honey instead of the whip.
I do not think a subscription model would be fair for Find Any File because many people do not use it every day. It is a tool they need only occasionally. Many customers, I believe, ask for help in a forum, are told to use Find Any File to locate their lost files, and may then pay for it, but then hardly ever use it again. A subscription would not work for them, while a low one-time fee is more acceptable for what the program did for them in that case.
However, I am considering offering optional Pro features through an additional purchase. These would be features that only frequent users care about, such as faster searching on file servers like NAS devices, or a background program that creates a quickly searchable database of local files. These features would require more user involvement and setup, which someone who uses the app once every two weeks probably would not care about.
I hope to keep both casual and frequent users happy by offering an inexpensive option while reserving the fastest possible experience for an additional price. Even without a Pro license, users would still be able to find everything in a reasonable amount of time.
Ighor July
How has user feedback influenced development? Were there any important features, changes, or decisions that came directly from users?
Thomas Tempelmann
I continually add hidden preferences to satisfy special user requests. The move from Xojo, formerly REALbasic, to Objective-C around 2018 came from many users asking for more modern features. AppleScript support was different. I added that for myself so I could better automate testing. I am also adding a single-window interface for version 3, which users frequently request.
I added scripted searches, where a rule runs as a Lua or JavaScript script, after realizing that users had special search requirements that the fixed set of rules could not satisfy. For example, someone might want to find files that have a companion file with a different extension in the same directory. I can now quickly make a Lua script for them, and they are happy.
Ighor July
What advice would you give to independent developers who hope to maintain and support their apps for ten years or longer?
Thomas Tempelmann
Keep your users happy. Even if they ask for features you do not want to implement or cannot implement, show that you understand what they want and politely explain why you cannot fulfill the request, even if the reason is simply that you do not have enough time or the effort would not be worthwhile.
When possible, add small things, even if you would not find them useful yourself. Users will tell others and praise your effort and reliability. That is how I still have a near-perfect five-star rating on the Mac App Store.
This interview is part of the developer interview series connected to My Mac Apps Story, Part 3.