Curriculum Vitae of a C# contractor based in Hampshire

Summary

Ross Fruen, who is currently based in Basingstoke, is a quality driven, agile, software developer with over 30 years’ experience of designing and creating solutions within the Microsoft ecosphere, the first decade in C++ and later C# with a pragmatic approach to BDD, DRY, SOLID, TDD, etc. Working in diverse industry sectors within varied team sizes has engendered the ability to quickly integrate with new environments and assimilate their underlying business drivers. These attributes coupled with the discipline to deliver solo projects and an ability to both cooperate and share knowledge with others will give positive results for your project.

Of particular interest are remote contract .NET development opportunities or hybrid roles within a reasonable commute of Basingstoke - i.e. Hampshire, Berkshire, South Oxfordshire, East Wiltshire and West Surrey or on the main rail route into London Waterloo.

Flexible on contract duration from single days to multiple years, an average being 16 months with 3 extensions.

Experience and qualifications

Collaboration
Azure DevOps, CruiseControl, CVS, Git, Mercurial, Rational Synergy, Source Safe, SVN, TFVC, TeamCity, VSTS
Cloud
AWS API Gateway, CloudWatch, Cognito, DynamoDB, IAM, Lambda, OpenSearch, RDS, S3, SES, SNS, SQS, Azure Functions, Message Bus, Monitoring
Frameworks
Angular, ASP.Net MVC, Bootstrap, Ionic, WCF, WebForms, WinForms
Programming
C#, C++, JavaScript, TypeScript
Storage
Dapper, EF, Elastic, DynamoDB, IndexedDB, MySQL, Oracle, SQL Server
Testing
BDD, Jest, Jasmine, MSTest, NSubstitute, NUnit, Specflow, TDD, XUnit

MCP in ASP.NET 4.0, WCF, .NET Framework, C#, VC++ 6, Windows Architecture I and WOSA I.

IBM Certified Specialist in MQSeries Configuration and Installation.

BSc (Hons.) 2:1 in Computer Science from the University of Portsmouth.

Full, clean driving licence.

Availability

01st October 2024

History

Q-Bot, Wandsworth, London (Freelance software developer, February 2023 to August 2024 - 2 extensions)

Skills Angular, AWS API Gateway / Athena / CloudFormation / Cognito / DynamoDB / IAM / Lambda / QuickSight / S3 / SES / SNS / SQS / Step Functions, Azure DevOps, C# 13.0, Docker, Git, NET Core 6, Pthon, RxJS, Typescript, xUnit

Introduction of QuickSight reporting and migration of Ionic based website to new Angular front end using dockerised lambdas for the back end.

Work areas included:
  • Creation of ETL to S3 from disparate sources (DynamoDB via Glue, Salesforce and Stripe using AppFlow, Xero through make.com) and exposure via Athena for use as QuickSight datasets. Generation of QuickSight Analyses for reporting.
  • Creation of standardised CI/CD pipeline to build lambdas, analyse with SonarCloud, dockerise and push to AWS ECR before executing Cloud Formation scripts for the services AWS needs (dynamo, lambda, S3, etc.)
  • Refactoring and simplification of existing C# lambdas. New lambda functionality developed in Python.
  • Angular website with routing to allow deep linking to property, survey and install details from QuickSight.
  • Use of Step Functions for ETL between legacy and new system. Python scripts for obfuscation, copying S3 assets, etc.
  • Automated generation of deltas for Energy Performance Certificates and their importation into DynamoDB

EMR, Warrington (Contract software developer, August 2022 to February 2023)

Skills Angular, Azure MessageBus / SQL, C# 8.0, Dart, Entity Framework, Flutter, Git, Jasmine, MSTest, .NET 6, Typescript

Extending functionality of Angular and Flutter based websites used to record purchases, sales and perform operational planning for metal recycling centres.

Work areas included:
  • Addition of new feature to Angular app that managed routes to market for stock
  • Extension of existing Flutter based tool to track stock levels
  • Migration and refactoring of existing stand-alone Flutter application into a new common corporate framework
  • Report generation using EPPlus (for Excel) and QuestPDF
  • Introduction of queue and event driven architecture for transport booking

Q-Bot, Wandsworth, London (Freelance software developer, July 2019 to July 2022 - 6 extensions)

Skills Autodesk, Angular, AWS API Gateway / DynamoDB / Lambda / S3 / SES / SNS / SQS, Azure DevOps, C# 8.0, Git, Ionic, Jasmine, MSTest, NET Core 3.1, OpenXML, RxJS, Typescript, xUnit

Creation of Ionic based website and associated microservices for the display of information collected by and management of a robot fleet used to apply underfloor insulation.

Work areas included:
  • Epic, feature and task creation together with sprint ceremony management
  • Generation of multiple Azure DevOps CI/CD pipelines using Jasmine, xUnit and SonarQube for quality control
  • Ingesting robot data presented in SQS messages into DynamoDB and S3
  • Report generation via OpenXML and Kibana. Elastic populated via DynamoDB changes triggering SNS topics
  • Provision of offline functionality for website via RxJS, the IndexedDB and service workers
  • Use of Pannellum and Autodesk viewers for presentation of panoramas and associated thermal overlays
  • Integration with Xero to raise quotes and invoices.
  • Equipment management – availability, bookings and fault reporting with TOTP used for device security

myairops, Farnborough (Contract software developer, July 2018 to July 2019 - 4 extensions)

Skills Angular 7, AutoMapper, Azure DevOps / Functions / MessageBus, C# 7.3, Dapper, Entity Framework, Frisby, Git, Karma, Jasmine, NET Core 2.2, NUnit, SignalR, SQL Server 2017, Sybase, Typescript

Part of team producing an SaaS flight management system for handling chartering together with aircraft and crew administration. Implemented as Azure hosted RESTful .NET Core micro services using the repository pattern fronted by an Angular 7 website incorporating DevExtreme UI components.

Work areas included:
  • Created and maintained Azure DevOps build / release pipelines utilising ARM templates for auto deployment.
  • Utilisation of Azure Storage Bus message deferral to handle intra-service call failures. Pattern used when porting back-end of existing iPhone app to Azure Functions leading to improved availability.
  • Provision of invoice processing system for Gamma Aviation, a leading US jet charter company. Used GemBox to create XLSX reports for human approval and once verified to write CSVs for Sage import.
  • Migration of SignalR based chat tool into Angular frontend to facilitate communication between users of the application and existing third party clients (Wheels Up) during aircraft chartering.
  • Produced EF based data migration / sync tool for transferring information from Sybase to Azure SQL.
  • Design of database schema, creation of stored procedures and performance optimisation.
  • Junior developer mentoring, code reviews, SME for invoice functionality

LexisNexis Group, Woking (Contract software developer, April 2014 to May 2018 - 5 extensions)

Skills Angular, ASP.NET MVC, Aspose, AWS, Azure, C# 7.1, Entity Framework, Git, MSMQ, MSTest, NET Core, NHibernate, NSubstitute, NuGet, OWIN 3.1, RabitMQ, SpecFlow, SQL Server 2016, VSTS, Visual Studio 2017, WCF, WiX, WPF

Slashed editorial costs by creating centralised taxonomy service for legal commentary systems enabling editors to significantly cut the time spent classifying documents. Developed in C# within an agile environment with CI facilitated by VSTS, SonarQube, Specflow, MSTest and NSubstitute. Improved test coverage by introducing IOC via Unity with ORM provided by Entity Framework. Resolved build stability issues by replacing network shares with ProGet accessed by NuGet / NPM. Introduced New Relic reporting permitting rapid identification of production issues.

Taxonomy information presented in an Atom feed needed to be ingested into the UK editorial systems.

Work areas included:
  • Identified security issues with existing data and liaised with the publisher to resolve for both ourselves and other clients
  • Production of .NET Core based proof of concept
  • Creation of OWIN based service to parse incoming data feeds and present this information to the taxonomy storage system

Taxonomy data was held in an existing centralised store which editorial systems could update or query via a WCF REST API.

Work areas included:
  • Resolved fragile inter system messaging through a protocol that ensured recoverable, guaranteed message delivery utilising RabbitMQ
  • Extension of API to accommodate hierarchical information
  • Modification of existing database schema to support hierarchical information and track taxonomy changes
  • Creation of OWIN based service to provide access to previous taxonomy changes
  • Support for natural language searches in both schema and service API
  • Significantly improved performance through schema optimisations and caching

Modification of ASP.NET based editorial systems to incorporate a common Angular control allowing editors to classify documents.

Work areas included:
  • Generation of NPM package to ease deployment of control into editorial systems
  • Creation of common picker and integration into the system
  • Extension of schemas to hold taxonomy information
  • Reduced hosting charges by migrating to Azure and then AWS

Updated tool critical for generating Tolley tax training manuals.

Work areas included:
  • Minimised printing costs with "tree saving" functionality
  • Greatly improved performance through parallelisation
  • Supported complex XSLT2 transforms via Saxon
  • Utilised Aspose for DOCX, ePub and PDF generation
  • Updated WPF UI to accommodate new functionality

Modification of web spidering service to support cross domain crawling and presenting this information via REST.

Build script creation and maintenance together with VSTS and agent administration. Migration from TFVC to Git.

NHS Solutions Provider (Freelance software developer, July 2013 to January 2014 - 3 extensions)

Skills ASP.NET, C# 4.0, CSLA, SagePay, SQL Server 2012, SSRS, TFS, VB, Visual Studio 2010

Improved revenue flow from blood analyte testing system by introducing individual subscription periods. Data entry via ASP.NET WebApp, manipulation and report generation though WinForms application.

Work areas included:
  • Management of AutoTask hosted request queue
  • Liaison with end-users to fully understand updates required
  • Migration from global to individual subscription periods
  • Addition of SagePay based subscription payment mechanism
  • Created new and revised existing SSRS templates and stored procedures
  • Updated database schema and associated CSLA code for new functionality

DCSL, Software Farnborough (Contract software developer, April 2013 to July 2013)

Skills ASP.NET MVC, C# 4.0, Entity Framework, SQL Server 2008, TFS, Visual Studio 2010, WCF, WPF, WWF

Created new source of income for Giant (a workforce management solutions provider) by allowing the sale of time recording services to agencies.

Work areas included:
  • Development of Iron Speed based website
  • Integration with SagePay for subscriptions collection
  • Generation of rdlc based management reports
  • Development of stored procedures and views
  • Creation of automated database and website update tool

Production of anonymous feedback system for healthcare professionals to help satisfy the recommendations made by the Mid Staffordshire report.

Work areas included:
  • Generation of MVVM WPF client for data collection with installation via ClickOnce from a well known web location
  • Production of ASP.NET MVC based web site for data collection
  • Development of WCF based RESTful web service which the data collection applications send anonymous feedback to
  • Integration of web service with "text local" mobile messaging service for delivery of SMS
  • Design tamper proof database schema for secure storage of anonymous feedback

Extended Workflow Activity Library used by WWF application to communicate with additional insurance broker web service. Modified Workflow used by GHG Loss Adjusters to use this new functionality.

iMeta, Technologies Southampton (Contract software developer, July 2012 to November 2012)

Skills Castle Windosr IOC, C# 3.5, MSTest, Oracle 10g, ORM, TFS, Visual Studio 2010, WWF, XML, XSL

Part of team customising Assassin, a Standing Settlement Instruction management system, to meet the requirements of specific financial institutions (such as Barclays and Credit Suisse).

Work areas included:
  • Generation of functional and associated task specifications for customisation tasks
  • Mentoring of and code reviews for offshore developers
  • Generation of coded server side WWF rules
  • Extend UI to support multi-select combo boxes. Reworked ORM query generator to accommodate multiple query values
  • Resolution of issues found during UAT
  • Branch generation and release building

HeathWallace, Reading (Contract software developer, March 2012 to July 2012 - 1 extension)

Skills ASP.NET, Cruise Control, C# 4.0, Hg, JScript, Kayako, SAP, Sitecore, Visual Studio 2010, TRIS, XML, XSL

Part of team building new Sitecore based website for Magnet.

Work areas included:
  • Extension of Sitecore to provide analysis of user data collected in external database
  • Integration with SAP based CMS
  • Integration with 20-20 kitchen design
  • Integration with Kayako Engage LiveChat
  • tegration with PostcodeAnywhere post code lookup service

Part of team developing Sitecore based website focusing on emerging markets for HSBC.

Work areas included:
  • Acted as reference point for integration with data feed mechanism (TRIS) provided by Thomson Reuters
  • Site capacity planning

iMeta, Technologies Southampton (Contract software developer, September 2011 to January 2012 - 1 extension)

Skills ANTS, Castle Windosr IOC, C# 3.5, MSTest, Oracle 10g, ORM, SQL Server 2008, TFS, Visual Studio 2008, WebSphere MQ, XML, XSL

Part of team resolving issues identified in Assassin, a Standing Settlement Instruction management system used by various financial institutions. Data provided from upstream sources via MQ and web interfaces was cleansed prior to passing downstream. A WinForm client allowed for manual updates to data.

Work areas included:
  • Fixed failing MSTests so that cc.net based continuous build environment functioned correctly
  • Modifed metaCore (proprietary ORM) to work with parameter limits imposed by underlying databases
  • Performance analysis via ANTS and associated database optimisation
  • Import / export SSI data to xls
  • Identifed protocol errors in Omgeo Alert connectivity
  • Produced PowerShell scripts to assist in log file analysis
  • Install and configure MQ environments, analyse and fix connectivity issues
  • Customer liaison to obtain information required to generate solutions

Sony, Basingstoke (Contract software developer, January 2011 to June 2011 - 1 extension)

Skills ADO.NET, C# 4.0, NUnit, Reporting Services, SQL Server 2008, TFS, VSTO, Visual Studio 2010

Part of team developing a bill of materials generation system used for outside broadcasting development quotations. Based around an Excel add-in, Sharepoint and Salesforce.com with support for remote working via Sync Framework.

Work areas included:
  • Maintenance of installer
  • Provision of management summaries using Reporting Services
  • Data import mechanisms for existing BOM .xls files
  • Development of tool to import vendor quotations into database

Design and develop Excel add-in and associated system service to validate, summarise and distribute sales data to other systems. Production of supporting database schema and stored procedures.

Vertu, Church Crookham (Contract software developer, May 2010 to November 2010 - 1 extension)

Skills ADO.NET, ASP.NET, C# 4.0, Cruise Control, LDAP, NUnit, Rational Synergy, ReSharper, SOAP, SQL Server 2005, Visual Studio 2010, WebForms, Web Services, XML, XSL, XSLT

Design, develop and support web service and ASP.NET / Ajax web sites that record phone manufacture, register customers and send relevant information to third party service suppliers.

Work areas included:
  • Migration from Visual Studio 2005 to 2010
  • Introduction of continuous build and test mechanism based around cc.net
  • Development of several new web services presenting differing data contracts to the same underlying customer registration system.
  • Development of style sheets (.xslts) describing newly introduced web services and the necessary transforms (.xsds) to fulfil them from existing data
  • Rewriting sql stored procedures so that they return xml documents rather than result sets
  • Provision of customer authentication and email services using OpenLDAP accessed via SDSP
  • Work on database to resolve deadlocks

NICE, Southampton (Contract software developer, August 2009 to March 2010 - 2 extensions)

Skills ASP.NET, C# 2.0, NUnit, SQL Server 2005, TFS, Unity, Visual C++, Visual Studio 2005, XML

Part of team developing software used to capture and organise audio and video recordings made by public safety operations (police, air traffic control, etc.). This covered all areas of the product from the server and database, through to the WinForm client distributed via an ASP.NET website.

Work areas included:
  • Modifed software to support both IPv4 and IPv6 based networks
  • Resolution of threading and database locking issues encountered in systems with multiple servers
  • Development of mechanism to detect tampering of database tables used within the system
  • Implementation of additional system administration functionality requiring updates to database tables, server access mechanisms and client control panels
  • Development of multi-threaded test harness to simulate multiple concurrent connections for stress testing of the server. Collection and analysis of performance metrics collected by the test harness
  • Resolution of various bugs and performance issues raised by customers

Momu, Marylebone, London (Freelance software developer, May 2009 to August 2009)

Skills ADO.NET, C# 3.5, FXCop, NUnit, SQL Server 2008, SVN, Visual Studio .Net 2008, WCF, XML

Design, develop and support WCF based RESTful web service that records payment information for developers of mobile phone applications hosted by O2 Litmus App store.

Work areas included:
  • SQL Server 2008 database to store information on developers and the accounts earnings are credited to
  • C# based web service implementing the payment workflow - i.e. validating incoming data, updating database tables and generating reports from which payments may be made

Vertu, Church Crookham (Contract software developer, September 2007 to December 2008 - 2 extensions)

Skills ADO.NET, ASP.NET, C# 2.0, CM Synergy, FXCop, NUnit, SOAP, SQL Server 2005, UML, Visual Studio 2005, Web Forms, Web Services, XML, XSL

Design, develop and support web service and ASP.NET / Ajax web sites that record phone manufacture, register customers and send relevant information to third party service suppliers.

Work areas included:
  • SQL Server 2005 based database to store information on phones, their owners and services subscribed to
  • C# based web service implementing the customer registration workflow - i.e. validating incoming data, updating database tables and forwarding information to other systems via web services and SyncML
  • Development of XSD describing the data consumed and produced by the web service methods
  • Production of customer registration and support web sites utilising this web service
  • Writing tools to aid the translation and re-skinning of Java and Flash applications shipped with the phone

Nokia, Farnborough (Contract software developer, January 2005 to June 2007 - 3 extensions)

Skills ADO.NET, ASP.NET, C# 2.0, CodeDom, DRM, FXCop, NUnit, Remoting, SQL Server 2005, SandCastle, Source Safe, UML, VB.NET, Visual Studio 2005, WinForms, XML, XSL

Part of small team designing, developing and supporting .NET based framework enabling test engineers to develop libraries which exercise mobile phones attached over a variety of media.

Work areas included:
  • Prototyping Windows Workflow Foundation based environment for specifying tests
  • Development of executables to host test libraries. Unattended testing was via a service controlling a bank of PCs that would flash mobile phones with the latest software and then execute a series of tests configured via a WebService or Click-Once application. Tests could be run locally using a WinForm.
  • Use of CodeDom to produce source files from an XML specification. The generated partial classes represent messages that can be sent to / from a mobile phone and provide byte stream serialisation.
  • Development of class framework to simplify common tasks, e.g. Audio capture and FFT analysis, OCR and image comparison / validation, error handling, analyse phone memory leaks, generate and disseminate reports from XML, transfer OMA and WM DRM protected content, control of CMU200, etc.
  • Maintenance of multi-threaded C++ communications layer that passes byte streams between test and phone over appropriate media (USB, Bluetooth, IR, FBUS) using relevant protocols.
  • Transferring class framework to central group for adoption as company wide testing mechanism
  • Production of PC based SyncML DM User Agent for testing phone SyncML implementation.

BigHand, Vauxhall, London (Contract software developer, December 2002 to December 2004 - 4 extensions)

Skills ADO.NET, ASP.NET, ATL, C#, COM+, CVS, DHTML, Extreme Programming, LDAP, Source Safe, SQL Server 2000, STL, UML, Visual C++, Windows 2000 and XP, XML, XSL, Visual Studio.Net

Part of team implementing the successor to LOTIES 2002, 2003, 2004 and SCL 2003 award winning digital dictation workflow software. Implemented using an n-tiered architecture where both windows and web based clients record and play back dictations, storing the audio files on centralised clustered servers. Inter application communications took place via XML documents passed over TCP sockets, intra application was based around COM.

Work areas included:
  • Design and develop in Visual C++, ATL and STL the server responsible for processing dictation workflows and disseminating results to clients.
  • Implement authentication process based around directory servers (typically Active Directory), or where unavailable NTLM. Synchronise the list of registered users with directory servers via LDAP.
  • Design and development in C# of streaming audio server and ASP.NET based web client using ADO.NET to access a locally held database
  • Work on unified real-time access to dictations on various digital recording devices via disparate SDKs.
  • Advising on .NET and database issues
  • Design, develop and tune server-side SQL Server schema and stored procedures. Initial ports to MySQL and Oracle.
  • Custom report generation using XSL to render output in the appropriate formats
  • Tuning and bug fixing within all system components, such as the MFC based client, bespoke client side transactional relational database and streaming recorder supporting Windows, WTS and Citrix

BBC Technology, Reading (Contract software developer, September 2001 to July 2002 - 1 extension)

Skills ASP, COM+, DHTML, Digital Rights Management, Real, Select OMT, Source Safe, SQL Server 2000, STL, Windows 2000 and XP, Windows Media, XML, XSL, UML, Visual C++

Part of team designing, documenting and developing a web based-system implemented using C++ as a series of COM+ components called from an ISAPI extension DLL. The purpose was to sell licences for and stream copyrighted media items to the public on behalf of various clients. The system hosted one of the most successful DRM implementations to date, accounting for 60,000 GBP+ of sales. Windows Media and Real DRM controlled access to the streams. For resilience the system was hosted within a load balanced web-farm with session data stored in a common database.

Work areas included:
  • Payment collection via WorldPay
  • Session state management via SQL Server 2000
  • Database schema design
  • Digital Rights Management of copyrighted media items

Royal Mail, Farnborough (Contract software developer, May 2000 to July 2001 - 3 extensions)

Skills CICS, COM+, IBM, middleware, MQ, MSMQ, Websphere, Windows NT, HDS

Provision of COM and middleware consultancy.

Work areas included:
  • Design and development in VC++ and VB of n-tiered COM+ based web front-end to a Mainframe application. Transaction proxies called by ASP pages used COMTI to populate CICS COMMAREAs. Operation within stateless web farms required the production of a state storage mechanism based around SQL Server 2000. Programmatic access provided through MSMQ, converted by the MSMQ Bridge into MQSeries messages to be processed by the mainframe application.
  • Designed, developed in C++ and documented cross platform (HP-UX, Windows 2000) MQ isolation layer insulating both organisation and COOL:Gen application developers from the underlying technology. A COM wrapper catered for VB and ASP developers. Inclusion of hooks for distributed transactions (Encina and MTS).
  • Support of Encina COM objects and associated broker.
  • Write and review middleware strategy documents on MQ, MQSI and ConstellaHub.

IBM Hursley, Winchester (Contract software developer, September 1995 to April 2000 - 5 extensions)

Skills Active Directory, ActiveX, ADSI, ATL, C, CMVC, COM/DCOM, DB2, HTML, Java, LDAP, MFC, NetBIOS, SAP, SecureWay, STL, TCP, UML, Visual C++, Win32, Windows NT / 2000, XML, MQ

Development and support of MQSeries for Windows NT / 2000 from inception to version 5.2.

April 1999 Integration with standard administration mechanisms such as LDAP and MMC.

Work areas included:
  • LDAP schema for use in Active Directory and Secure Way directory servers. Extensive prototyping in both C and Visual C++ was required to validate suitability of various schema designs.
  • Development in Visual C++ of both COM and LDAP update and query mechanisms enabling internal and external administration tools to control MQ installations.
  • XML based interfaces using Xerces-C and STL under Visual C++. Permitted administration of MQ to be undertaken using XML as opposed to the previous proprietary mechanisms.
  • Support of the Microsoft Clustering Services (MSCS) development

February 1998 Designed and developed components allowing MQ to exploit Windows 2000 facilities.

Work areas included:
  • Advised on the technicalities of and implemented the code to extend the MQ COM interfaces.
  • Investigated code changes required to support the Active Directory based security model.
  • Supported Microsoft's Active Directory Service Interfaces with the introduction of a new namespace. Involved considerable use of DCOM to provide a virtual directory - information held on individual queue managers being remotely accessed through ATL based COM objects.

April 1997 Development of MQSeries version 5.0. Besides advising new team members on MQ and others about using NT for development.

Work areas included:
  • Produced Internet based administration tools that utilise Java Applets.
  • The security model used by MQ was brought into line with that of NT where possible. Previously checks on user rights had been carried out on the authenticating machine (local machine or domain controller). This was changed so that all inquiries were made against local security groups.
  • The creation of an installation and service mechanism through InstallShield. To meet complex requirements considerable use of its API was made.
  • Generation and appraisal of technical documentation.

March 1996 Acted as interface between development and third line support to ensure speedy problem resolution. This entailed liaising with both customers and support staff across the globe to gather necessary information to provide solutions, be it a fix to MQ or recommended changes to NT configurations. Network problem analysis and resolution - mainly TCP and NetBIOS but some exposure to SNA.

Work areas included:
  • Assistance in the presentation of the MQSeries for Windows NT porting effort to other members of IBM staff in a number of educational sessions, both on and off site.
  • Support of MQAI (MQSeries ActiveX Interfaces).
  • The use and configuration of MQ in a variety of roles, identifying and documenting weaknesses found.
  • Network problem analysis and resolution - mainly TCP and NetBIOS but some exposure to SNA.

September 1995 Porting the MQ code base from UNIX to NT. The assignment involved extensive work with the Win32 API, using Microsoft Visual C++. Development took place within a team consisting of those knowledgeable in NT or MQ. Members were encouraged to transfer knowledge to others, providing a strong base for future developments.

Work areas included:
  • Provision of NT service to act as interface between the Service Control Manager and MQ components. This had to respond to start and stop requests, activating the appropriate MQ programs.
  • Design and development of installation mechanism using the set-up API provided with the Microsoft SDK. Besides the normal 'user intensive' method, there was a requirement for unattended installation to be available, where necessary onto remote systems. This program had to be capable of handling product fixes, applying only the patches appropriate to the installed product components.
  • Port exception handling from the original UNIX based model to one that could exploit the structured exception handling (SEH) mechanism provided by NT. Besides capturing and logging errors to both the event log and disk file hooks to error recovery code had to be provided.
  • Provision of internationalised messaging services. Text to be displayed was stored within a catalogue with access based on message and language identifiers. Besides producing code to retrieve these messages, an automated catalogue generation system was developed.
  • Addition of COM interfaces to provide access to MQ.
  • Generation and appraisal of technical documentation.

Eastleigh College, Eastleigh (Lecturer, September 1998 to July 1999)

Prepared and presented City and Guilds evening classes on C++.

ICL, Manchester (Freelance Lecturer, May 1998 to May 1998)

Produced and delivered NT part of seminar on VME, UNIX & NT internals.

MBA Systems Ltd., Winchester (Software engineer, January 1993 to August 1995)

Skills Booch, C, Data Feeds (CRS, Sequence, TOPIC etc.), DOS, MFC, Rational Rose, Visual C++, Win32, Windows 3.1, Windows NT

Design, produce and support data dissemination and presentation systems for the financial markets, operating under Windows NT, Windows 3.1 and DOS.

Work areas included:
  • Object orientated design and implementation in Visual C++ of customer based servers, running under NT. These used real-time data feeds (TOPIC3) from satellite or leased lines to construct databases from which information requests received from existing TOPICplus workstations could be satisfied. The databases were split into two areas (viewdata and instrument prices + volumes) maintained by separate servers. Each had to be self reliant, performing appropriate activities at pre-set times. To allow performance monitoring statistical information was logged to both screen and file. Besides coding, there was responsibility for producing large amounts of the servers design and acting as a reference point on data feed handling, due to previous experience in these areas. Supervision of contractors was required, together with the production of help files - both manually and via packages such as RoboHelp.
  • Object orientated design and implementation in Visual C++ of NT based data feed converter that transformed Sequence (a new X.25 based service from the London Stock Exchange) into CRS (a previous format) for use with existing systems. ODBC was used to manipulate a database of instrument information. The converter was composed of a number of separate applications communicating via IPC mechanisms, each logging statistical information to allow performance tracking to take place. Control was provided via dialog interfaces to each application. Although originally intended for use with all Sequence releases the TOPIC3 converter superseded this product. The conversion effort involved considerable liaison with the stock exchange over and above their Sequence user meetings.
  • Design and implement various servers that construct databases from numerous interactive and broadcast data feeds. The information from these was broadcast to user sites using the TOPICplus protocol via ISDN and satellite links. Support provided to the company operating the system.
  • Modification of both workstation and server components of DOS based bond dealing system. This was intended to further system functionality and improve security by DES encrypting the server - workstation link. Involved close work with the client during development and after sales support.

Alphaprint, Alton (Junior software developer, June 1992 to December 1992)

Apple Macintosh application development in C++.

Work areas included:
  • Designed and developed program allowing any address in the UK to be found via its postcode.
  • Enhancement of package to produce and control web-offset printing of labels for surgical envelopes. The program had to calculate the most efficient layout of irregularly shaped labels to minimise wastage.

IBM, Havant (Industrial trainee, July 1990 to September 1991)

Produced multi-media applications under various languages (including AVC and C) for both internal and external use. Appraisal of various multi-media packages, particularly in respect to their operation over LANs. Trained others in use of AVC a multi-media authoring package.

Work areas included:
  • Mouse operated front end, written under AVC, for accounting package using both the PC and AS/400.
  • Package to enable AVC to interpret word-processed documents with embedded commands. This allowed multi-media presentations to be quickly and easily generated from existing documentation.
  • ID-badge generator using C to control image capture card and SQL to access employee details database.