David E Keeney, PE
Lead Engineer

OnState Communications Corp

 

Offering more than 30 years of software engineering experience in telephony, Network, data communications protocols, Internet, Windows, and software tools development.

Languages: Java, C#, C, C++, Macro-32, BLISS, Pascal, FORTRAN, BASIC, COBOL, LISP, Prolog, OPS-5, DIBOL, PL/M, ALGOL, Assembly, DBase , Postscript, SQL, TCL/TK, Perl, HTML, JavaScript, ASP, Visual Basic, and special-purpose languages.

Hardware: IBM PC Pentium,x86 (MSDOS, SCO UNIX, ZENIX, Linux, Microsoft Windows 3.X, Windows 95/NT/2000/XP/2003Server), Digital Alpha(OSF1, UNIX, VMS, Digital Unix), VAX (VMS, UNIX), PDP-11s (IAS, RSX-11M+, RT-11), PDP-8 (OS8), DEC10 (TOPS-10, ADP), Amdel (UNIX), HP1000, 2000, 3000, Wang VS, 2200T, Arete 68020 (UNIX), Rainbow (CP/M), Zenith Z89/Z100 (CP/M), Sun Workstations (Unix), Macintosh (System 7) and others...
Firmware projects: MicroVAX, Z80, 8085, 8344, 8351, x86, 80960 68030, 68040 processors.

Education

B.S. in Electrical Engineering, Oregon State University, 1969
M.S. in Computer Science, University of New Hampshire, 1989
Registered Professional Engineer (License PE-3927 HI, since 1975)


 

 

Technical Work History

OnState Communications Corp, Lincoln MA

Jan 2003 - Present; Vice President of Engineering

OnState ICS Phone System

Responsible for implementation and productizing many of the components of the ICS system with principle responsibility for the Call Processor. This processor compiles and executes a general purpose scripting language, which is based on graphically interconnected icons to describe the data flow logic.

 

Developed implementations of the following technologies from Internet standards (RFCs): Recursive-descent compiler and runtime package, HTTP web server, XML, XPath compiler and execution package, Soap protocol, WebServices, MD5 hashing, TripleDES encryption, ODBC driver interface, Sip protocol (server and client components), RTP protocols, Nat Traversals, low-level audio drivers for Windows, and process monitoring and launching facilities. All coding was in C, C++, and C#. The call processing and ACD facilities were developed using OnState’s proprietary scripting language.

 

Perimeter Technology (subsidiary of Applied Digital Solutions), Manchester NH

Oct 2001 – Jan 2003; Principle Software Engineer

VU-ACD/NT MIS
Ported the company’s flagship product line from SCO Unix to Windows 2000/XP. The VU-ACD/NT is a MIS to monitor activity in large call centers (up to 4000 agents) using Centrex telephone switches such as the Nortel DMS-100 and Lucent 5ESS. The architecture of the MIS was changed from multiple single threaded processes communicating via shared memory to a single multithreaded process. All code was in C and C++.

 

Wicked Good Software Inc. Manchester NH

Oct 2001 – Jan 2004; Contract Programmer (work on the side)

Web2School School Administration software
Developed the module that computes student GPA, Honor Roll, and Transcripts for a school administration software product. Major work on several other components. Lead architect for the entire system. Coding in Java 1.3 and 1.4.


 

Perimeter Technology (subsidiary of Applied Digital Solutions), Manchester NH

Feb 1997 - Oct 2001; Contract Programmer

NetVU Chat-ACD Product
Architect and implementer on a project for a Web Call Center ACD system - Net-VU - which detects a surfer accessing a Web page, notifies the next available call center agent and initiates a one-on-one Internet chat session between the surfer and the agent.

The server contains logic and features similar to a Lucent 5ESS Centrex telephone switch to distribute calls to agents. Handles hundreds of web pages, multiple call queues, multiple teams, and hundreds of agents grouped into teams. Coding is in Java JDK 1.2.2 for server application and configuration GUI. Personally designed and coded the Net-VU Web server, Chat server, provisioning, and switching modules. The configuration GUI and agent GUI were coded by others (about 10%). The product was deployed on Windows NT 4.0/2000.

The second phase of this program integrated e-mail into the ACD system such that both Chat and e-mail contacts are distributed using the same Net-VU switch engine. The engine was scaled to be useable by large call centers. Coding is Java JDK1.3 with extensive use of XML. This version of the product is deployed on Windows NT/2000 and Linux. Completion date 3/2001. Perimeter Technology was able to sell rights to the Net-VU technology to another firm for $10M.

VU-ACD/100 MIS Product
Worked on a redesign of the VU-ACD/100 MIS in Java 1.4 using UML with the TogetherSoft tools (10/2001). The tracking of Net-VU agents and web 'calls' is handled by the existing Call Center VU-ACD/100 MIS, integrated with regular phone traffic information from Nortel DMS-100 and Lucent Technology 5ESS switches.

Previous to that, wrote a front-end module for the MIS that interprets messages from a Lucent Technology 5ESS switch (in addition to the DMS100) and provides the information for storage and display in the VU-ACD/100 Centrex Call Center MIS. This included parsing and generating Recent Change and Verify (RC/V) messages for switch provisioning. Development environment was SCO OpenServer, using C. Work performed on-site.

Previous to that, ported a DOS-based user interface program (originally written for an earlier Perimeter project) to Windows NT and Windows 95. Coding was Visual C++. Work was done off-site.

An additional project was to insert Serial Direct connect and modem (TAPI) Communications capability into a windows product. Coding was C++ using Visual C++ for Windows NT and Windows 95.

Summa Four, Inc., Manchester NH

Sept 1996 - May 1997; Contract Programmer

Summa Four made telephone switching equipment. Assisted a team of engineers in implementing Network Management Station (NMS) software to configure and manage a telephone switch using SNMP facilities. Development was on SUN workstations and PCs. The SNMP agent software was coded using C and C++ and ran under VRTX32 using 68030 and 68040 processors. The NMS platform ran on Solaris and on Windows 95 and was written in Java and used the Advent SNMP Java classes. The project required about 60 separate screens, most with real-time (within 1 second) display update and alarm processing. Unfortunately, the project was cancelled before it was completed.

Ported the Fusion TCP/IP stack with PPP to the VRTX32 environment. This included a port of the Lance Ethernet driver and Serial drivers.

Boston Technology Inc., Networking Group, Wakefield MA

May 1996 - Sept 1996 ; Contract Programmer

Boston Technology made Voice Mail equipment that sold primarily to the larger telephone companies. Worked on the networking software, which interconnected various components in the system. In particular, modifications to the TCP/IP over X.25 streams driver. Development was on SUN Workstations using C and C++ with the Clearcase tools. Target platforms were X86 machines running Unixware.

 

Software Contractors' Guild, Box 257 Nottingham NH

July 1995 - Present; Part-time work

Created the Software Contractors' Guild Website. Developed the CGI programs to accept member sign-up and data update HTML forms and maintain the member database for the Software Contractors' Guild. Also constructed all of the Dynamic HTML pages used by the Guild Website. Coding was performed in C using Visual C++ development environment on a Windows NT machine. Continues to maintain the Guild. Visit the Guild's home page at http://www.scguild.com.

Ported the entire Software Contractors' Guild Website to a Unix platform using FreeBSD Unix and an Apache Web Server.

Developed and continues to maintain the Website for the IETF AgentX Working Group, which is developing the Internet standards for the extensible SNMP agent. Visit this site at http://www.scguild.com/agentx/.

Digital Equipment Corporation, (ZK0) Nashua NH, UNIX Systems Group, networking

November 1994 - May 1996; Contract Programmer

Developed Network Management Software for Digital UNIX 4.0 (formerly OSF1) in the UNIX Networking group. The task was to construct an extensible SNMP Agent (eSNMP) with a master-agent program accepting SNMP requests from the network (using UDP) and distribute the requests to portable sub-agents attached to other UNIX daemon programs managing SNMP accessible data.

Active in the IETF AgentX Working Group to develop Internet standards for the extensible SNMP agent. Many of the ideas developed for this project later evolved into the SNMP AgentX Standard RFC 2741.

Performed maintenance fixes for bugs in the FTP and NIS (YP) networking utilities and other software engineering tasks as part of the Unix Systems, Networking Group at Digital.

XNT Systems Inc, 5 Green Street, Concord, NH 03301

January 1994 - November 1994; Contract Programmer

Developed the software for client/server LAN applications: International Callback and Telephone Debit Card projects. The server accepted database lookup and update from Windows 3.1 or Windows NT based client update screens and call processing requests from a PC-based control processor operating an Excel telephone switch. The server was installed as a system service on a 486 or Pentium platform running Windows NT. Network connections used NETBIOS over TCP/IP, Netware Lite, and Lan Manager protocols. CodeBase5.1 libraries were used to implement the FOXpro DBASE database routines. Developed in C using Microsoft Visual C++ development environment.

 

Digital Equipment Corporation, (LKG) Littleton MA Network Systems Group, DECnet for OpenVMS

October 1993 - July 1994; Contract Programmer

Developed new releases for Session Layer of DECnet/OSI for OpenVMS. Added a session layer capability to support TCP/IP protocol in addition to OSI and phase IV DECnet protocols. Added support for BIND, X500, and local file node name services. Porting of BLISS code to DEC C. Coding was mostly for kernel mode VAX internals, coded in DEC C, MACRO-32, and BLISS in a VAX VMS development environment. The target machines are VAX VMS and ALPHA VMS environments.

 

Tekelec Inc., 3000 Aerial Centre, Morrisville NC 27650

May 1993 to October 1993; Contract Programmer

Developed gateway screening modules for the Eagle STP/1 product, an SS7 signaling transfer point (STP) equipment based on Bellcore SEAS standard. Wrote user command parser, screening table database, field matching algorithms and unit testing tools. Coded in C on 486 PCs using Microsoft C/C++ 7.00 Compiler at client's site. Target processor 286 firmware.

 

Coral Networks Corporation, 8 Technology Dr., Westborough, MA 01581

March 1993 to April 1993; Contract Programmer

Reverse engineered Vitalink Communications Protocol (VCP) for T1 media. Coded in C with UNIX environment, using GWU/960 compiler for 80960 RISK processor firmware. Wrote the VCP protocol modules for the T1 Wide Area Network interface card of the client's LAN bridge/router product. Included packet translations from VCP format to Ethernet, 802.3 (LLC, SNAP) and Coral internal formats.

 

Perimeter Technology Inc. 11 Trafalger Square, Nashua, NH 03063

April 1991 to Oct 1991 and April 1992 to Dec 1992; Contract Programmer

Developed modules for the RT100 and VU/ACD-100 Call Management Information Systems used on the Northern Telecom DMS-100 Automatic Call Distribution (ACD) switch. This product accepts call tracking data from the telephone switch and records and reports real-time and historical statistics on telephone system usage. The software runs on SCO UNIX and ZENIX platforms and uses INGRES and CBASE database management facilities. Coded in C on a SCO Unix environment at client's site. Experience with TCP/IP and NETBIOS LAN network facilities.

Wrote a DOS-based program that had to run on the original IBM PC. This program contained Serial I/O direct connect and modem support with TAPI, TCP/IP local LAN connections talking to a Unix host, File I/O, text-based data entry screens, real-time display of changing data, business graphics displays to the screen, text and graphics reports to Print Manager; selectable fonts, and colors for both the screen and the printer. Development environment was C. Work was performed on-site.

 

PC Telecom Inc. 17 Hedgerose Lane, Dist 31 Concord, NH 03301

Oct 1991 to April 1992; Contract Programmer

Developed a test system controller (TSC) for Laser Precision Corporation, Utica, NY. Laser's fiber optic test equipment locates distance to breaks in a fiber optic cable for the telephone industry. The TSC is the user interface that allows users to specify test setup, initiate tests, and display and store the attenuation plots, which are the results of the tests. It also uses unattended dial-up phone connections to control the optical test heads and optical switches that make up the test equipment.

Coded in C using Microsoft Windows 3.0 with the Microsoft SDK. Used technologies in B-tree database, data entry screens, graphics data plotting on screen, text and graphics printing, modem control scripting, and ANSI X3.28 data communications protocol.

Digital Equipment Corporation (MK02) Merrimack, NH 03054, Systems Engineering Group, EDI

Sept 1989 to Aug 1991; Contract Programmer

Designed and developed FileBridge for DEC/EDI. Digital's Electronic Document Interchange (EDI) product. FileBridge is generic bridge software that serves as a front-end to DEC/EDI. Coded in C on VAX VMS machines at client's site. Used compiler and database technology, Rdb, SQL, DECforms for the user interface, and VMS internals. Also developed a set of Bisync communications protocol modules and a script processor for handling dial-up and connections to Value Added Networks (VAN's), which distribute the EDI messages.

Built product for fixed price to Digital's product standards in the research, prototyping, production design, coding, debugging, user documentation, testing, and product delivery effort. Managed a four-person team, served as lead designer, and wrote and debugged about half of the code.

Digital Equipment Corporation (MK01) Merrimack, NH, Computer Special Systems Group, networking

July 1988 to Aug 1989; Contract Programmer

Developed software for a Data Communications Gateway product, DECxpress 100, a LAN network bridge between Digital's DECnet (serving both VMS and ULTRIX) to AT&T's DataKit, a fiber optic wide area network protocol. Coded in VAX C and VAX MACRO-32 at customer site. The 512 Channels, T1 throughput rate, and tight timing restrictions made this an especially interesting project.

·   Wrote the real-time executive and drivers for a PROM-based board containing a MicroVAX chip. The software included an Ethernet Driver, Serial Console Driver, and a specialized driver for interface to a Fiber Optic link.

·   Wrote modules that provided downline loading and dump facilities on Ethernet (MOP), 802.3 LAN packet processing,

·   Wrote full console driver for debug and diagnostic facilities.

·   Wrote software tools, including the entire C run-time library, for this firmware environment.

·   Wrote testbed running under VMS that simulated the runtime environment. This testbed was used by other programmers to functionally test the higher layer protocol software before the target hardware became available.


AT&T Bell Laboratories, Ward Hill Facility Haverhill, MA

Aug 1987 to Jan 1988; Contract Programmer, MTS

Designed control software for the METROBUS lightwave transmission products. Designed automatic fault isolation and protection switching logic for a new set of DS1C and DS3 transmission interfaces. Coded in C in a UNIX environment and downloaded to circuit cards containing 80186 processors.

 

ATEX Corp. (Division of Kodak, Bedford, MA

May 1987 to Aug 1987; Contract Programmer

Developed firmware for a computer terminal designed for the publishing industry, which displayed the text on the screen as if it had been typeset. Designed and wrote code that interpreted typesetter command messages that typeset text on the CRT screen in graphics mode and cached fonts and image tiles for scrolling. Coded in Intel C on IBM PCs and downloaded to firmware on the CRT controller card containing an 80186 processor.

 

Northern Telecom Inc. Network Support Systems Division, Concord NH.

May 1985 to May 1987 and Aug 1987 to Jan 1988; Contract Programmer

Developed software for DFMS, a telephone equipment monitoring and trouble tracking system.

·   VAX VMS environment: wrote ANSI X3.28 data communications protocol interface, message routing/handling, and database software for the VAX VMS cluster.

·   UNIX environment: wrote ANSI X3.28 and 3270 protocol interfaces and message handling routines. This involved UNIX System V kernel interfaces. Later ported VMS modules to BSC Unix on SUN workstations and servers.

·   Firmware environment: developed drivers for ANSI X3.28, SDLC, and RS-232 communications protocols, message routing/decoding routines, and real-time executive for PROM based cards using a 8344 microprocessor. Coded in PL/M and C on a VAX VMS machine and downloaded to Intel MDS systems (blue boxes) for compiling and ICE debugging.

Summary of Oct 1969 to May 1985

·   Senior Engineering Consultant, Harbridge House Inc. Technical manager, project director, team leader, Project Management software development.

·   Lead Engineer (over a 5 person team), Honeywell, Marine Systems Division. Scientific FORTRAN modeling and analysis of sonar tracking data.

·   Contract Programmer, Harbridge House Inc. for U.S Navy. Systems analysis and software development. Project management software.

·   Electronics Engineer, Pearl Harbor Naval Shipyard. Field service engineer for U.S.Navy shipboard sonar, communications and weapons systems.


Member number:1002
Additional Contact information is available on the Information Page.
Return to The Software Contractors' Guild Home Page.

Copyright(c) 2006 David Keeney and The Software Contractors' Guild, Post Office Box 257, Nottingham, NH USA 03290-0257