|
|
David E Keeney, PE 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,
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),
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.
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),
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.,
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,
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,
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,
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,
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
Coral Networks Corporation,
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.
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.
Oct 1991 to April 1992; Contract Programmer
Developed a test system controller (TSC) for Laser Precision
Corporation,
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)
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
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,
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,
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,
Member number:1002
Additional Contact information is available on the Information Page.
Return to The Software Contractors' Guild
Home Page.