Skip Navigation
July 10, 2018

This is the story of how I started my little shareware business. It started as a tiny night hobby. I learned how to grow revenue and used it to fund OnTheGoSystems.

By education, I’m an Electrical Engineer. I worked for “high tech” companies doing system, board and chip design. It’s a good line of work, which also pays well.

Since I was very young, I always wanted to have my own business. I remember my first business enterprises at the age of 14. These didn’t really work out, but (in retrospect) were great learning experiences.

When I was approaching 30, we had two babies, loans to pay, kindergartens and what-not. I wasn’t exactly overflowing with time or money. But I still had the entrepreneurial bug in me.

If you need it and others need it and it doesn’t exist, it’s a business opportunity

My job carried me abroad several times a year. We always had to update the kids’ pictures in their passports (yup, they change quickly between 3 months and 3 years). Each of these updates would require new pictures, costing $10 per kid. Being budget-less, I came up with the idea of printing these passport pictures at home. I could get prints for both kids for less than 10 cents. Not bad.

So, I figured that if I need it, others may need it too. This is how I got to write my Passport Photo program. My code would probably not pass “code review” today, but it sure printed valid passport pictures 🙂

I put together a simple website, wrote the payment system (in Python!) and launched.

If you build it, they will come (not)

Everything was great, except for the fact that nobody knew about it, so they didn’t come and they didn’t buy.
But, we’re engineers, so we fix problems.

I registered for an Adwords account and created a few ads. The ads were pretty simple. They went something like:

Need passport pictures?
Print them using your own printer.
Download now

I ran a few variations and selected the ones that got clicks. Really, not rocket science.

Guess what? It worked. People discovered, came, tried and bought. It was wonderful.

Scaling up advertisement and sales

I could see a linear relationship between visits and sales. The more visitors my ads generated, the more money I made.

I increased the daily budget and the bid amount so that my ads would show up more. I also created more ad variations to cover more search terms. Clicks and revenue kept going up every time I found a new “pocket” of relevant searches.

I already saw how I was going to get rich from this little program. I’ll keep adding more ad variations and keep growing my revenue.

And then, I hit an invisible glass ceiling.

Expanding to foreign markets

There are just so many ways people are looking for how to print passport pictures. After a couple of weeks of research, I already covered them all. So, is that it?

Then I realized that almost all my clients are from the US, UK, Canada and Australia. I was selling my program to English-speakers only. Does this mean that Germans don’t travel and don’t want to save on passport pictures? Probably not. It means that I’m not targeting them.

We’re still engineers, so let’s solve this problem like engineers. What would non-English-speakers need in order to buy my passport photo program?

  • Find it
  • Understand that it’s for them
  • Try it
  • Like it
  • Buy it
  • Get some support for it

At this point, I already had a bit of revenue, so I could spend money. The idea is to spend your money so that it generates more revenue. If it generates more than you’ve spent, it’s called a “positive return-on-investment (ROI)” which is a good thing.

If I’m to sell my program to people who don’t speak English, I’d have to translate it to their language. Many Germans speak English, but they still search online in German and they still expect products to be in German.

Making everything translation-ready

I wanted to have my program, website, ads and automated emails in several languages. For that, I’d need to translate them. But I wanted to translate into languages that I don’t speak, so I can’t translate myself.

This means I’d have to hire translators for this job.

My first attempt at working with translators was to send them everything and hope for the best. I wrote “how to translate” instructions, which mainly explain what to avoid. I sent the HTML and Python files of the website and program with these instructions.


The translators broke the HTML, translated class names and IDs, replaced real quotes with MS Word quotes and did a royal mess. There was no way for me to repair their work and make it usable.

From this (expensive) lesson, I learned that translators need to get only the texts. They need to translate texts and return translated texts to me. Nothing more than this. No Python and no HTML. Definitely no.

I extracted all texts from everywhere and saved them in separate files. This way, the source files contain placeholders and translators don’t need to edit them. They will only edit the text files.

I sent these files to the translators and now it worked. With the exception of a few strings that were very long and didn’t fit, everything worked great. Don’t worry. Once they saw how it looked, they quickly provided me with shorter texts that mean the same.

Translating to as many languages as possible

Now that I had a working process for translating everything. I did a quick research and found to which languages I’d better translate.


Using the same Adwords system

The first thing that I translated was the list of keywords. I translated the search terms into a bunch of languages (a lot). Then, I checked in which languages there are many searches for these keywords.

This list of search terms was short, so there wasn’t any problem translating it into a bunch of languages.

Now I knew what’s likely to have a good return. I went ahead and translated the complete package to languages where I could see many searches.

Automating everything

What happens if they need my help?

In English, I can reply quickly, so support isn’t that expensive for me. But when I get questions in Japanese, it’s going to be a real pain to answer.

The solution was to minimize questions by automating everything. Of course, I automated the entire sales process. If you started the purchase in Japanese, you’d see Japanese when you go to pay. The email with your activation instructions will be in Japanese. The program would run in Japanese and you’ll have a user guide in Japanese.

This automation took care of 99% of the work-per-sale. A few clients still needed my help and wrote to me in their languages. I would normally write back in English and also include a machine-translated reply from Google.

It worked!

Free bonus – SEO in other languages is a lot easier

After a few months, my young website started getting links. Some of them I planted (by adding it to directories) and some grew by themselves.

Links mean that Google starts seeing you and starts sending you organic (free) traffic.

I wanted to get organic search traffic in all languages and not only in English.

For this to happen, you should pay attention to SEO while translating. I asked the translators to check how people search in their languages. Then, I told them to use the same wording for the SEO texts. If you’re interested, read more about multilingual SEO.

It worked even better than I’d hoped for.

My English pages were in constant competition with other English content. But the non-English pages performed wonderfully in search results. Turns out that there’s a lot more content on the Web in English. So, when you produce content in other languages it faces less competition and can rank well quickly.

The results

Going global increased my business’ revenue by around x3. This took it out of being a pet project for my evenings. Now, it gave enough monthly income so I didn’t need to continue at my day job. It didn’t pay the same as the salary of a chip designer, but it was enough to cover our expenses.

Now that I could work full-time on my business, it all started happening.

Want to get started?

Translate your software, theme and plugins via ICanLocalize

Use WPML to translate your WordPress site