About me

Early years

I started tinkering with computers when I was 12. I was instantly hooked. It was the most wondrous thing that this little machine could do so many different things. I soon started teaching myself to program in BASIC. Mostly from magazines and books. No-one I knew could program, so there was no-one to ask for help. These days I'm the one getting asked for help.

After BASIC I learned Pascal. It was such a great leap forward. My first proper Pascal project was to create the Turtle Graphics program. I did it one school holiday. I think I was in standard 6 at the time

Then I met someone who actually did programming for a living. He introduced me to C. It was a very short trip to learn C, although it was a dangerous language. I still remember corrupting my Stacker TSR in DOS, and losing everything on the hard drive.

Of course, C++ was the next logical step. I can't tell you how at home I felt with Object Orientated Programming. It just felt right. This was when I wrote my first commercial application. My dad worked for Spoornet, and he needed a program to control stock in the stores. I wrote the program in Turbo C++, using the Paradox database. I was in standard 9 when I wrote the program (in 1991). They kept on running the program until 1999, and stopped using it, because it was not Y2K compliant. And after that they switched to SAP.

First jobs

After school I studied part time at Unisa, and took some jobs to pay for university. My first job was as a data capturer at a recruitment agency. It was good for me to see how IT systems were used in the real world. I also saw that I could write programs better then most "professionals".

Then I started at a consultancy as a support technician. I worked in a small team and supported a Point of Sale system for a large chain of book retailers. This was written in Clipper, and I did lots of small mods to make the customers happy.

First large project

One day my boss said that he wants to start his own business to write a Point of Sale system of his own. Immediately I was on-board. And so we started a new company. Young, and full of energy, we started developing the software.

What distinguished our software from the competition was that it ran under Windows, and that it used a Relational Database to store information. The Windows part made it a lot more user friendly for the customers. And the Database part made it very robust and kept the data in integrity.

It was pretty hard in the beginning, with developing software, and making sales. But as time went by, the product became more stable, and more feature rich. This software is still in use today, and the company has just been bought by the biggest software provider in the Retail market in South Africa. I even do some work for them from time to time.

The big one

I teamed up with a company called EXECuLINK. They were in the business of Inventory Optimization, and used software tools to help them achieve their goals at the clients. Their current tool was getting long in the tooth, so they were busy developing a new one. However, their new tool was taking too long to develop, and they needed something new.

I started working with them on creating a new tool that was supposed to only be used in small clients. We called it Optimiza, and we installed it at the first customer within six months after we started developing it. Well, it was a resounding success and we started adding more and more features to it.

Pretty soon Optimiza could do everything any of our clients needed, and the original project was scrapped. Optimiza was now the only product the company sold. Right now there is someone, somewhere in the world using Optimiza. It is installed in over 400 clients world wide, and it manages billions of dollars of inventory

New age

I started becoming interested in web development, because I believe that in the end the web will be the platform for all computing. My first project was to write a Business Intelligence tool for retailers. It was my first big application for the web, and I wrote it in PHP. Retail Analyza imports transaction data from retailers, and aggregates it into it's own database. This allows the customer to look at data across the whole enterprise from within their web browser.

This was very powerful, because suddenly business owners are not bound to their desk to know what's going on in their business. They can be on vacation overseas, and still see what today's sales were. There are several large customer using this system, and I'm actively marketing this product to new companies.

This project taught me a lot about developing for the web. I now also have very distinct likes and dislikes for certain technologies

Current work

At the moment I'm a web developer. I can design a little, but my strength lies on making the back-end work. I've also learned that certain platforms can make developing a website a lot quicker, and less expensive

I'm doing a lot of work on Content Management Systems. These allow my customers to make changes to their website, without having to come back to me every time. This very site runs on a Drupal CMS.

I'm also doing a lot of work in eCommerce at the moment. Again, I've found that using a pre-made package for the job makes for quick building and stable sites.

But where I find the most fun is in making custom sites using Ruby-on-Rails. I've programmed in many different language over my career, and I must say that Ruby is easily the best language I've ever worked in. And the Raisl framework makes the development of websites a real pleasure to do.

The biggest advantage that Ruby-on-Rails gives me is the ability to connect the customer's website with another source of data. I've connected things like databases, SMS portals and VOIP systems to websites. And Rails allows me to do these things quickly and easily.

So why don't you contact me, and let me build your next website for you?

Olark Livehelp var hblProto = document.location.protocol == 'https:' ? "https:" : "http:"; document.write(unescape("%3Cscript src='" + hblProto + "//static.olark.com/js/wc.js' type='text/javascript'%3E%3C/script%3E")); Olark Livehelp >