Amended - July 2014
Hardware / Software
Summary of Positions Held
Log File Analysis
Nominal / General Ledger
Stock Control / Warehousing
Stock Accounting subsystem
Materials Costing (from Bill of Materials)
Purchase Order Processing
Sales Order Processing
Sales Invoice Register
Purchase Invoice Register
Package Handling and Tracking
Timesheet Recording and Invoicing
Vehicle Contract Hire
Credit Card Security
Salesman Information System
Menu/Security (Role Based Access Control) System
System Design and Specification
Object Oriented Programming
COBOL Development Standards
Project Development Standards
UNIFACE Development Standards
Model-View-Controller (MVC) Design Pattern
HTML (static/dynamic), CSS
HTML from XML/XSL transformations
Web Services (SOAP and XML-RPC)
AS2 Secure Protocol
EDIFACT data interchange
Geographical Information Systems (GIS)
Responsive web design
Back to TOP.
UNIVAC 1100 under Exec 8, using COBOL, Assembler, DMS/1100, TIP
DATA GENERAL ECLIPSE under AOS, using COBOL and INFOS
HEWLETT PACKARD 3000 under MPE (Classic and Native Mode) using COBOL, IMAGE, VIEW, KSAM, SPL, INSIGHT, POWERHOUSE (QUIZ, QUICK, QTP)
HEWLETT PACKARD 9000 under HP-UX
IBM-compatible PC under Windows 3.11, Windows 95/ME/XP/7
UNIFACE version 5, using a CHUI on dumb terminals, and a GUI in a Client/Server network.
Web applications using Apache, PHP4/5, (X)HTML, CSS, MySQL with all HTML being generated from XML/XSL transformations. Have also linked to other databases such as PostgreSQL, Oracle and SQL Server.
I have also worked with Visual Basic (version 6) and VB.NET.
Back to TOP.
|1962 - 1967||Chichester High School for Boys||GCE 'O' Level in: English, Maths, French, Geography, History, Physics, Art|
|1968 - 1971||Chichester College of Further Education||Local Government Clerical,
ONC in Public Administration (1st year)
Back to TOP.
|1968 - 1971||West Sussex County Council||Junior Clerk|
|1971 - 1972||Shell International Petroleum Company||Trainee Computer Operator|
|1972||Wates Computer Services||Chief Operator|
|1973 - 1979||SMF Data Services||Operator,
|1979 - 1980||Abbey National Building Society||Senior Programmer|
|1980 - 1982||Data Logic Ltd||Senior Programmer,
|Oct 1982 - Jul 1999||Prolog Systems Ltd||Senior Analyst/Programmer,
Senior Design Consultant
|July 1999 - Sept 2000||Sherwood International Group Limited||Implementation Consultant|
|Sept 2000 - April 2001||Carphone Warehouse||Senior Analyst/Programmer|
|May 2001 - July 2001
Aug 2001 - Sept 2001
|Raindrop Information Systems||Consultant|
|Oct 2001 - present||Radicore Software Limited||Owner, Designer, Developer|
|Nov 2002 - Dec 2002||Lynx Financial Systems||Senior Developer|
|Jan 2003 - May 2003||Radicore Software Limited||Owner, Designer, Developer|
|June 2003 - Jan 2004||United Nations, Vienna||Uniface Development Specialist|
|Feb 2004 - Nov 2004||Radicore Software Limited||Owner, Designer, Developer|
|Oct 2004 - Nov 2004||Cable & Wireless||Uniface Contractor|
|Nov 2004 - Apr 2005||River Island Clothing Company||Uniface Contractor|
|Apr 2005 - Jun 2005||Cable & Wireless||Uniface Contractor|
|Aug 2005 - Jan 2006||AMEC Group Limited||Uniface Contractor|
|Feb 2006 - Aug 2006||Radicore Software Limited||Owner, Designer, Developer|
|Sep 2006 - Dec 2006||Blackwoods Gin||Designer, Developer|
|Jan 2007 - May 2008||Wedding Rings Direct||Application Architect, Designer, Lead Developer|
|Oct 2007 - Oct 2014||Transition Engineering Limited||Development Director|
|Feb 2010 - Mar 2010||Airlock||Designer, Developer|
|Apr 2010 - Nov 2010||Transition Engineering Limited||Application Architect, Designer, Lead Developer|
|Dec 2010 - June 2011||London Borough of Havering||Contractor|
|Jul 2011 - Feb 2012||Transition Engineering Limited||Application Architect, Designer, Lead Developer|
|Jul 2012 - Jun 2013||Flubit||API Developer|
|Sep 2013 - Feb 2014||Andrew Page||API Developer|
|Jul 2014 - present||Geoprise Technologies||Director, Research and Development|
Back to TOP.
This was formerly known as Financial Data Services (FDS).
FDS ran a computer center with a UNIVAC 1106 mainframe, and with their own team of designers and developers they provided facilities management services for major clients which included a merchant bank (S G Warburg & Co) and an advertising agency (Masius Wynne Williams & D'Arcy MacManus).
I started as a senior operator, but quickly progressed through shift leader to operations supervisor.
While in the Operations department I taught myself COBOL in order to make some changes to the overnight schedule print. I did this without the aid of any training courses or manuals. This impressed my manager so much that he arranged for me to move into the Middleware department where I took on the following tasks:
I taught myself Assembler without the aid of any training courses.
Back to TOP.
Back to TOP.
Back to TOP.
Unless specified otherwise the following projects were for HP3000's using COBOL, IMAGE and VIEW (known later as VPLUS), with some KSAM.
In 1992 I attended a UNIFACE training course, and unless specified otherwise the following projects were in UNIFACE:
Back to TOP.
I was head hunted for a project at Sherwood International because of my long experience of Uniface, and particularly my experience with creating a Uniface 7 development environment and development standards. I was supposed to join a development team immediately, but at the last minute the client put a hold on new additions pending a project review.
I was asked by the Project Manager to design and develop a small system to keep track of all the I.T. staff at the MAFF (now DEFRA) site, both permanent and contractors, and to record the projects to which they were assigned. This system required a database of 19 tables and 18 relationships, and 60 components (mostly forms, but some services). It took 1 week to design and 4 weeks to implement (in v7.2.04). This included unit testing, link testing, system testing, and the creation of basic help text for each component and field within the system. I had built systems of a similar size using Uniface 6, but the added feature of component templates in Uniface 7 meant that the development time was cut in half.
In December 1999 I joined the NURAD team (New Regional Administration Data Exchange) based at the MAFF site in Guildford. This was to develop a web-based solution (in v7.2.05) to allow farmers' data to be entered and verified over the internet, thus replacing paper-based forms. When I arrived a team of 6 people had spent 6 months in prototyping a development infrastructure which was based on the 3-tier architecture with a separate application model for the presentation layer. Although the concept was interesting their implementation was rather unwieldy and caused the development times to be much larger than expected. When the project plan was re-evaluated it was quickly realised that both the budget and the deadline would be blown by huge margins, so in July 2000 the client cancelled the entire project.
While awaiting reassignment I returned to the Woking office where I obtained access to a copy of the recently-released Uniface 7.2.06. I had read the release notes regarding the introduction of XML streams and considered this to be a more efficient method of implementing a 3-tier architecture with a separate application model for the presentation layer. I took my sample 2-Tier application and within 2 weeks had successfully converted part of it to 3-Tier. The results are available in the 'Articles' section of my website (http://www.tonymarston.net/uniface/index.html) in a document called '3 Tiers, 2 Models, and XML Streams' where you can also download my sample code.
Back to TOP.
I was recruited because I was one of the few individuals who had worked in a pure Uniface 7 environment. It would appear that almost everybody else may be compiling in Uniface 7, but their coding is still Uniface 6 (or even earlier!). I was supposed to be a senior member of a new project team that would start to redevelop their legacy Uniface 6 system into proper Uniface 7 components in a 3-tier architecture.
While waiting for them to decide of the structure and scope of this new team I did general maintenance work on their legacy system which included creating several new components. I also came up with a performance enhancement to their Price File lookup. By making a simple change to the database I eliminated a two-stage process using views and speeded up the time it took to access current product prices. I then investigated a performance problem in the main order entry program and pointed out several areas of concern.
However, after 6 months of talking about the new project the only outcome was that it was cancelled, so I decided to leave.
Back to TOP.
Following discussions about my article '3 Tiers, 2 Models, and XML Streams' I was invited to demonstrate its practicalities by modifying part of their legacy client/server system from 2-tier 'fat client' into 3-tier 'thin client'. As they are currently in the process of creating a web front-end the implementation of a 3-tier architecture with disconnected record sets, such as can now be achieved very easily using XML streams, would be of great benefit. I also demonstrated that the business layer components could be used by both the web and the client/server presentation layers, thus reducing the amount of duplicated effort.
After reviewing my previous work I was called back to develop a small new subsystem using the 3-tier architecture.
Back to TOP.
Radicore Software Limited is a company I created to advertise my software skills.
My first venture into web development was an unmitigated disaster due to using the wrong programming language and incompetent system architects, so I decided to find out if I could come up with a better way. After a bit of research I decided that PHP was a better language, if not the best, so I downloaded a copy of Apache, PHP and MySQL onto my home PC and taught myself how to write web pages.
As all my previous experience was with designing and building databases and the business applications which used them I decided to concentrate on back-end applications instead of front-end websites. I could see that there were a large number of programmers who could design and build a fancy website, but precious few who could design and build the supporting database and the associated software. The requirements of a back-end application are different from those of the front-end, but a lot of front-end developers simply do not understand those differences.
As I had built many different applications while working for a software house I knew that development could be speeded up by using a proper framework, and as I had already written a framework in UNIFACE as well as COBOL I decided to produce an updated version in PHP. There were several things I had learnt in the past which I wanted to carry forward into my new framework:
When I published the results of my experiments in Using Objects to access your Database Tables (Part 1) and Part 2 I was astonished with the verbal abuse that was fired off in my direction. This lead me to produce further articles such as What is/is not considered to be good OO programming, In the world of OOP am I Hero or Heretic? and Object-Oriented Programming for Heretics. When I realised that all the complaints against my approach were based on pure dogma and not empirical proof I decided to ignore those critics and carry on with my Frank Sinatra method ("I did it My Way"). I'm glad that I did as I can produce better results with my heretical approach than they can by blindly following a set of arbitrary rules. That is why I say that "I am results oriented rather than rules oriented".
As I started building more and more components for more and more database tables I quickly saw that there was a lot of repeating code which could be moved to a library of shared routines. I already had a library of reusable XSL stylesheets, and I quickly assembled a library of page controllers which, because of my implementation of polymorphism, were also reusable. When I realised that a particular page controller always used the same XSL stylesheet that gave me the idea for Transaction Patterns, and when I saw how easy it was to generate a new transaction from a pattern I quickly found a way to automate this procedure within my Data Dictionary.
The end result of all my efforts is a rapid application development toolkit which is ideally suited for creating web-based business applications which use a relational database. Such applications may be stand-alone, or may be used as the back-end to support a front-end eCommerce website.
When I say "rapid" I mean development times that can be measured with a stop watch and not a calendar. If you give me a database schema I can create a family of basic transactions which perform the LIST, CREATE, READ, UPDATE, DELETE and SEARCH functions in a matter of minutes, all without writing a single line of code! If your framework cannot do that then don't waste your time in telling me that my methods are wrong as my results speak for themselves.
In April 2006 I released my PHP framework to the public as open source with the name Radicore.
Back to TOP.
I was told at the interview that they were impressed with the contents of my website and felt that they could make use of my experience and abilities, but in reality all they wanted was someone who could write add-ons to their existing legacy system. As working on legacy systems with their out-dated methods and techniques does not fire me with enthusiasm or make the best use of my abilities I decided that there was no point in my staying. Before leaving I wrote a 17 page 9000 word report which identified the areas in their development infrastructure which were a hindrance to productivity and demonstrated how it was possible, using techniques that were properly designed and implemented, to create new components up to 10 times faster. I also reviewed their implementation of an audit trail which was causing problems and showed them a much simpler design that was easier to implement as well as having more flexible options in the online enquiry.
Back to TOP.
I was recruited by the United Nations Office on Drugs and Crime (UNODC) in Vienna, Austria to work on their system for the International Narcotics Control Board (INCB). This was a system developed by an outside company in UNIFACE 5 which has received minimal maintenance over the years. Although recompiled to run under UNIFACE 7.2.06 it has never been upgraded to take advantage of any of the new features in UNIFACE 7. Due to a lack of in-house expertise they were unable to implement some urgent changes required by the INCB, thus the need for an external contractor.
The system was written using a mixture of UNIFACE forms and SYBASE triggers and stored procedures. Due to the total lack of any sort of documentation my task involved a significant amount of investigation and analysis before any changes could be made. Despite this I was able to implement the changes within the deadline set by the INCB.
Having demonstrated by abilities I was invited to return for another 3 months to implement some less urgent changes and to start the process of writing some system documentation, a task which involves a great deal of reverse engineering. I was also invited to give a presentation on the advantages of Open Source software, and to demonstrate the development environment which I had created using PHP, MySQL and XSL.
Back to TOP.
Cable&Wireless is a leading global telecoms company providing a wide range of high-quality managed voice, data, hosting an IP-based services and applications.
Hired for a 1 month contract to amend an in-house system called DIVA. This is a multi-user client/server system which accesses a shared Oracle database. The software was originally developed in UNIFACE v5 but has subsequently been recompiled to run in UNIFACE v6. The task involved making changes to 50 forms.
Converting a legacy character-mode application called MOSES from UNIFACE version 6 through version 7 and finally to version 8. This is so that it can be moved from an aging VAX server running VMS 6.2 and Oracle 7 to an ALPHA server running Open VMS 7.3 and Oracle 9.
Back to TOP.
River Island is a major fashion and clothing company with nearly 300 stores across the UK, Ireland and internationally throughout Asia, the Middle East and Europe.
Hired for a 3 month contract (which was extended for another month) to perform the following:
Back to TOP.
AMEC is a supplier of consultancy, engineering and project management services to its customers in the world's oil and gas, minerals and metals, clean energy, environment and infrastructure markets.
Hired to work on an in-house system called SPRINT, a procurement and contract cost management system. This is a multi-user client/server system which accesses a shared Oracle 9i database. The software was originally developed in UNIFACE v6, has been recompiled in v7, and is now being upgraded to v8. The work mostly involved creating new forms and reports as well as modifying a small number of existing components. There was also a requirement to create several new database triggers and stored procedures.
Back to TOP.
Blackwoods is a small distillery company situated in the Shetland Isles of Scotland.
The author of the original website was asked by his client to increase the number of back-office screens which enabled members of staff to process sales orders, with the ability to limit access to certain screens to certain members of staff. As he had no experience in this area he searched the internet and came across my article on Role Based Access Control. He asked if I had any sample code available, but at that time it only existed within my private development framework. He encouraged me to make it available as open source which I subsequently did (see www.radicore.org). Then he asked if I could build the new application for him as he felt that with my superior experience and ability I would be more likely to produce the right results within the client's tight deadline. I accepted his offer and designed and developed a completely new back-office system. This involved the following steps:
Technologies: Apache, PHP, MySQL, HTML, CSS, RADICORE, SQL.
The client was very pleased with the result, as was the website developer. As he had another client who also wanted his back-office application upgraded to help deal with his growing workload he suggested that instead of writing a separate bespoke system for each one that I design and write a flexible order processing system as a package which could then be used by any number of organisations. This sounded like a golden opportunity to me, so I started to design and build a new system for his other client Wedding Rings Direct.
Wedding Rings Direct is a company which sells custom-made wedding rings and engagement rings through their UK, USA, German and Swedish websites with an annual turnover of £2.5m
This was a follow-on from the system which I wrote for Blackwoods Gin, but instead of being another bespoke system for a single client it was designed and written as a more comprehensive yet flexible general-purpose package which could be used by many different clients in different business sectors. Other programmers of lesser ability may have been daunted by such a huge undertaking, but I had several things in my favour:
Knowing that a package may need to be customised for different clients I designed and developed a system of plug-ins which allow customisations to screen layouts, report layouts or business logic to be kept separate from the core code. Each client's plug-ins are held in separate directories, thus avoiding the wrong plug-in being used for the wrong client.
This ERP/eCommerce application (now called TRANSIX) has over 200 database tables, 350 relationships and 1800 transactions.
Database & Application Architect / Designer / Lead Developer
Technologies: Apache, PHP, MySQL database, Web Services (XML-RPC and SOAP), email, PDF generation, RADICORE, SQL.
After having successfully developed an Order Processing/ERP system for Wedding Rings Direct I joined forces with the website developer as a Director in his company Transition Engineering International Limited to make this software available to others as part of an end-to-end eCommerce solution:
Implementing this solution for a client requires the following steps:
Because of its flexible database design the TRANSIX application can be used for organisations who operate in a variety of business sectors, not just jewellery, so it can be used by any organisation which wants to sell its goods through the internet.
Back to TOP.
Airlock is a website design company who design and build websites for a number of high-profile clients in various business sectors, such as fashion, news and media.
Designer / Developer on a proof-of-concept project
Technologies: Apache, PHP, MySQL database, Web Services (SOAP), email.
Back to TOP.
Havering is a London borough with a website based on Microsoft Dynamics supported by a SQL Server database. This website is used by residents to obtain information on council services.
Hired for a 2 month contract (which was extended to 6 months) to assist in the update of the council's 'MyPlace' website to include the display of council data on Google Maps. During this time I performed the following:
Designer / Developer on a project to update their website to deal with mapping data.
Technologies: VB.NET, Web Services (SOAP), SQL Server database, XML, IIS, SQL.
Back to TOP.
Flubit is a new company which does not sell its own products, instead it provides a channel through which other retailers can sell their products. Customers can input the URL of a product which they have found online, then Flubit will search through its database of suppliers and find one who can provide the same product at a lower price.
Hired initially for a 6 month contract with the Merchant Integration Team to rework the web service APIs which had been written by a previous contractor. These web services, which used XML via HTTP POST, had been designed to give retailers the following abilities:
However, as more and more retailers signed up it became apparent that most of them could not use the Flubit API. Very few of them had their own IT departments which could change their software to conform to our API, so the majority used a variety of third-party software packages which had a wide range of capabilities. In order to provide workable solutions for all these retailers I designed and implemented the following:
In order to manage all these processing requirements I designed a series of database tables. Initially the only way to maintain the contents of these tables was via a basic SQL client program, but this was felt to be too primitive and potentially dangerous. The Integration Manager also had other sets of database tables to maintain in order to verify that the retailer's inventory data was adequate, and that order details could be exchanged and payment made. There were plans for the front end developers to build an administrative application, but the schedule for this was too far in the future so I offered to build one myself using the RADICORE framework. I had maintenance screens for all the relevant database tables available within the week, and as these were controlled by a Role Based Access Control system they were less dangerous and more secure. It was also possible to add extra processing rules and business logic to these scripts, so I could create a task to copy a retailer's details from the integration database to the live database.
Technologies: PHP, MySQL database, Web Services, XML, XSL, SQL, FTP, CSV, RADICORE.
My original contract was due for termination in December 2012, but it was extended for another 6 months.
Back to TOP.
Andrew Page is one of the UK's largest distributors of quality car parts. They supply parts to the motor trade as well as the general public.
Hired for a four month contract to integrate their in-house order processing software with the Amazon website via web services using the secure AS2 protocol. I was the sole developer working with their eCommerce section in their Leeds headquarters.
I developed functions to integrate with Amazon Dropship by exchanging XML documents for the following:
I was also required to build screens to help their warehouse personnel compile shipments which involved sending a Ship Label (SL) request to Amazon, and when the response (SLR) was received I could send the embedded label to a Zebra printer. When the vehicle arrived to collect the pending shipments I built another screen so that the warehouse personnel could construct and send a Manifest (TMN), and when the response (TMNR) was received I could capture any additional printable documents provided by Amazon.
They were currently also using Amazon Vendor, but in manual mode only by downloading and uploading data in spreadsheets. As I now had a working AS2 server I was asked to upgrade this to electronic transfer by exchanging EDIFACT documents for the following:
Technologies: PHP, MySQL database, Web Services, XML, XSL, SQL, EDIFACT, RADICORE.
My original contract was due for termination in January 2014, but it was extended into February to cover the extra work.
Back to TOP.
Geoprise Technologies is a company which specialises in the development of Enterprise Resource Planning (ERP) and Manufacturing Operations Management systems and implementing them worldwide. They deliver high-quality technological solutions for businesses operating in North America, Europe, Asia and the Pacific Rim, particularly in the life sciences, aerospace and defense and energy sectors.
Geoprise Technologies had been using my Radicore framework since 2007 to build their own applications, so were familiar with my work. They particularly liked The Role Based Access Control (RBAC), Audit logging and Workflow subsystems as well as the Internationalisation (I18N) facilities. After having exchanged several emails regarding some enhancements they would like to see in the framework, I mentioned my TRANSIX package and asked if they would be interested in it. The company President arranged to visit me in London during his next trip to Europe so that we could have a face-to-face meeting. During my demonstration of the TRANSIX package he instantly saw where it could provide the solution to several projects for major corporations on which his company had been asked to bid, so we agreed to form a Joint Venture Partnership in which I would provide the software and he would provide the marketing skills. My TRANSIX software, plus the applications which they had already written using my Radicore framework, was initially given the name GM-X Version 5, but now goes under the name of GM-X Application Suite.
Back to TOP.
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.
Since the end of 1999 I have posted several articles, tips and solutions to the Uniface news group, and the positive response that I received from other Uniface users encouraged me to create my own web site in May 2000 and devote a major part of it to Uniface issues. You can see for yourself by visiting the following URL:
In May 2003 I added the following sections on PHP/MySQL and XML/XSL:
I have subsequently rebuilt my entire development environment as a web application using PHP and MySQL. This I have 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, a Data Dictionary for generating table classes and user transactions from my library of Transaction Patterns, an Audit Logging facility which can show all database changes in a single set of screens, and an activity based Workflow Engine.
In April 2006, following a large number of requests, I made my personal PHP development framework available as open source. Full details are available at:
In January 2007, after having built a bespoke back-end web application for a client of Agreeable Notion Ltd, I started designing and building a much larger version as a package which could be used by a wider range of companies. The first customer went live with this in 2008.
In October 2007 I joined the board of Transition Engineering Limited in order to market the ERP/eCommerce package that I had developed, which was given the name 'TRANSIX':
In July 2014 I joined the board of Geoprise Technology Licensing in order to market the TRANSIX package to a wider range of businesses, particularly in North America, Asia and the Pacific Rim:
Back to TOP.