SUMMARY
Generalist software developer with a focus on front-end development, with experience in Windows desktop, native iOS, and mobile/web environments, as well as middle-tier and cloud-based services work. Industries include scientific and medical instruments, data visualization tools, and educational games.
LANGUAGES & ENVIRONMENTS
- C# and .NET Framework with MS Visual Studio .NET
- C & C++ with MS Visual Studio 5 & 6; MFC & ATL
- Objective C/C++ with XCode; CoreData, CoreGraphics, and CoreAnimation libraries
- HTML5, CSS3, JavaScript & TypeScript; Angular 2+ and Ionic; some AngularJS & Cordova
- Microsoft Azure, AAD, ADAL; IIS & ASP.NET, OWIN
- MS SQL Server & SQL Azure with Entity Framework; some Oracle
- MS-DOS, MS Windows, and Windows Server; some MacOS & iOS & BSD
- Prior experience with xBASE and Visual FoxPro; VB6, VBA, and other BASICs; 80×86 assembler; PostScript & PDF; SCO Unix, Pick, DEC PDP & VAX/VMS, Novell NetWare
EMPLOYMENT HISTORY
Cantus Firmus, LLC (Oakland, CA) – Partner / Technical Lead
August 2016 to Present
Independent development of mobile and web/universal applications:
- Adapted a printed educational card game into an interactive iPad application, with touch-based exercises, custom animations, in-app purchases and downloadable content.
- Prototyped web apps with Ionic, Angular, and Google Firebase, including a multimedia daily meditation reader and an airport finder with GIS data from Google and ESRI.
- Currently developing a web application for learning music theory, with basic musical staff notation and real-time pitch analysis of the user’s singing voice using the microphone.
OSIsoft, LLC (Philadelphia, PA & San Leandro, CA) – Senior Software Developer
January 2012 to July 2016
Team member on applications and services related to the company’s proprietary historian, the PI System. (Note: related to my previous employment at Omicron Consulting; see below.)
- For an iPad data viewer application, I focused on data caching with CoreData, background updates, and extending the unit testing framework to support automated acceptance tests with formatted output, screen captures, simulated events, and intercepted web requests.
- Designed classes for a middle-tier service to transform input search criteria into URIs for a back-end search provider; optimized processing and cross-tabulation of results back to the client; added a self-hosted server to intercept HTTP requests for testing.
- For an Azure-based cloud product, I focused on user and resource management with Active Directory, authentication, messaging, and storage.
Thermo Fisher Scientific (Philadelphia, PA) – Senior Software Engineer
August 2006 to January 2012
Mainly front-end development on desktop chromatography and other applications in the informatics division. (Note: hired permanently from contract position at Syncro; see below.)
- Extended Agilent 1100 instrument controller to support autosampler wellplates and 1200 series with new data format; redesigned the real-time monitor/control UI to accommodate a much greater number of data and setpoints.
- Technical lead for subcontractors on other LC and GC instrument control projects.
- Designed sample sequence editor and related functionality for a new version of our CDS in .NET; Agilent 1100 work above used as the basis for all instruments in the new system.
- Wrote base classes and C++ templates to enable rapid development of numerous file importer plugins, supporting a wide variety of formats from different manufacturers.
Syncro Technology Corp (Langhorne, PA) – Developer (Contract)
May 2005 to August 2006
Maintenance and new functionality for various scientific and medical instruments:
- Enhancements to an instrument controller for the Agilent 1100 diode array detector to support multi-channel and spectral acquisition.
- Prototyped addition of BIS/EMG and spirometry data to a patient monitor, using C++ and a custom simulator.
- Helped modify autosampler control software in VB6 for an immunoassay analyzer system, to support an external manufacturer’s instrument.
Omicron Consulting, Inc. (Philadelphia, PA) – Developer
May 2000 to January 2005
Consultant on a number of different projects, primarily for our client OSIsoft, LLC (see above):
- Modified archive classes and VBA integration hooks to support bi-directional file version compatibility in an MFC application; project lead for a closely-related ActiveX control.
- Prototyped an early mobile application (PocketPC) for viewing web-hosted SVG files using Microsoft eMbedded Visual C++ and a third-party control.
- Worked on initial version of a web-based data viewer using Microsoft SharePoint, with JavaScript and XHR for dynamic updates.
- Overhauled in-house automated build system using VB6, SQL Server, and Visual SourceSafe client.
Prior Employment History – 1985 to 2000
Developer and senior developer at several telemarketing/telephone services companies in the Philadelphia region:
- DBMS for leads and reporting, mainly using various releases of FoxPro.
- Scripting for both custom and commercial diallers, both preview and predictive systems.
- Involved in hardware and network maintenance as needed.
EDUCATION
High School: Performing Arts School of Philadelphia, 1981-85
University:New York University, Tisch School of the Arts, 1986-87. North Carolina School of the Arts, School of Design and Production, 1989-91