When I was in 3rd grade, my grandmother gave me a TRS-80 – a powerful machine even without the cassette recorder to which I could save my work. Even at that young age, I was fascinated by the notion that, in principle, computers could execute any set of logical operations, if properly programmed.
Later, with the advent of Windows 95 and its QBasic interpreter, I began to teach myself programming in earnest. My first programs were attempts to see how creative I could get a computer to be. I used QBasic’s graphics facilities to create images of human faces relying on the random number generator. I was also interested creating programs that could create original prose. How I wish I still had the source code for those early attempts.
Later I got the latest version of Visual Basic interpreter (VB5) and began my foray into the world of professional programming. I learned about databases, SQL, object-oriented programming and website programming with ASP. I began writing inventory tracking software for my employer using Visual Basic for Applications, Microsoft Access and MySQL.
On the heels of the dot-com bubble, I began work as a software developer at Direct Alliance Corporation. I was thrown right into a noodly pit of classic, 1970’s style spaghetti code. Within a few months, I was able to work my way into a more respectable position of VB6/ASP developer. In the meantime, I taught myself Perl by writing an IMS/Basic parser as an attempt at manage the legacy system’s spaghetti code.
The VB6/ASP application was a full-featured CRM/ERP system written to replace the old IMS/Basic system. Though it was written in classic ASP/COM, we began adding .NET features to it such as C# and ASP.NET. As it became more mature, I began writing configuration management software such as issue tracking and software deployment programs in ASP.NET and C#. I was also writing file management software in Perl.