Ross Fruen : C# contractor based in Hampshire

Summary

Ross Fruen, who is currently based in Basingstoke, is an experienced software architect and developer with over twenty years experience in developing systems using Microsoft technologies. For the first decade this was in C++, MFC and COM and subsequently via .NET.

Working in diverse industry sectors has provided an understanding of the various business drivers behind modern IT systems and the ability to adapt quickly to different environments. A history of working both alone and as part of a team, coupled with extensive design and implementation experience and a proven ability to impart systems knowledge, provides rapid positive results for your project.

Achievements include; writing an award winning system upon which one company has made it into the The Sunday Times Microsoft Tech Track 100 for several successive years, the development for a department of a truly automated hardware testing system that scaled to multi-national deployment, agile techniques enabled a simple customer registration system to evolve into the replacement for both manufacturing and marketing MIS systems.

Of particular interest are contract .NET development opportunities 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.

Experience and qualifications

Design
Agile, TDD, UML
Languages
C++, C# (1.0 onwards)
Frameworks
ADO.NET, ADSI, Entity Framework, LINQ, WCF, WebForms, Win32, WinForms, WPF
Web technologies
AJAX, ASP.NET, ASP.NET MVC, CSS, DHTML, HTML, JavaScript, jQuery, XHTML, XML, XSL, XSLT
Source control
CVS, Mercurial, Rational Synergy, Source Safe, SVN, TFS
Test frameworks
MSTest, NUnit
Servers
IIS, LDAP, MSMQ, Oracle, SQL Server, WebSphere MQ
Environments
CruiseControl.NET, ReSharper, TeamCity, Visual Studio

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 Portsmouth University.

Full, clean driving licence.

Availability

1st June 2016

History

: Woking (Contract software developer, March 15, 2009 to now)

: (Freelance software developer, August 2013 to January 2014)

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

Maintenance and enhancement of blood analytes testing system. Data entry via ASP.NET WebApp, manipulation and report generation though WinForms application Management of AutoTask hosted request queue. Liaison with end-users to fully understand updates required. Work areas included:

  • Migration from global to individual subscription periods
  • Addition of SagePay based subscription payment mechanism
  • Adding new and maintaining existing SSRS templates and stored procedures
  • Updates to database schema and associated CSLA code for new functionality

: 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
 

Provision of Iron Speed based time recording website for a major workforce management solutions provider. Work areas included:

  • 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. 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 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 Claims Management company to use this new functionality.

: Southampton (Contract software developer, August 2012 to December 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. 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. Rework ORM query generator to accommodate multiple query values
  • Resolution of issues found during UAT
  • Branch generation and release building

: Reading (Contract software developer, March 2012 to July 2012)

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

Part of team developing Sitecore based website for major retailer. 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. Integration with PostcodeAnywhere post code lookup service.

Part of team developing Sitecore based website focusing on emerging markets for one of the worlds largest banks. Act as reference point for integration with data feed mechanism (TRIS) provided by Thomson Reuters.

: Southampton (Contract software developer, September 2011 to February 2012)

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:

  • Fix failing MSTests so that cc.net based continuous build environment functioned correctly
  • Modify metaCore (proprietary ORM) to work with parameter limits imposed by underlying databases
  • Performance analysis via ANTS and associated database optimisation
  • Import / export to xls
  • Identify protocol errors in Omgeo Alert connectivity
  • Produce 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

: Basingstoke (Contract software developer, January 2011 to June 2011)

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 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.

: Church Crookham (Contract software developer, May 2010 to December 2010)

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

: Southampton (Contract software developer, August 2009 to April 2010)

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:

  • Modify 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

: 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. 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

: Church Crookham (Contract software developer, August 2007 to January 2009)

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

: Farnborough (Contract software developer, January 2005 to July 2007)

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.
  • Develop 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.

: Vauxhall, London (Contract software developer, December 2002 to December 2004)

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

: Reading (Contract software developer, September 2001 to July 2002)

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. Its 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. Access to the streams was controlled via the Windows Media and Real DRM mechanisms. 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

: Farnborough (Contract software developer, May 2000 to July 2001)

Skills ATL, C, ClearCase, COM+, COM/DCOM, CVS, Host Integration Server, MFC, MSMQ, Rational Rose, SQL Server 2000, STL, Visual Basic, Visual C++, Win32, Windows 2000, XML, MQSeries
 

Provision of COM and middleware consultancy. Tasks 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.

: Winchester (Contract software developer, September 1995 to April 2000)

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. Research, design and development of the following areas:

  • 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.

  • 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, the following activities were carried out:

  • 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. Areas of activity 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 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.

: Manchester (Lecturer, May 1998 to May 1998)

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

: Eastleigh (Lecturer, September 1998 to July 1999)

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

: 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. Assignments 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.

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

Apple Macintosh application development in C++. Assignments 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.

: 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. Assignments 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.