Jason M.McGuiness,

B.Sc. (Jt.Hons.), MSc by Research, CITP, MBCS, MInstP.
130C Warwick Way, Pimlico, London, SW1V 4JD. U.K.
Email consultant@hussar.demon.co.uk
Mobile: +44 (0)7775 652959

Personal Details:

Date of birth: 3rd March, 1969

Nationality: British.

Sex: Male.

Marital status: Single.

Languages: French (passable).

Preferred Employment Location: Central London, but willing to travel within the M25.

Employment Summary:

  1. Period, Title and Company: June 2007 - to date. Permanent role.
    Senior Technical Developer for Barclays Capital http://www.barclayscapital.com, Docklands, London.
    Duties: To investigate and solve performance issues with client-server software that connects Equities Algorithmic trading software, written in C# using .Net 2005, (primarily FTSE index arbitrage and proprietary algos.) with an interface in managed C++, connecting to the XTP trading system, written in C++ using .Net 2003 on Windows 2003. This small but extremely high-pressure project involved assuming such responsibilities as liaising directly with the traders, liaising with their management and their front-office algo. developers. A highly self-driven role that required considerable motivation and people skills. The project was due to be cancelled until my efforts demonstrated the potential of the system, so that finally, after the 4 years prior to my joining, my work meant they could trade using XTP. Successfully improved performance by at least 6 times, to latencies consistently under 10ms, by using such techniques as: making the internal caches hierarchical so improving their locking, optimising the threading and queuing, using suitable locking, improving the message protocol using a greedy batching algorithm to replace the Nagle algorithm, using Boost and optimising the compilation options. This was enabled by carefully extending the originally limited C# test harness to ensure that the client behaviour was maintained. Only now will the connectivity and XTP be replaced by the massive STOMP & SubM system from Lehman’s. My efforts also directly caused an increase in performance of the OMS (within XTP) by 4 times, by causing a multi-threaded memory manager to be used. I also single-handedly increased the performance of all of the exchange links in XTP by 30%, a direct performance increase of the whole of XTP, this was achieved by using Boost, examining the parameter passing, removing superfluous string conversions, utilising the multi-threaded heap and optimising the compilation options, amongst other techniques. The traders often said that only by my influence was the performance of the rest of XTP improved, so my impact was above and beyond the component I was initially employed to address.
    Management: Directly reporting to the traders and their front-office developers. Project manager, developer, coordinator.
    Languages: C++, managed C++, C#.
    Tools: MS .Net 2003, UCM/ClearCase, ClearQuest, Perforce, Rational Quantify & Purify.
    Software: MS .Net 2003 & 2005, Win 32 API, Windows sockets, ATL, COM, Boost.
    Hardware: Development on Windows XP, Windows 2000 and Windows 2003 servers.
  2. Period, Title and Company: April 2004 - May 2007. Permanent role.
    Senior Technical Developer for Credit Suisse http://www.credit-suisse.com, Docklands, London.
    Duties: Develop and maintain the business critical Value at Risk systems for regulatory reporting to the FSA and Swiss financial authorities. My primary responsibility was for the core Risk-Server component, written in C++ using Boost and OTL, that implements the Credit Suisse “Credit Risk +II: Value at Risk Methodology and Historical Simulation” models, which involves not only hist. sim., but XM, VCV and BMC models, amongst others. This role also included developing the software according to business and regulatory requirements as well as supporting the current systems in production. System support included rapid deployment of business-critical fixes, to ensure that the generation of the business critical VaR reports could be submitted in time. The BAU work involved liaising with the RMM quant. team to assist specifying further risk classes and their models, then implementing those new models, for example adding the Credit Risk model. As a senior developer I was also responsible for overseeing the continued development of the risk server as a highly scalable and robust service that ran on large servers that need to maintain high availability, for example extending the risk server to move from caching fixed, 2 year time-series to variable-length time-series, by writing a replacement LRU cache that made use of a custom-implemented unordered map, advanced locking and the ability to grow the cached time-series in memory, so only fetching the minimal amount of data, whilst enhancing the hit-rate of the cache to 99.99%. Initially these ran on Sun Solaris machines but I was directly involved with the migration to Egenera blade frames running Linux, so converting the code-base from the Sun Forte compiler to G++. Amongst my other influences, I was instrumental in ensuring that a version of GCC was used that could generate optimised code for Opteron processors, the original compiler with the installed OS being too old. Also I was directly involved with upgrading our Linux development environment to use the KDevelop IDE, KDE window manager and other modern tools.
    Management: Senior technical developer in the MaRS team, reporting both to the Senior Technical Architect and the RMM quant. team.
    Languages: C++, XML, XSLT and SQL program development. Oracle PL/SQL.
    Tools: Kdevelop, ClearCase, Sun Forte Workshop.
    Software: GCC v4.2, Sun Forte compiler suite v6.2update5, Iona Orbix Orb and Corba communication layers, Boost, Hoard, OTL.
    Hardware: Development on Egenra blade frames (dual processor, 4 core Opterons) on Linux (Suse Enterprise v9.0), Sun Netrix and Enterprise servers (8-16 UltraSparc IIIi+ systems).
  3. Period, Title and Company: April 2001 - June 2002. Permanent role.
    Senior Technical Lead Developer for Dell Corporation http://www.dell.com, Bracknell.
    Duties: Design and create a highly scalable and robust C++ service on Windows 2000 for flexibly transferring XML-based data from one data base cluster to another, with minimal impact on the target data base. This involved dynamic dependency analysis of the data to be transferred using an XML-based rules system with XSLTs to perform the data transformations and fetches from the back-end data bases. The implementation involved a fully-asynchronous, message-passing using wrappers to MSMQ, distributed-server design, which automatically load balances across the servers. The system I designed had two logical components, a system to construct the messages from the rules which passed those messages, of many mega-bytes each, to the servers that loaded the data into the front-end data bases. As part of a two-person team I designed and implemented a Pricing Engine for performing sophisticated, real-time, multi-currency calculations that included non-uniform discounting, country-specific taxation (both sales and environment) and legal break-down of the total price into the sub-totals required by country-specific legislation. The role also involved giving programming advice and mentoring other team members.
    Management: Senior technical developer in the core architecture team, reporting directly to Dell UK’s Senior Technical Architect.
    Languages: Visual C++, XSL, XSLT and XML, JScript, Visual Basic and SQL program development. Microsoft SQL Server based SQL.
    Tools: Visual Source Safe, Numega Bounds Checker, Compuware Track Record, Internet Information Server, Microsoft SQL Server 2000.
    Software: Microsoft Developer’s Studio v6.0 using the MSXML v3.0 and v4.0 DOMs, COM and DCOM. MSMQ and OLE DB. NT Service programming. DCOM and web service implementation and programming.
    Hardware: Development on Windows 2000 Advanced Server clusters.
  4. Period, Title and Company: August 2000 - April 2001. Permanent role.
    Senior Technical Lead & Architect for Felspar Limited http://www.felspar.com, London.
    Duties: Advise on all technical design and programming issues. Design base systems tools and architecture. Perform design analysis and implement code enhancements and performance analysis and improvements. Wrote white paper on corporate policy for programmatic caching of business objects. Implemented massively-scalable, shared-memory, multi-process caching on Windows NT.
    Management: Senior technical advisor of all development teams. Responsible for all technical design issues, reporting directly to the Chief Technical Officer and co-director.
    Languages: Visual C++, JScript, Visual Basic and SQL program development. Microsoft SQL Server based SQL.
    Tools: Rational Rose, Visual Source Safe, Internet Information Server, Microsoft SQL Server v6.5 & v7.
    Software: Microsoft Developer’s Studio using the Win32 API programming. ODBC and ADO programming. NT Service programming. DCOM and web service implementation and programming.
    Hardware: Development on Windows N.T. Servers and Workstations.
  5. Period, Title and Company: April 2000 - July 2000. Contract role.
    Contract system support specialist for BancTec Limited http://www.banctec.com, Colnbrook.
    Duties: System support for the GEMS clearing system involving on-site customer support, bug fixing and system development.
    Management: Senior team member of closely knit on-site installation and development team. Responsible for P.C. based development, reporting to the customer liaison manager.
    Languages: Visual C++, Java, JavaScript, Visual Basic and embedded SQL (ESQL) C language program development. Informix based SQL.
    Tools: Visual Source Safe, Internet Information Server, Unix RCS version control, Informix SQL database server, Microsoft SQL Server 7.
    Software: Unix based Informix databases. Microsoft Developer’s Studio using the Win32 API programming.
    Hardware: Development on HP-UX based Unix RAID Servers, Windows N.T. Servers and Workstations.
  6. Period, Title and Company: September 1998 - June 1999. Contract role.
    Advanced Technical Architect/Programmer for Intelligent Micro Software Limited http://www.eschertech.com, Frimley.
    Duties: Highly technically involved programming in a specialist language for designing and writing an object-orientated, automated, software-based program to validate and verify other programs. This involves the used of highly sophisticated, mathematical logic based techniques to analyse the input program’s structure and design to verify its soundness. Duties also included compiler design verification. A Theorem Prover is a highly specialised piece of programming that requires expertise in solving highly abstract and complex logical problems using First Order Logic. The work done in this contract enabled me to be invited to take up, and complete, an MSc by Research by a lecturer from the University of Surrey who was employed to work on various language issues, including ensuring completeness of the programming language and provability requirements of that language.
    Management: Team Leader for the Theorem Prover Project, reporting directly to the CTO and Director of the company. Technical Architect for the Theorem Prover design and strategy.
    Languages: In-house developed, mathematical - logic based programming language (called “Perfect”) and Visual C++.
    Tools: Mortice Kern Systems Source Integrity.
    Software: In-house developed tools (released as “Perfect Developer”) and Microsoft Developer’s Studio.
    Hardware: Development Windows N.T. Workstations.
  7. Period, Title and Company: March 1998 - August 1998. Contract role.
    Contract system support specialist for BancTec Limited http://www.banctec.com, Colnbrook.
    Duties: System support for the MARS Remittance processing system involving on-site customer support, bug fixing and system development.
    Management: Senior team member of closely knit on-site installation and development team. On-site team leader responsible for P.C. based development, reporting to the customer liaison manager.
    Languages: Unix based SQL. Visual C++ and C language program development. Unix-based 4GL Various in-house scripting languages.
    Tools: Unix RCS version control, Informix SQL database server.
    Software: Unix-based Informix databases. Microsoft Developer’s Studio using the Win32 API programming.
    Hardware: Development on HP-UX based Unix RAID Servers, Windows N.T. Server, Windows 95, Windows for Workgroups and OS-2 Warp based P.C.s.

Education:

  1. MSc by Research, part-time, started 2000, completed January 2007, at the University of Hertfordshire http://www.herts.ac.uk, Hatfield, Hertfordshire:
  2. Joint Honours Degree in Mathematics with Physics (2ii), completed 1990 at University of Bristol http://www.bris.ac.uk, Tyndall’s Avenue, Bristol.
  3. College, completed 1987 at Eton College http://www.etoncollege.com, Windsor, Berkshire.
  4. Brainbench http://www.brainbench.com/ transcript ID for “C++” & “C++ Fundamentals”: 6628294

Professional Bodies:

Personal Projects:

Experience Summary:

Management: Team Leader (5+yrs), Technical Architect (4+yrs).

Languages: C++ (14yrs), XSL/XSLT/XML (1+yrs), Java (6+months), UML (8+months), C (9yrs), Assembler (5yrs), Delphi (1yr), Pascal (3yrs), Fortran (5yrs), SQL and T-SQL (1yr).

Mixed language programming: C++/C/JScript/VB/Delphi/Assembler/C (combined 7yrs).

Platforms: Windows XP, 2000, 2003 & NT (8yrs), Unix (Linux (3+yrs), Sun (2yrs) & HP (1yr)) including installation and configuration of clustered web servers.

Techniques: Object Orientated Design (11+yrs), Object Orientated Analysis (4+yrs), Safety Critical Design (2yrs), and Unix scripts (6+ months).