In 2000 I was programming mainly in PL/SQL and I was constantly being interrupted coding to stop and create test files for programs. I took it upon myself to build a tool on my own time that would fill this need. I quickly realized that there were no free or off-the-shelf programs to do what I wanted. Since necessity is the mother of invention , I decided to use my SQL and PL/SQL skills to create a tool to produce pseudo random data at a vastly accelerated rate. It was written entirely in PL/SQL and SQL for Oracle (So yes it was not completely platform agnostic).
Later on as I mastered Java I created a full blown GUI and custom XML based tag language to build the basis for a plugin type application. Person A could give me the specs for one type of file (Address book entries for example) and Person B could give me the specs for a cook book etc. Then I needed to write custom tags for the different specs and the program did the rest.