Semi-Retired, Gold Canyon, AZ and Bakersfield, CA
May 1, 2013 to Present
Built PHP/MySQL database backed websites and implemented small fixes for former clients to keep active in programming. Always open to interesting projects, especially if most of the work can be done remotely.
Ebay Inc, PayPal, Scottsdale, AZ
September 7, 2010 to May 1, 2013 – Software Engineer (MTS-1)
Contract through Experis (formerly ComSys), later directly to PayPal as an employee.
Checkout Group: Fixed bugs in PayPal web payment checkout flows and worked on the UX project which is a version of the checkout screens. I also designed and implemented the A-B facility for the Rapids flows which allowed a specified percentage of production web traffic to use new code and screens for evaluation prior to full release. Work was in C++ on Linux with Oracle database.
Reporting Group: Fixed bugs, worked on the Ship-to-Fund project modifying Actuate report specifications and changes to C++ code modules on Linux. I participated as a member of the team to evaluate alternative reporting engines to replace the Actuate report writing tool. After choosing IBM Cognos, we integrated the IBM Cognos reporting engine into the PayPal environment. My contribution was the automated configuration of the Cognos servers in the production environment (no LAN connections are allowed from development). During this period I Installed and configured Cognos on 52 very large Linux production servers and 34 development servers. The target capability was to generate 50 million monthly statements for PayPal consumers within the first 5 days of each month. Work was in C++ and Java.
Shipping Group: Fixed bugs and implemented new features that interfaced PayPal shipping with Ebay shipping facilities. Work was in C++ and Java on Linux.
Wells Fargo Bank, Phoenix, AZ - Teller Vision (TV) Data Group
May 2010 to August 2010 – Contract Software Engineer
Contract through Experis (formally ComSys).
Achievement: Improved the performance of the message queue and report writing modules of the transaction store-and-forward facility so that the bank could absorb the additional branches during the Wachovia merger.
· Refactored the MQ Client to fix bugs, add statistics, and improve performance and maintainability.
· Refactored the GLO report writing module to improve performance and maintainability.
· Participated in the on-call production support team for the Teller Vision Data group.
Both modules are C code and used Oracle ProC imbedded SQL to access an Oracle database. The MQ software is a client on an IBM WebSphere messaging network; it transfers transactions to the IBM mainframe. The programs run on a redundant HPUX Unix server. Used Clearcase, VI, Eclipse, wdb, and ssh development tools.
OnState Communications Corp., Burlington, MA
January 2003 to January 2010 – Software Engineer/Co-Founder
Achievement: Successfully launched a start-up company with two other co-founders, which operated for 7 years before being sold.
· Architected the product line. OnState offers virtual call center facilities as Software-as-a-Service (SaaS) over the Internet running hundreds of isolated ACDs for customers per server site. Voice and chat calls arrive by way of Skype, Web pages, or PSTN (over SIP carriers) and are distributed to phones of call center agents over the Internet using Skype, SIP, or GTalk client software. The system runs in a large data center on a bank of 20 Windows 2003 and Linux (CentOS) servers over VMware on redundant Dell 1955 Blade hardware.
· Wrote the Call Center software’s Core Processor, a web application server similar to JBoss except that instead of using Java, it compiles and executes a general-purpose proprietary scripting language based on graphically-interconnected icons to describe data-flow logic. (The scripting language for business and call-processing logic allows the company to adjust quickly to changing business opportunities.) Wrote the following Core Processor components from scratch in C++ STL using Visual Studio: recursive descent compiler and runtime package for script execution; HTTP application server; XML DOM library; XPath compiler and execution package; Web services facilities (SOAP); data encryption and hashing (TripleDES, MD5); licensing facilities; alarm facilities; and server component launching facilities. Ported open-source components: OpenLDAP, OpenSSL, ZIP, GZIP, and Expat into the runtime package.
· Wrote a SIP server and client components in C#, which included the SIP and RTP protocols with Nat traversal and registrar. This required extensive skills in XML, networking, and multithreading. This was written from scratch using SIP Internet Standards (RFPs) rather than derived from another package.
· Wrote the system monitoring facility in C#. This facility provides a real-time global view of the state of all ACD components with alarms, and allows starting, stopping, and logging of these components on any of the production servers. The facility consists of a server on each production host, a gateway module for message routing, and a client for display and control.
· Wrote a Windows audio driver in C++. It accepts audio streams from up to 32 processes and provides audio input for up to 32 processes. This includes channel summing for conferencing.
· Maintained back-end components of the Ajax based supervisor console and call recording facility. This Java (JSP) code uses the Apache Tomcat Servlet engine. This runs in both Linux and Windows.
· Documented the scripting language in reference and training manual formats.
· Provided backup support and maintenance for customer service personnel.
· Used waterfall SDLC with 2-3 week cycles. Tools were Subversion (SVN), Bugzilla, and MS Visual Studio for Windows and VI for Linux. All members of the company work from home over the Internet.
Wicked Good Software, Inc., Manchester, NH
October 2001 to January 2004 – Contract Programmer
Achievement: Helped the startup company successfully establish its product line in return for stock in the company.
· Architected the Web2School school administration software package, a SaaS product for elementary and secondary schools.
· Designed the code module structure and database architecture. All code was Java.
· Wrote the module that computes GPA, honor roll, and transcripts with major work on several other components. Wrote the code in Java 1.3 and 1.4, which required extensive database (JDBC and MySQL) and multithreading expertise.
Perimeter Technology, Manchester, NH (Now QPC)
October 2001 to January 2003 – Principle Software Engineer (converted to employee)
July 2010 – Contract Programmer
Achievement: Updated the company’s flagship product to run on a more marketable operating system without feature loss or destabilization thus extending the product’s life.
· Ported the VU-ACD MIS program from SCO UNIX to Windows 2000/XP. This program monitors activity on large Call Centers (up to 4,000 agents) from data obtained from Centrex telephone switches such as Nortel DMS-100 and Lucent 5ESS.
· Changed the architecture of the MIS from multiple single-thread processes communicating by way of shared memory to a single multi-threaded process under Windows. Wrote the code in C and C++.
· Maintained the new version of the code and provided backup to Customer Service.
· Supported SQA, training, and documentation personnel.
Perimeter Technology, Manchester, NH (Now QPC)
February 1997 to October 2001 – Contract Programmer
April 1991 to October 1991 – Contract Programmer
April 1992 to December 1992 – Contract Programmer
Achievement: Provided Perimeter Technology with a new product, which was subsequently sold to another firm for $10M.
· Designed and coded the Net-VU Web server, client server, and provisioning and switching modules. This program detects a Web page access, notifies the next-available call center agent, and initiates a one-on-one Internet chat session. The server contained logic and features similar to those found in Centrex telephone ACD switches. This was a new concept in the 1990s. Wrote the code in Java 1.3 with extensive use of XML.
· Supported documentation, training, sales, and SQA personnel.
· Coordinated with other team members who built the GUI components.
· Contains some Native language calls from Java to C for performance improvements.
Achievement: Completed 80 percent of a Java-based redesign of Perimeter’s VU-ACD/100 MIS product (project was cancelled due to loss of funding).
· Participated in extensive on-site training in the use of UML with the TogetherSoft tools.
· Worked in a four-member design team to decide module and database layout.
Achievement: Added several major features to Perimeter’s flagship product, the VU-ACD/100 MIS thus enlarging the company’s market.
· Wrote the network interface to the Lucent Technology 5ESS switch for the incoming event data stream, and “Recent Change and Verify” (RC/V) parsing and generating routines for switch provisioning in SCO OpenServer using C.
· Ported a DOS-based GUI program to Windows NT and Windows 95 using Visual Studio and C.
Inserted serial-direct connect (TAPI) communications
capability into the GUI using Visual Studio and C.
Summa Four, Inc.,
Manchester, NH (now part of Cisco)
Achievement: Assisted a team of engineers in implementing SNMP-based network management station (MNS) software to provision and manage a new telephone switch manufactured by Summa Four.
· Wrote the SMNP agent driver using C and C++ running as imbedded firmware under VRTX32 on 68030 and 68040 processors
· Wrote the MNS GUI running on Solaris and Windows 95 using Java and the Advent SNMP Java library. The project required approximately 60 separate screens, most with real-time display update and alarm processing.
· Ported the Fusion TCP/IP protocol stack with PPP to the VRTX32 firmware environment. This included a port of the Lance Ethernet driver and serial drivers.
Boston Technology, Inc., Wakefield, MA (Now Comverse) – Networking Group
May 1996 to September 1996 – Contract Programmer
Achievement: Successfully delivered product to BT’s customer NTT in Japan.
· Made major modifications to the TCP/IP over X.25 streams driver to make it compatible with the Japanese variant of X.25. This was part of the networking component of BT’s Voicemail system. The work was done on Sun workstations using C with Clearcase tools. The target platforms were X86 machines running Unixware.
· Travelled to Japan and successfully deployed the product to the satisfaction of a very demanding QA department at NTT.
Software Contractors’ Guild, Manchester, NH
July 1995 to Present – Webmaster/Owner
Achievement: At a time when on-line posting of resumes was nearly non-existent and most applicants circulated resumes by way of U.S. Mail, provided an on-line resume-posting service to the software contracting community. Job posting and access to resumes is free. Contractors pay a small membership fee to post resumes. The site currently hosts approximately 1,000 members and receives around one million hits per month.
· Designed and implemented the Website using 1990s technology and without funding. Currently redesigning it to take advantage of today’s technology.
· Wrote the CGI programs to accept member sign up and data update screens to maintain the member database. The site is fully automated requiring almost no manual intervention.
· Coding is all in C for a Windows NT platform; later, ported it to free BSD UNIX and then to Red Hat Linux.
· Recently rewrote the entire website using PHP.
Digital Equipment Corporation, Nashua, NH – UNIX System Group Networking (now HP)
November 1994 to May 1996 – Contract Programmer
Achievement: Invented an extensible SNMP subagent for Digital UNIX to satisfy Digital’s need to modularly extend SNMP agents within the Digital UNIX platform.
· Designed and wrote the network management software for Digital UNIX 4.0 (formally OSF1) in the UNIX Networking Group. The innovation was use of a master-agent program attached to the kernel that accepted SNMP requests from the network (using UDP) and internally distributed the requests to portable subagents attached to other UNIX daemon programs managing SNMP accessible data. The design went through the ITEF review process and subsequently became an Internet standard RFC 2741, Agent Extensibility Protocol (AgentX).
· Active in the IETF AgentX Working Group to develop Internet standards for the accessible SNMP agent.
· Maintained the FTP and INS (Yellow Pages) networking utilities and accomplished other software engineering tasks as part of the UNIX Systems Networking Group at Digital.
XNT Systems, Inc., Concord, NH
January 1994 to November 1994 – Contract Programmer
Achievement: Helped a startup company establish its initial product line, primarily international callback and telephone debit card service. The company was eventually successfully sold.
· Wrote the software for both of the client-server LAN applications in C using Microsoft’s Visual Studio development environment.
· Designed the server portion to accept database query and update from the client screens, and to direct the external control program on the Excel telephone switch. Network connections used NETBIOS over TCP/IP, Netware Lite, and LAN Manager protocols, and used FoxPro DBASE database routines.
Digital Equipment Corporation, Littleton, MA – Network Systems Group, DECnet for OpenVMS
September 1993 to July 1994 - Contract Programmer
Achievement: Fixed Digital’s OpenVMS operating system so that it could communicate directly with the Internet eliminating the need for a special router with protocol conversion capabilities, and simplified the underlying structure of the code for easier maintenance.
· Added a session-layer capability for DECnet/OSI for OpenVMS to support TCP/IP protocol in addition to OSI and Phase IV DECnet protocols.
· Added support for BIND, X500, and local file name services to derive an IP address.
· Ported large parts of the project from BLISS to DEC C; coding was mostly in kernel mode VAX internals using DEC C, MACRO-32, and BLISS. The target equipment ran VAX VMS and ALPHA VMS operating systems.
Tekelec, Inc., Morrisville, NC – Eagle STP Group (now part of Oracle)
April 1993 to September 1993 – Contract Programmer
Achievement: Completed Screening Table routines that were to be used in Tekelec’s Eagle STP/1 switch, and SS7 signaling transfer point (STP) equipment based on Bellcore’s SEAS standard.
· Wrote the user command parser, screening table database, field matching algorithms, and unit test tools.
· Coded in C on 486 PCs using Microsoft C/C++ compiler at the client’s site. The target processor used 286 firmware.
Coral Networks, Corp., Westborough, MA
March 1993 to April 1993 – Contract Programmer
Achievement: Acted as a “white-glove” reverse engineer to derive the Vitalink communications protocol (VCP) for T1 media. Customer needed someone who had no prior knowledge of this protocol and could determine the protocol entirely from observations in the lab.
· Carefully designed each test in the lab and documented the observed results in a format that was acceptable to the company’s lawyers. Successfully identified all aspects of the protocol using this method.
· Wrote a prototype version of the VCP protocol, which ran on the client’s LAN bridge/router product, and successfully connected to other equipment already running Vitalink.
· Coded in UNIX C using GWU/960 compiler for an 80960 RISK processor firmware.
Summary of October 1969 to December 1992 (first 23 years)
· Perimeter Technology, Contract Programmer – Helped develop flagship product line, the VU ACD/100. (C++)
· PC Telecom, Inc., Contract Programmer – Developed a Windows GUI for fiber optic test equipment. (C).
· Digital Equipment Corporation, Contract Programmer – Developed Filebridge, a front-end for DEC EDI. (C++)
· Digital Equipment Corporation, Contract Programmer – Wrote the real time kernel firmware for a protocol-conversion product (DECnet to Datakit). C and VAX assembly.
· AT&T Bell Labs at Ward Hill, Contract Programmer – Designed firmware controller software for METROBUS lightwave transmission product (C and C++).
· ATEX Corp. (division of Kodak), Contract Programmer – Developed imbedded firmware for a computer terminal design for the publishing industry (C programming).
· Northern Telecom (Nortel), Contract Programmer – Developed firmware for DFMS, a telephone equipment monitoring and trouble-tracking system (C programming).
· Harbridge House Inc., Senior Engineering Consultant – Technical manager, project director, team leader, Project Management software development.
· Honeywell, Marine Systems Division, Lead Engineer (over a 5 person team) – Scientific FORTRAN modeling and analysis of sonar tracking data on the Navy’s torpedo test range.
· Harbridge House Inc. for U.S Navy (shipyards), Contract Programmer – Systems analysis and software development (Fortran, Cobol, Basic). Project management software.
· Pearl Harbor Naval Shipyard, Electronics Engineer – Field service engineer for U.S. Navy shipboard sonar, communications and weapons systems.
References are available upon request.
Additional information at the Software Contractors Guild