Introduction
    I  have over twenty years of experience as a consultant. In those years I have design and implement software for the
    Financial, Technology, Industrial and Manufacturing industry. Exemplars of the types of systems that I implemented are:
    Trading systems, Portfolio management systems, Performance measurement systems, Quantitative Analytic
    engines, Software Game development, Satellite ground control and instrumentation, Systems that involve Multi and
    Parallel Processor and the utilization of MPI and Single-System Image Clustering, Expert systems, Neural Networks
    and Evolutionary and Genetic Algorithms systems, Device Drives, and Embedded system development.

Technologies
    In that time, I have gained much experience in large scale software development using a combination of techniques such
    as Object Oriented (OO) Architecture, OO Design, OO Development and OO Programming. Although the object oriented
    methodologies are my primary methodologies I do strongly pursue and practice Declarative and Functional
    Programming methodologies even when these particular methodologies are not supported within the given computer
    language. It is currently my belief that knowing and practicing these two mythologies will greatly improve the quality of any
    software developer’s skills..

    Within the span of my personal and professional life, I have had the opportunity to develop software under a number of
    relatively modern operating systems such as the various versions of Microsoft Windows starting from version 3.0, various
    incarnations of UNIX such as LINUX, SCO, AIX, XENIX, HP UX, and even MINIX. Even earlier in my career I was writing
    software for operating such as Microsoft DOS, CP/M, Concurrent CP/M, Turbo DOS and MP/M. All were interesting in
    how they managed the computer resources, even more so was the challenge in how to maximize the usage of their limited
    resources.

    It was often necessary, in the early years, for me to write device drivers for Microsoft Windows and DOS, and CP/M.
    Knowing the particular operating system requirements and API’s to write a type device driver was not always enough. In the
    early years it was often necessary to have the skills of electronic hardware engineer; being able to fully understand the
    design of the hardware. I still retain those skills as can be clearly seen by viewing my web pages on electronics and
    enjoyment in maintaining old S-100/IEEE-696 computers. Once the hardware and operating system requirements were
    understood the process of writing interrupt service routines (ISR) and direct memory access (DMA) was usually
    straight forward and repeatable for other types of devices. It is my hope to eventually have the opportunity to write a device
    driver for UNIX/LINUX operating systems. From what I currently understand the task will be easier than to write device
    drivers for MS Windows.

    Out of necessity and the joy in working directly with the operating systems API's I gained a strong understanding of multi-
    threaded, distributed, intra and inter processing communication software development. However, only if absolutely
    necessary do I attempt or recommend to others to do this type of software development using the operation system's
    native API's. It is far much simpler and portable to use The 'ADAPTIVE Communication Environment' (ACE) or the Boost.
    Asio library from the BOOST C++ Libraries. These are well tested products with performances comparable to those of
    hand write native API calls.

    For true parallel processing I have found openMosix, a Single-System Image Clustering extension to LINUX, to be quite
    effective when using the Message Passing Interface (MPI) libraries. Interestingly enough there is now the Boost.MPI
    library, a project with in the BOOST C++ Libraries, for MPI software development. Than library is now my library of choice to
    write true distributed parallel processor applications.

Computer Languages
    C++ is my computer language of choice. I have been using it for more than nineteen years; since the year 1989. The last
    Brain Bench test I was forced to take placed me, to my surprise, in the top 5% of C++ developers. To this date with the
    possible exception of the MAUDE and the PROLOG like programming language MECURY I do believe there to be a
    tremendous advantage in making any other language my preferred programming language.

    MAUDE, I have been consistently using since the start of 2008. PROLOG I have had a sporadic relationship with it since
    1988. MECURY, basically a better PROLOG with some advantages over HASKELL I just started reviewing it in July 2008. I
    have high hopes for their use in future project; at the very least declarative programming styles of all three languages
    does have a strong influence of my C++ programming style, since I strongly endorse the top down approach most of the
    times. The top down approach implies you understand the problem. Bottom up means that you are experimenting in how
    to bring about a solution; which is often useful.

    Although I have about five years exposure to JAVA, C#.NET I consider them a waste of my C++ bandwidth and usually
    only take relatively short term positions/projects using those languages unless I don't have any other choice. Up till now I
    have been lucky.

    Throughout my career I have used on actual project SMALLTALK, Delphi, Object Pascal, FORTRAN, Microsoft Visual
    Basic, OCCAM, COBOL, NEAT 3, PROLOG and a number of machine languages/assembles for various CPU such as
    Intel 80386/80186/80286/8086/8088, Z80, 8080, 6502 and 68000. All good and enjoyable experiences at the time.

    For a time my programming language of choice were PASCAL, FORTRAN, and SNOBOL 4 until I discovered C, C++,  and
    PROLOG in the nineteen eighties. I am still looking for that one great language that will significantly ease my software
    development experience. MAUDE and MECURY, more MAUDE in particular, seems to be a preferred choice over C++ for
    high level application development. However, C++ with its multi-paradigm methodologies; Objective Oriented, Generic,
    and Imperative along with the BOOST C++ LIBRARIES and overall performance has certainly made it difficult to abandon.
    Additionally, given as examples the BOOST Lambda, MPL, Spirit and Sprit.Pheonix libraries I do believe the powerful
    paradigm of rewrite theory and declarative programming as exemplify by MAUDE and MECURY / PROLOG respectively
    can be brought under the heading of BOOST C++ LIBRARIES. If I even get time it could be me do who accomplishes this.

Databases
    Throughout the years I have had the opportunity to use a wide range of database management technologies such as:
    SYBASE SQL, Windows SQL-Server, MYSQL, Postgre-SQL, INGRES SQL, DBASE II/III, CLIPPER, BTRIEVE,  and Object
    Oriented Database such as EYEDB and POET. EyeDB is a wonderful open-source Object Oriented Database
    Management System (OODBMS) based on the ODMG 3 specification

    Other  SYBASE technologies I have worked with are Open Server and Open Client API's. Using the Open Server/Client
    API's   I have written application that intimately interact with the SYBASE SQL: Server. From a C++ library developer
    perspective I have written C++ wrappers for the Open Server and Open Client that were superior to the Rogue Wave C++
    libraries.

    Given the choice I would choose ODMG3 for the simple reason interfacing with the underling language is seamless and
    the overall performance of a network database is usually faster than relational database.

On Going Research
    Artificial Neural Networks, Fuzzy Systems, Genetic Algorithms, Evolutionary Algorithms, Expert Systems, Learning
    Algorithms, Text Mining
Curriculum Vitae
OBJECTIVE
Since I first became aware of the subject of Computer Science, the following are my primary professional objectives:
  1. To design and implement intelligent systems; systems that have such high levels of automation as to greatly simplify their
    use and understanding by any given client.
  2. To design and implement systems so well that no maintenance is ever needed.
PROFILE