Gilford, New Hampshire, United States
Architecting, designing and implementing extensible, robust, maintainable business software solutions with a view to reusability, in peer-to-peer and client/server environments. Big-picture thinking combined with attention to detail. Facility with language, enabling effective communication between technical and non-technical staff. See Stack Overflow and GitHub profiles in Contact and Personal Info area.
Contractor for the SolidWorks subsidiary of Dassault Systèmes Design and implementation of a test-orchestration solution (efficient parallelization of automated tests spread across many machines) based on open-source automation server Jenkins, utilizing PowerShell, Groovy, and C#. Automated creation and customization of VMware vCloud VMs using PowerShell.
Developed ASP.NET intranet applications (ASP.NET Core / C# / jQuery) and PowerShell scripts for TripAdvisor’s IT department in support of internal processes such as onboarding / termination of workers and managing the life cycle of contractors. Mentored system administrators to encourage a culture of automation through scripting.
Part of a small team in the space of math education, fulfilling many roles. Kakooma, a family of mobile apps implementing variations of a math game: o for iOS (retired in June 2015): Architecture, implementation, QA, release management (Objective-C & iOS SDK, SQLite, PowerShell). o for Android (retired in June 2015): Architecture, implementation, QA, release management (CoffeeScript/JavaScript, HTML, CSS, bash), using web technology-based platform AppGyver Steroids (including contributions to their code base). gregtangmath.com [since re-implemented by others], a subscription-based website and online math program: Architecture and implementation of the back-end (including database and web services); architecture of the front-end with contributions to the implementation; QA; release management; website operation and maintenance; email-based customer support (C#, ASP.NET MVC, MS SQL Server 2008 R2, JavaScript, HTML, CSS, PowerShell).
Responsibilities include ensuring effective translation of high-level requirements into designs; overseeing lower-level designs created by developers, as well as implementing core components of the system. ECM (Enterprise Content Management): Co-design and majority of implementation of a centralized content- management and software-distribution solution for Riposte-based applications, based on Riposte itself. (Riposte is Escher’s flagship product: a distributed, peer-to-peer messaging system). (C++, VBScript, shell scripting). USPS CARS (Contract Access Retail Systems) project, a nationwide POS system supported by a data center operated by Escher: Contributions to the architecture of the data center, design and implementation of enhancements to ECM to facilitate centralized software updates. Design and implementation of the setup utility for installing thousands of workstations in the field. Data-center-side monitoring of the rollout, including on-demand data analysis and report creation. Providing expertise to the help desk during the national rollout of workstations in ca. 900 locations. RiposteExplorer: Specification, design, and implementation of RiposteExplorer, an application providing a convenient graphical user interface to the underlying Riposte API, and, most importantly, a rich, intuitive representation of Riposte’s data store. Regarded an indispensable tool, both in-house and by Escher’s customers. (VB, C++) Optimization of internal processes, such as maintaining a repository of template projects and code samples and shared utilities
Design and implementation of core and custom software components for the postal industry, in peer-to-peer and client/server environments, utilizing Riposte technology. T&T system for Portugal Post: Overall architecture, coordination of developers developing the web-based client application, design and implementation of the underlying web-service (HTML, XML, XSLT, JavaScript, VB) Mails: Design and co-implementation of many functional extensions to Mails, Escher's postal retail mail-acceptance application framework, used by virtually all Escher customers—postal organizations around the world. BulkMails: Architecture and design of a reference-data-driven framework for customized bulk-mails acceptance application, allowing for high-level transaction definition and flow control, complementing its older retail counterpart, Mails. In use in Denmark, Greece and South Africa. MRDE (Mails Reference Data Editor), the reference-data editor for both Mails and BulkMails: Development into a production-quality application in use today by virtually all Escher customers. Design and implementation of extensive enhancements, both to the editor and the overall Mails application framework. Design and implementation of support for the newer BulkMails framework. (VB). MailBroker: Design and implementation of extensions to MailBroker, the business-logic component of the Mails and BulkMails application frameworks, including dynamically calculated properties, support for multiple reference-data sets, robust error handling, and a web-service wrapper. (C++) ObjectExplorer, precursor to RiposteExplorer: Specification, design, and implementation of a graphical tool providing a rich, intuitive representation of Riposte’s reference-data storage subsystem. Regarded an indispensable tool, both in- house and by Escher’s customers. (VB, C++) Shared utilities: Creation and maintenance of an extensive collection of mostly command line utilities and shell extensions, primarily self-created.