PHP, Perl, Assembler, Pascal, Basic,
SQL etc., including embedded, multithreaded, and
I have extensive API experience (both Windows APIs and
Linux APIs), and I use development tools such as Microsoft Visual
Studio, Eclipse IDE, and Qt.
Generally I prefer to work in C++ as this gives me the most scope for
cross-platform development. I don't use C# and the .NET
framework as this commits you solely to Microsoft, which would be a
mistake given the dramatic rise in the popularity of Linux,
Mac OS X, and mobile devices.
For mobile app development I use Qt. It allows you to write the
code once, and then deploy it for Android, iOS
(iPhone, iPad etc.) and BlackBerry.
This significantly reduces the time it takes to get a product to market.
High Standard of Documentation and
Source Code Readability
I have always strongly believed in the following rule:
"Do it right the first time. Finish it properly. Document it properly.
Only then do you move on."
This takes discipline.
Many young engineers don't follow this rule. They may be intellectually
brilliant, but they throw themselves at the problem, do it at a
lightning fast pace, and get distracted by the next job before they've
even finished the first one. When they need to go back they have to do
it all over again because they can no longer remember what they did the
I have always been able to go back to past work to make changes and
improvements, even a decade or more after the code was first written.
And if anything were to happen to me there is enough information in
place for another engineer to pick up where I left off.
All of my software is fully documented in separate word processor files.
This covers the software's architecture, detailed operation, function
call parameters and operation, and revision records.
The code itself is heavily commented and is made as readable as
possible. This is essential for maintenance. The following examples show
the typical structure of software written by me, and the detailed level
of commenting present:
Example of C++ Code
Example of Assembler Code
Modular Software for Use in
I maintain a library of general purpose software modules for use in my
projects. There are literally hundreds of thousands of lines of original
code that I have developed over the years. It can reduce development
times for complex projects literally by years.