Curriculum Vitae - Anthony John Marston

Amended - November 2008


Tony's photo

Nationality:

Marital Status:

Dependents:

Location:

English

Married

None

Sutton, Surrey

mailto:tony@marston-home.demon.co.uk
http://www.tonymarston.net
http://www.radicore.org

Applications experience
Hardware / Software
Education
Summary of Positions Held
Career History
Additional information

Applications experience:

Log File Analysis
Job Scheduling
Nominal / General Ledger
Purchase Ledger
Sales Ledger
Programme Costing
Artist/Supplier Payments
Sales Reporting
Stock Control / Warehousing
Stock Accounting subsystem
Inventory Management
Materials Costing (from Bill of Materials)
Materials Explosion
Credit Agreements
MIRAS
Direct Debits
Subscriptions System
Lease Accounting
Purchase Order Processing
Sales Order Processing
Sales Invoicing
Sales Invoice Register
Purchase Invoice Register
Commitment Accounting
Multi-Period Accounting
Package Handling and Tracking
System Conversion
Timesheet Recording and Invoicing
Vehicle Contract Hire
Incident/Assistance Tracking
Credit Card Security
Salesman Information System
Document Tracking
Staff Tracking
Mobile Communications
Menu/Security (Role Based Access Control) System
Audit Trail
System Study
Systems Analysis
System Design and Specification
Data Analysis
Database Design
Structured Programming
Object Oriented Programming
COBOL Development Standards
Project Development Standards
UNIFACE Development Standards
3-Tier architecture
Model-View-Controller (MVC) Design Pattern
HTML (static/dynamic), CSS
HTML from XML/XSL transformations
Web applications
Web Survey/Questionnaire
Workflow
Classroom Scheduling
Shipments

Back to TOP.


Hardware / Software:

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

UNIFACE version 5, using a CHUI on dumb terminals, and a GUI in a Client/Server network.
UNIFACE versions 6, 7 and 8, using a GUI in a Client/Server network, accessing various RDBMS's

Web applications using Apache/PHP4/PHP5/MySQL with all HTML being generated from XML/XSL transformations

I have also worked with Visual Basic, (X)HTML and CSS.

Back to TOP.


Education:

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.


Summary of Positions Held:

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,
Shift Leader,
Operations Supervisor,
Programmer,
Analyst/Programmer
1979 - 1980 Abbey National Building Society Senior Programmer
1980 - 1982 Data Logic Ltd Senior Programmer,
Analyst/Programmer,
Senior Analyst
Oct 1982 - Jul 1999 Prolog Systems Ltd Senior Analyst/Programmer,
Project Leader,
Project Manager,
Senior Consultant,
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
Nov 2002 - Dec 2002 Lynx Financial Systems Senior Developer
June 2003 - Jan 2004 United Nations, Vienna Uniface Development Specialist
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
Jan 2006 - Mar 2008 Radicore Software Limited PHP Contractor
Apr 2008 - present Transition Engineering Limited Director, part owner

Back to TOP.


Career History:

SMF Data Services (1973 - 1979)

This was formerly known as Financial Data Services (FDS).

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.

Abbey National Building Society (1979 - 1980)

Back to TOP.

Data Logic (1980 - 1982)

Back to TOP.

Prolog Systems Ltd (Oct 1982 - July 1999)

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.

Sherwood International Group (July 1999 - Sept 2000)

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.

Carphone Warehouse (Sept 2000 - Apr 2001)

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.

Raindrop Information Systems (May 2001 - July 2001)

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.

Raindrop Information Systems (Aug 2001 - Sept 2001)

After reviewing my previous work I was called back to develop a small new subsystem using the 3-tier architecture.

Back to TOP.

Lynx Financial Systems (Nov 2002 - Dec 2002)

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.

United Nations, Vienna (June 2003 - Sept 2003)

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.

United Nations, Vienna (October 2003 - January 2004)

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 (11th October 2004 - 5th November 2004)

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.

Back to TOP.

River Island Clothing Company (29th November 2004 - 1st April 2005)

Hired for a 3 month contract (which was extended for another month) to perform the following:

Back to TOP.

Cable & Wireless (13th April 2005 - 9th June 2005)

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.

AMEC Group Limited (1st August 2005 - 27th January 2006)

Hired to work on an in-house system called SRINT, 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.

Radicore Software Limited (January 2006 - March 2008)

I formed Radicore Software Limited as a private limited company to handle all my contract work. My first project was to rebuild a web-based logistics application as the original was unable to keep up with the user's expanding requirements. The original version had been written by Agreeable Notion Ltd for one of their clients as a simple collection of screens to maintain the contents of a database to deal with products, customers and sales orders. The growth of the client's business resulted in a corresponding growth in requests for more features, among which was Role Based Access Control (RBAC). While searching the internet for information on RBAC implementations Agreeable Notion Ltd came across the various articles I had written, and my obvious expertise in this area prompted them to contact me for assistance. At this time my framework had not yet been released as open source, so I gave them a pre-release copy. Although this was of great benefit the approaching deadlines prompted them to ask for my assistance with the actual design and development of the new application, which I gladly provided. The resulting application was delivered on time and to budget, and the client was impressed with the quality and flexibility of the software.

The Radicore framework was released as open source under the GNU General Public License in April 2006. This was switched to the GNU Affero General Public License in May 2008.

Agreeable Notion Ltd then decided to use the Radicore framework to rebuild the back-office application for another of their clients, which again was delivered on time and to budget. Each of these applications allowed the client to handle their business more efficiently, which allowed their business to grow, and which eventually resulted in a growing number of enhancement requests.

Although the software for the two clients was different there were enough similarities - the need for products, customers, sales orders and invoices - that instead of having to maintain separate bespoke systems for each client it was suggested that a better idea might be to create a general purpose package which could service the needs of both clients. In fact, if the application were sufficiently flexible it could service the needs of many more clients. I had already built a Product prototype based on what I had found in the Data Model Resource Book by Len Silverston, so it was suggested that I write a complete ERP package based on more of the data models in that book, which I agreed to do.

I started this task in February 2007 and by July 2007 I had completed the following subsystems:

The Len Silverston book gave me a workable data model, the Radicore framework allowed me to quickly build the online screens, and my own experience allowed me to mold it all into a coherent application which, after just six months, contained 130 database tables, 230 relationships and 1000 tasks. This was later enhanced with the addition of subsystems for INVOICING, REQUESTS and REQUIREMENTS, and WORK EFFORT (timesheets).

I subsequently rewrote the website for one of the clients so that it used the new flexible database instead of its bespoke original, and added all the functionality to ensure that their list of enhancements was satisfied.

Back to TOP.

Transition Engineering Limited (April 2008 - present)

After implementing the ERP package for an online jewellery company, which involved adding more components to the software as well as converting their front-end web site to access the new database instead of their old one, it was decided to form a separate company to market the package using the product name TRANSIX with myself as one of the directors and primary shareholders.

To date the TRANSIX package consists of the following subsystems:

It currently contains 200 database tables, 350 relationships and 1600 tasks.

During this time the Radicore software was enhanced to include the following capabilities:

Back to TOP.

While searching for productive employment I have spent time doing the following:

Back to TOP.


Additional Information:

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.

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, an Audit Logging facility and an activity based Workflow Engine.

In April 2006, following a large number of requests, I made my entire PHP development framework available as open source. Full details are available at http://www.radicore.org.

The reason that I'm still in software development after all these years is because it is what I do best, and it is what I enjoy the most. I enjoy being able to produce high-quality software, and I like being able to share my knowledge and experience with others. My motivation is the pursuit of technical excellence and the satisfaction of a job well done.

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 selecting the following URL:

http://www.tonymarston.net/uniface/index.html

In May 2003 I added the following sections on PHP/MySQL and XML/XSL:

http://www.tonymarston.net/php-mysql/index.html

http://www.tonymarston.net/xml-xsl/index.html

In April 2006 I made my PHP development framework available as open source from a new website:

http://www.radicore.org

Back to TOP.

counter