Resume of Ray Gregoire

Email: info@webbug.com

Live in NYC


Overview

Senior developer and team lead. Expert in WPF, Silverlight 3.0, Sharepoint, KDB, C#, C++ and multi-threaded development. Financial experience spans Fixed income, Risk and Equity Trading. Real time ticker plants with the KDB database, Q language, .NET data visualization.

Education

Tufts University Electrical Engineering (BSEE 1991)

Boston University  (Graduate courses in Computer Science)

C# 3.0 test results: proveit10202009.jpg

Skills

Source Control

CVS, SVN, Vault

Charts

ComponentOne, Crystal Reports, Infragistics, Talerik

Creative

Photoshop CS4, Live, Sonar, Reason 4, Sibelius, Fruity Loops

Data Modeling:

UML, Entity-Relationships, Use Case Diagrams

Databases

Oracle 11, SQL Server 2008, SSIS, MySQL 5.4, Nhibernate, Access 2007, ADO, LINQ, ODBC, T-SQL

Design Patterns:

Business Objects, Model-View-Controller (ASP.NET MVC), Singleton, Facade, Proxy, Gateway, GOF, MVVM

Development Tools:

Bamboo, JIRA, Loadrunner 9.5, Microsoft Enterprise Library,  Putty,  Sharepoint, Visual Studio 2008

Financial

KDB with realtime data feeds using C# and Q language, Gemfire, Fixed Income, Equity Trading, Risk

Geospatial:

Google Earth plugin API in javascript/C#, Silverlight Map Control API in javascript/C#

Languages\API

C, C++, C#, Choicepoint , COM Interop, ISAPI, KDB, LINQ, Q, Regular Expressions

Messaging:

Bloomberg, Reuters, TIBCO\Talarian

.NET Technologies:

WCF, WPF, .NET 3.5, ASP.NET, ADO.NET, Reflection, Web Services, Generics

Platforms and Apps

MS Windows NT/2000/XP/Vista/7.0, Red Hat Linux, Office, Workflows, Sharepoint 2010

Security

NMap, PKI, Sarbanes-Oxley Compliance, SSL, Single Sign On, SQL injection prevention, Wireshark

Web Development::

ASP.NET 2.0, AJAX, CSS, Expression Blend, Javascript, JQuery, Silverlight 4.0, SOAP, SSL, TCP\IP, Nunit

Web Servers:

IIS, Apache

XML:

XAML, XML, XSLT



Principal Developer \ Team Lead

Current position ( since 12\2009) [full time]

Principal technologist for a 600 person structural engineering firm. Report directly to director of IT. Select technologies and implement solutions to satisfy the diverse needs of different departments within the firm. Create custom applications and Sharepoint 2010 sites with SQL Server 8.0, C#, WPF, Ajax, JQuery, WCF, Infopath 2010 and Telerik controls. Responsible for all facets of the internal corporate intranet, permissions, databases, and software. Managing a deliberate move towards private cloud computing using VMWare. Create internal software standards and delegate projects to junior developers. Meet with department heads in Accounting, Engineering, HR, Sales and Marketing to discuss how technologies can be applied to improve respective work flows. Implemented a process-driven approach to managing user expectations using Numara Trackit! Maintain existing applications and databases. Intensive DBA work, creating databases, tables, schemas, stored procedures and triggers.  Provide tier 3 support to users.

Current Interests

Developing a resizable, 3D, real-time UI client 'globe' to display geographic latitude and longitude of where web server visitors originated from. Completely web server agnostic and directly sensed low-level IP activity  Correlated this to global coordinates which were then displayed on a moving globe. Non-rectangular (Circular) Client rendered in several implementations. In pure WPF, browser mode in Silverlight or pure Winforms. Leveraged both the Google Earth and Silverlight Virtual Earth plugins with the option to use other rendering plugins. Developed an threaded abstration layer in C# to communicate asynchronously with javascript. Heavy use XAML, Interops, referencing winforms assemblies from Silverlight and WPF.

New York Life 2009 [contract]

Designed and implemented a proof of concept web application on time and within budget for a mutual life-insurance company. This application demonstrated the viability of using Silverlight 3.0 with RIA data services. The target audience was a seasoned and highly structured NYL development team with a disciplined and firmly established IT culture. The architecture was designed for both Web 2.0 (See Silverlight screenshot) and mobile-based users (See IPhone screenshots) . Duplicated legacy functionality to render charts, tables and PDF output, but added a splendid UI with a pattern-centric architecture using discreet business objects, suitable for efficient collaborative development. Visual output impact exceeded legacy presentation. Used the MVVM pattern with Silverlight and RIA. Focused on massive code re-use and redundancy thinning and best practices for transitioning n-tier to a newer 2-tier paradigm. Designed the solution in VS 2008, coded in C# and XAML, mentored, and documented using wikis, doc and video lessons.

Southwest Microwave 2009[contract]

Lead developer for a manufacturer of electronic perimeter intrusion detection systems of nuclear power plants, military bases and industrial facilities. Implemented the next generation installation, deployment and diagnostic software in C# and .NET 3.5 with WPF and WCF to communicate with microwave sensors over both RS422 and TCP\IP. Designed a UI (Southern Microwave) that was multithreaded, highly event responsive, fault-tolerant, intuitive, and internationalized for European languages, Kanji, Hangul and Arabic implementations. Ported 10+ year-old MFC\C++ code to work in a managed CLR environment. Architected an entirely new .NET solution that would simplify an unmanaged codebase, and improve user experience. Daily interaction with embedded, DSP and microwave  engineers and upper management. Agile mode.

Lifelock 2009[contract]

Team lead of ASP.NET technologies used in the next generation of the Lifelock.com web portal. Designed a system from the ground up to enhance user experience and maintain bullet-proof security for a high profile, high volume web portal. Followed an agile development process in collaboration with a Java back-end team, delivering 2 builds per week. Produced a highly maintainable, loosely-coupled gold deliverable after six-months. The Service Oriented Architecture (SOA) consisted of an Oracle\Java back-end which was exposed business objects via WSDL to .NET consumers. Hands-on work included designing the site to thwart SQL injection attacks using a suite of custom validators in C#. Wrote scores of regular expressions to ensure data integrity. Designed a facility to obtain querystring parameters from banners that deep-linked to the site, then used these parameters to load custom content. Used AJAX for textcontrols to provide autocomplete capability. Used ASP.NET MVC, JQuery and Nunit and NHibernate extensively throughout the site.

Ogilvy & Mather, New York City, NY 2008[contract]

Team lead for a SOA framework to supply geospatial XML content to both Flash and Silverlight WPFclients. This framework enabled geospatial services discovery and composition in a semantic, client-agnostic manner. WCF provided discovery information similar to a WSDL. Hands-on work included building a multi-threaded data access layer with LINQ in C# with .NET generics,.

Team lead for several Unilever brands including, Ragu, Ponds, Slimfast and Vaseline. Coordinated with creative to manage client expectations in an aggressive agile development mode in C# and VB.

Young & Rubicam, New York City, NY 2008[contract]

Team lead and developer for a 3-tier ASP.NET application for Dell Computer. This application functioned as an automated storage repository for advertising briefs. Implemented the presentation layer using Webforms in C# and a database layer with SQL Server 2005 stored procedures. Used SSIS to import text data from legacy databases.

Acted as liason with the creative department to solidify a coherent application design based upon changing user requirements. Functioned as the technical lead\mentor for a 5 person development team. Extensive use of the Infragistics Web Grid, Microsoft Enterprise Library 4.0. Implemented hundreds of stored procedures, functions and triggers and the associated C# wrappers. Used the SQL XML data type to construct queries with variable-length parameter lists (see code fragment) . All development was conducted in an Agile mode. Delivered and deployed application on time.

Merrill Lynch, New York City, NY 2007[contract]

Senior .NET developer position building portions of a real-time trade blotter application in Winforms in C#. Developed different subsystems corresponding to different within this application including a query builder to construct complex SQL queries business objects using a simple graphical metaphor. These queries were shipped to a Gemfire low latency real time server and results were populated into a blotter. Developed a blotter business rules class using a model-view-presenter design pattern. Designed this so UI Control data value changes in forms would invoke this class to adjust things like field visibility, enabled condition, field and list box contents etc. All rules were contained in an XML file that BAs could easily change. Developed a class that inherited from errorprovider to perform robust data validation. Developed a multi-threaded class to use obtain reference data using C# reflection. Stored reference data in a .NET DataSet for consumption throughout the lifetime of the blotter. Source control used was Subversion.

Barclays Capital, New York City, NY 2006-2007[contract]

Senior .NET developer position building a suite of multi-threaded C# Winform plugins for the fixed income trading desk. Each was multi-threaded and provided graphical representations of real-time bond data from KDB ticker plants. Engaged in weekly dialog with bond traders to refine and enhance application features. Developed stored procedures in the Q language to extract real-time KDB ticker data to different Winform front-ends. Examples of the analytical tools included swaps matrix intraday which would display swaps, bond buy\sell aggregates for the 2, 3, 5, 10 and 30-year instruments, desk on\off per trader. Provided features like zoom, nested graphs, export to Excel, persistence of last-selected user settings. Provided 2nd-tier support to both the NYC and London desks for issues related to BTEC, eSpeed and Bloomberg connectivity. At Barclays Capital part of my responsibility was to develop, maintain, and enhance KDB functionality to allow real-time data visualization of market data using smart-looking charts. Developed a C# class to implement a high performance timerI using QueryPerformanceCounter  and QueryPerformanceFrequency (both part of the unmanaged Kernel32 via interops). Encapsulated KDB client code with a C# class inherited from idisposable to create a 'cache' that a winforms client could handle and clean up easily. This included 'flipping' data so that .NET 2.0 could understand series and coordinates. Modified this architecture ultimately to simply spit out raw data to any subscriber.

TD\Ameritrade, Jersey City, NJ 2006[contract]

Technical Lead providing development expertise to add new features to an online trading application in an equity trading environment. Primary modules in this system were based upon a Facade design pattern with numerous factories. Added features and enhancements to an ISAPI DLL in C++.

CIOView, Maynard, MA 2006[contract]

Technical Lead developing a high performance XLL in C++ to implement a user-defined function (UDF) suite to extend the functionality of Excel. Developed an application in C#. to convert XML files into XSLT files. The XML files were created in Word and contained tags identifying data items that the translation utility recognized and replaced with the XSLT value-of API. Base64 encoded image files and embedded them directly in XHTML using a CDATA tag for browser rendering without the image binaries. Developed a multi-threaded splash screen in C#. to fade in during application load and fade out when the application was finished loading. Used .NET form opacity to control.

Developed an application update facility in C#. This Windows service communicated with an update server using .NET remoting to obtain product updates. Incorporated  a second .NET remoting interface to allow the service to be controlled by a system tray application.

 MAPFRE Insurance, San Juan, Puerto Rico 2003-2005[contract]

Technical Architect developing a multi-threaded windows sockets middleware component in both C# and C++ to obtain Credit, C.L.U.E.¢ç Property, MVR and other information products from Choicepoint.  Designed this to function as a Windows service or as an ActiveX control and to be driven programmatically by applications written in C++\C#\.NET, Delphi, Visual Basic or even by Excel, Word or Lotus 123. Integrated this into a legacy insurance application.

Applebees, Kansas City 2002-2003 [contract]

Technical lead for a 5 person team of C++ developers. Architected and developed a multi-threaded Windows NT service in Visual C++ 6.0 that functioned as a communication layer for a high-volume point of sale (POS) application. Emphasis on asynchronous sockets. When touch-screen terminals recorded credit card swipes, data files would be generated that the service would detect.and subsequently perform asynchronous  communication to AMEX, VISA, and MASTERCARD. Designed a facility to handle protocol failures and make attempts until success.

Virtual CAD Toronto, Ontario 2002[contract]

Technical lead to build a system to generate 3-dimensional jpeg renderings of mechanical parts from input data from a web page. Developed a Windows NT service in C++ to detect when input data from a web page was received. Sent this data using COM++ automation to a 3rd party CAD application which then generated a jpeg file.

Cendant, Cambridge, MA 2000-2001[contract]

Technical lead to port www.Century21.com from a Unix Platform to the Windows 2000 Platform. Reverse engineered the site from Broadvision to one using pure Active Server Pages. Migrated a database with hundreds of thousands of property listings from Oracle to SQL 7.0. Developed a new interactive Flash-based menu.

Boston University Medical Center, Boston, MA 2000 [contract]

Technical lead to develop a web-based clinical trial application using Active Server Pages (ASP) and SQL server 2000. Created a control panel to provide quick access to clinical trial data for researchers and physicians. Developed a facility for patients to register online and enter journal-based reports of their health status over a period of weeks and months.  Developed a form generator which allowed researchers to design data entry forms by dragging and dropping form elements.

Omnicomm, Miami, FL 2000[contract]

Technical lead to build a web-based clinical trial application in active server pages (ASP) with an Oracle back-end. This application was used by clinicians to test a heart stent device.

 

Independent Projects (1996-present)

        Developed several Internet applications with Visual C++, MFC and Windows Sockets including: a TCP/IP Connection stay-alive windows system tray application; a test tool that simulated large numbers of URL hits in short, user-definable bursts to simulate high traffic browser use; an IP communication layer for an Omnivox telephone menu system extension DLL to send data obtained from a phone menu system; An ATL COM control that generated an event containing the URL that browser user chose. An ISAPI DLL that generated HTML output based upon a user-configurable template file which contained placeholders (a precursor to Active Server Pages)

Varian Gloucester, MA (1997)[contract]

Senior Software Engineer position developing a real-time event logging system in Visual C++. This layer was responsible for storing very large quantities of data sent from an ION Implant system's sensors. The data was then used for post fabrication analysis. Database logic used both ActiveX Data Objects (ADO) and OLEDB.

 Picturetel Andover, MA (1997)[contract]

Senior Software Engineer position integrating Internet Explorer into a video-conferencing computer server. Provided a keyboard-only method to send events to the IE since a mouse was absent. Developed a diagnostic application in Visual C++ query type library information directly from instantiated COM objects and display the results in a view pane.

Internationalized a single binary executable to display differently depending on which Windows language version was being used. This supported Kanji, Hangul and English. Created a set of resource DLLs and performed a Loadlibrary so the program could display in a different language "on the fly".

FAA (via Unisys) Cambridge, Massachusetts (2/1995-8/1996) [contract]

Senior Software Engineer position developing parts of the GUI for the Safety Performance Analysis System (SPAS). This application was used by the Federal Aviation Administration to allow aviation inspection line operators to be alerted of potential safety problems before they occurred by applying risk based heuristics to quantitative airline performance measures. Developed using Win32 with Visual C++ 2.1. Implemented document serialization code, several nested views in the interface, custom controls, a roll-up painting algorithm using several of the MFC collection classes, in-place editing for tree and graph data items, mouse and mnemonic connections to all GUI commands, tabbed dialog boxes and image list controls. Added print support for all of the views with support for headers, footers and color output. Connected context sensitive help using the Windows 95 help compiler.

Developed an HTTP server and an HTML browser in C++. The completed system was used as an internal company news system. Used Visual Parse (TM) as a lexer for the HTTP 1.0 spec. This lexer parsed input from an asynchronous socket connection. The server accommodated multiple connections, and each socket connection operated within it's own thread for efficiency.

Purespeech Cambridge, Massachusetts (8/1994-1/1995)[contract]

Senior Software Engineer position using C++  to develop a Windows application to pipe text via DDE 3.0 from a natural language processor to the Symantic Act!(TM) contact manager. Used hidden child windows to handle DDE-executes and DDE-requests. Exposed a simple API so a user at a microphone could send voice-based queries to Symantic Act!.

Monitor Company Cambridge, Massachusetts (1/1994-7/1994) [contract]

Senior Developer position involving the port of a Macintosh application to Windows 3.1 with MFC. Rewrote all GUI code in C++ using the document/view style of the Microsoft Foundation Classes 2.5 (MFC).

Symbiotics Cambridge, Massachusetts (3/1993-1/1994) [contract]

Developer position implemented the Netbios protocol in C into a multi-protocol abstraction layer. This layer included FTP sockets 2.1, 2.2 and 2.3 TCP/IP and IPX. Developed portions of networked Dynamic Data Exchange (DDE) between OS/2 2.1, Windows 3.1 and Artisoft’s Lantastic LOS. Created networked DDE demos using Word, Excel and Freelance.

Lotus Development Cambridge, Massachusetts (9/1990-2/1993)[contract]

Senior Quality Assurance Engineering position. Developed unit test automation in MSTest to test the color and font subsystems for Lotus 123 for Windows. Developed a CRC file comparison DLL in C 7.0. This sent screen bitmaps through a high order polynomial CRC to MStest. Provided training to QA Engineers to use this new tool. Wrote test outlines, designed automation based on these outlines in native 123 macros.