I have been a software engineer, both designing and developing, since 1977. I have worked with a variety of 2nd, 3rd and 4th generation languages on a mixture of mainframes, mini- and micro-computers. I have worked with flat files, indexed files, hierarchical databases, network databases and relational databases. The user interfaces have included punched card, paper tape, teletype, block mode, CHUI, GUI and web. I have written code which has been procedural, model-driven, event-driven, component-based and object oriented. I have built software using the 1-tier, 2-tier, 3-tier and Model-View-Controller (MVC) architectures. After working with COBOL for 16 years I switched to UNIFACE in 1993, starting with version 5, then progressing through version 6 to version 7. In the middle of 2002 I decided to teach myself to develop web applications using PHP and MySQL.
I prefer being involved in the complete life cycle of a project - analysis, design, specification and development. My experience as a developer makes me aware of the strengths and weaknesses of the language, and how the various features can be used to best advantage. This gives me the ability to design systems that can actually be built as well as taking an active role in their development.
My particular forte is not just the development of end-user software, it is the creation of development infrastructures with which such software can be built. I did this in 1985 with COBOL, and I have done the same thing with UNIFACE (refer to my Building Blocks in UNIFACE stuff for more details). My library of reusable software includes a flexible Menu and Security (Role Based Access Control or RBAC) system which can be used as the front end to any application. Using this infrastructure I can create working transactions in timescales that can be measured with a watch, not a calendar as I have found with other development environments. Since the release of UNIFACE version 7.2.06 with its ability to handle XML streams I have upgraded my development environment to be totally 3-Tier, with the added flexibility of a separate application model for the presentation layer.
In 2002 I rebuilt my entire development environment as a web application using PHP and MySQL. This was done using a combination of the 3-Tier and MVC architectures with object-oriented modules in the business and the data access layers, and with all HTML output in the presentation layer being generated via XML and XSL transformations using a small number of reusable XSL stylesheets. My PHP development infrastructure includes a Role Based Access Control system, an Audit Logging facility, an Activity Based Workflow Engine, a Data Dictionary and facilities for Internationalisation. This software was released in 2006 as open source from www.radicore.org
I have subsequently used this framework to build a web-based Order Fulfilment/Supply Chain Management/ERP package called TRANSIX. I started with the Party, Product, Order, Inventory, Shipment and Invoice databases from Len Silverston's Data Model Resource Book, then built the basic maintenance screens using the framework. The only complex part was adding in the business rules. I have subsequently added the Work-Effort and Request/Requirements/Quotations database as well as a bespoke Content database.
The first customer for this software, an online jewellery company, has been using it since May 2008 to handle all aspects of order fulfilment, which includes inventory, shipments and purchasing. It enabled them to triple their turnover while reducing their costs. They took advantage of its multi-lingual and multi-currency capabilities to open up additional websites in America, Germany and Sweden.
In October 2007 I became a director of Transition Engineering International Ltd with the intention of marketing this package as the standard back-end to custom-built front-end websites as part of an end-to-end e-Commerce solution. It has subsequently been used by internet start-ups to sell such products as baby clothes, beauty products and photographic prints, thus proving that both the database and the application code are flexible enough to deal with a wide range of businesses.
In July 2014 I joined Geoprise Technology Licensing as Director, Research and Development in order to market the TRANSIX package in America, Asia and the Pacific Rim. Geoprise Technologies has an extensive track record of improving the operations of clients in the life sciences, aerospace and defense and energy sectors. They had already used my Radicore framework to build business applications of their own, and welcomed the opportunity of adding the TRANSIX package to their portfolio under the name GM-X. They deal primarily in providing business solutions to established multi-national corporations rather than internet start-ups, and specialise in administrative and B2B applications rather than B2C websites. As the TRANSIX/GM-X package is comprised of a number of different modules which serve different business needs each customer need only purchase the modules they actually need. The multi-lingual, multi-currency, multi-timezone and multi-calendar capabilities of TRANSIX/GM-X, as well as its unique method of providing different customisations for different customers without touching the core software, will provide Geoprise Technologies with the ability to supply a wide range of solutions at very competitive prices.
In December 2015 I added the Survey prototype (with enhancements) to the GM-X application, along with a new Strategic HR subsystem to provide personnel tracking, applicant tracking and recruiting, performance review and learning management capabilities.
2017 was another busy year. I converted all the web pages (about 2,500 of them) in order to provide a responsive web interface so that they can be easily viewed on a variety of devices - desktops, laptops, tablets and smartphones. Before the year was out I also integrated the entire GM-X application with an implementation of blockchain called MultiChain. While other vendors are still in the process of developing a solution using blockchain, GM-X is the first to provide a working implementation.