Moose River Software, Inc.
SKILLS: Java, C, C#, Unix (SCO, Ultrix), Embedded, ISDN, sockets, Switching, SS7, Telephony (CTI), ix86, Assembly, Expect, XML, OO, Datacom, Device Drivers, Dialogic GlobalCall API, Frame Relay, ATM, Visual C++, MFC, DLL, TAPI, Win32, Dreamweaver, HTML, CSS, PHP, Javascript, RDBMS, SQL, Python
Developed encrypted instant message application for proof of concept for a real-time currency trading platform.
Independent Consultant (ongoing)
Developed personal photo website www.excellentbirds.com using Dreamweaver, Javascript, MySQL, and PHP. Site allows for SQL querying by bird category or by bird name. Also developed Costa Rica Fishing guide website www.costaricahooksetters.net (still in progress).
June 2008 - August 2008 Consultant, DSCI Corporation - Manchester, NH
Redesigned and rewrote CNAM application for a CLEC. Application runs on Solaris and uses SCTP to receive TCAP requests for CNAM, which is looks up in a local MySQL database. If not found there, it performs a SIP lookup by sending a NOTIFY and waiting for a response from the SIP server.
Application was rewritten to use Pthreads package and to provide two worker pools of threads to do the MySQL and SIP lookups. I used the existing SCTP/SS7 code, but wrote the SIP thread code to build and parse SIP messages.
Developed a public API interface for the server as well as a client program to query statistics, set server operating parameters, etc. This code used UDP sockets.
May 2002 - May 2008 Employee, Cedar Point Communications - Derry, NH
Principal Software Engineer for Call Processing Infrastructure
Performed enhancements and bug fixes to SS7 code for major releases.
Wrote a large amount of test scripts using Expect for regression testing of T1/E1 and SS7 subsystems.
Performed maintenance for Trillium SIGTRAN stack to get ready for customer use. Included configuring M3UA routes, updating with Trillium patches and fixing bugs found internally.
Converted (re-ported) Trillium stack to use OSE RTOS system services instead of Trillium-provided routines. Primary emphasis was help prevent and detect memory corruption issues by moving from using Trillium "demand queue" to use OSE signals as well as converting memory management to OSE signals.
Ported over three years of bug fixes from Trillium's SS7 stack to Cedar Point's switch. Performed bug fixes and enhancements for MTPL3.
Designed and developed recorded announcements code for Cedar Point Class 5 switch. Included announcement interfaces for configuration and call processing. Also developed Interactive Voice Response for telephony features using announcements.
Responsible for porting NCOMM Trunk Management Software to Class 5 switch, including supporting T1/E1 physical layer device drivers. Sole designer and developer for T1/E1 process, including managing N X 1 redundancy. Wrote CAS call processing agent and recorded announcement manager software for Class 5 switch.
August 2001 - December 2001 Employee, Denali Communications - Salem, NH
Co-founder for a communications startup
May 1999 - August 2001 Employee, Alcatel (formerly Northchurch Communications / Newbridge Networks) - Andover, MA
Responsible for porting Harris & Jeffries, Inc. Frame Relay to 420 Edge Service Router edge router. Operating environment is VxWorks for PPC603. Also responsible for integrating H&J Redundancy Management Software Subsystem with SAS fault management software.
As a member of the IP Routing team, ported IENG Gated code for BGP-IGP synchronization and route flap dampening to 420 ESR product.
Given responsibility for major ATM module code cleanup to meet Beta-ship deadlines. Areas worked on included PVC management, ILMI, and IPOA.
Wrote utilities for Forwarding Engine to view routing and classification entries in Netlogic CAM.
Dec. 1998 - Apr. 1999 Consultant, Ascend Communications Corp. - St. Petersburg, FL
Bug fixes and maintenance for the Ascend SS7 Gateway product. Acted as project leader for feature enhancements to line controller process which interfaced with both Ascend Max-TNT and Lucent Portmaster access servers.
Jan. 1998 - Nov. 1998 Consultant, Teloquent Communications Corp. - Billerica, MA
Performing Unix STREAMS ISDN driver bug fixes and enhancements for Distributed Call Center product.
Sep. 1997 - Jan. 1998 Consultant, Stratus Computer - Marlboro, MA
Working in SS7/Layered Applications Group, designed and developed ISUP Configuration library for SSF product.
Apr. 1997 - Sep. 1997 Consultant, Softlinx, Inc. - Westford, MA
Added Dialogic GlobalCall API to Softlinx Replix Intelligent Modem Gateway(IMG) on Unixware. Tested and integrated with Brooktrout Fx API on Primary Rate ISDN. All coding done in "C".
Modified Windows NT IMG from a single Gammalink API to use a generic DLL-based Fax Service Provider Interface. Wrote two DLLs to provide the Gammalink and Brooktrout APIs to the IMG. Performed bug fixes and added HTML for built-in HTTP server code in IMG. All coding done in "C".
Wrote software license-verification ActiveX Active Template Library (ATL) control for Windows NT Server product. Also wrote 2 other controls to provide O.S. functionality to Microsoft IIS Web Server. Wrote test HTML and Active Server Page (ASP) code to test control functaionality. Code used C++ and MFC.
Nov. 1996 - Mar. 1997 Consultant, XNT Systems, Inc. - Concord, NH
Took over development and maintenance of an NT Threads kernel (in C++) for object-based call processing system front-ending an Excel LNX-2000 switch. Wrote Excel switch unattended startup code for PRI-32 ISDN board configuration and querying, downloading, and assigning Excel Programmable Protocol Language (PPL) files to trunks. Added "raw" Excel command file download option for frequently-used command sequences. Tested on LNX and CSN platforms for both NT and DOS-based hosts.
Aug. 1990 - Nov. 1996 Principal Software Engineer, Teloquent Communications Corp., Billerica, MA.
Designed, coded and tested the TAPI interface (a MFC Extension-DLL) for the company's first object-oriented product, Open Agent. Other areas of responsibility included interface to Teloquent's IPC via Winsock (using CAsyncSocket). Development was done with Visual C++ 4.2, SourceSafe, and Rational Software's Rose product (methodology used was Booch's). Environment was Windows NT 3.51 development with Windows 95 target machines.
Designed and implemented the build environment for Open Agent using NMAKE and PERL to allow automated builds.
Other Windows development projects included an interface between Teloquent's Windows phone and two Windows pager programs, WinBeep and Notify! Interface program acted as a DDE client to both programs and would format and send the user a page with the (ISDN-provided) calling line ID, date and time if the phone was not answered in a pre-configured amount of time.
Hired as employee number 15 to develop data network interface code for Teloquent' flagship product Distributed Call Center (DCC), a distributed Automatic Call Distribution (ACD) system based on ISDN. Was responsible for entire product development cycle, from design through system test. The Transport Network Interface (TNI) runs as a user process under SCO Unix and cooperates with the InterProcess Communication (IPC) server and library to provide transparent data connectivity over ISDN D-channel X.25. Transport layer provides ISO Class 2 functionality. TNI runs over a STREAMS driver providing access to an API developed by DGM&S. TNI also was ported to an embedded platform which runs on both Teloquent's ISDN phone set and on a Microsoft Windows Integrated Work Station (IWS). Embedded platform ran DGM&S real-time OS on an Intel 80188 CPU.
Designed and implemented an SNMP agent and MIB for network management of TNI.
Had sole responsibility for maintenance and enhancement of Unix STREAMS device drivers for Teleos Communications, Inc. B100 ISDN adapter and Teloquent hardware running DGM&S QSOURCE ISDN software. Drivers were originally developed for Teloquent by Lachman Associates, Inc. Ported initial MicroChannel driver to work with ISA bus. Enhanced driver by adding uploadable trace buffer for debugging.
Given responsibility in July of 1992 for voice process controller (VPC) to bring initial product to market. Responsibilities included debugging switch interactions and code cleanup. Product attained General Availability in January of 1993. The VPC acts as a CPE switch, managing the ISDN B-channels and utilizing the public switched network to transfer calls. Although functioning above the Q.931 layer and initiating network actions via a high-level API, network events are passed up directly. and thus extensive knowledge of Q.931 is required. Similarly to TNI, the VPC was ported to run in the agent set embedded environment. The VPC is the hub of a distributed processing system which manages protocols initiated by a central call routing process to transfer calls to customer service agents.
Served as project leader for ensuring that Teloquent's product ran on NI-1, including both DMS100 and AT&T 5ESS. Responsibilities necessitated trips to test sites at Ameritech (for 5ESS) and Bell Northern Research (for DMS100) and close work with switch designers. Added NI-1 codeset 5 support to Q.931 embedded code, and enhanced VPC to use NI-1 information.
Aug. 1989 - Aug. 1990: Senior Software Engineer, Digital Equipment Corp., Nashua, NH.
Designed, coded and tested an Ultrix SCSI device driver for the DECstation 5000 workstation, a MIPS R3000-based processor running at 25 MHZ. SCSI controller was an NCR 53C94, with one on-board and three option-slot modules. Driver was tested and verified with DEC disk, tape and CD-ROM devices. Tape devices included DEC proprietary, Exabyte, and DAT formats.
Aug. 1983 - July 1989: Senior Software Engineer, Wang Laboratories, Inc., Lowell, MA.
As member of Advanced Systems and Workstations group, ported Unix System V Release 3.2 to new 80386/80486 based Multibus II single-board computer (SBC) for file server application. Wrote disk portion of Unix bootstrap for IPL. Designed and developed SCSI driver for dual NCR 53C94/5 SCSI controllers. Designed interfaces to Intel 82380 DMA controller. Unix development system was an Intel i520 with boot code developed with PharLap Assembler and Linker. Debugged hardware and software with Intel ICE and Tektronix analyzer.
Ported Unix System V Release 3.0 to 68030 SBC (same hardware as workstation described below). Modified existing boot loader, keyboard driver, SCSI driver, clock interrupt handler, and interrupt controller to run on new hardware. Wrote prototype STREAMS driver for 82586 Ethernet controller.
November 1985 to June 1987.
Participated in the design of the communications subsystem for the above workstation. Design reflected the need to supported multiple concurrent protocol stacks with a consistent user interface at each layer. Responsibilities included design, coding, and testing of ISO Class-2 Transport Layer, including monitoring and control interfaces. Other tasks included link-layer bug fixes, enhancements, and porting for Wang LOC driver and 802.3 driver.
Aug. 1983 to October 1985. As a software engineer in the Network Services group, worked on Wang Systems Networking product CNS. Specific responsibilities included maintenance and enhancement of a "threads" package for tasks running under Wang's VS OS.
Jan. 1982 - July 1983: Systems Consultant, Software Services of America, Inc., Lawrence, MA.
Responsible for coding 36/4700 Financial Control Language (assembler) modules for IBM 36/4700 series teller workstations and ATM controllers.
Education:
May 1978 - Bachelor of Arts, Western Kentucky University, Bowling Green, KY.
Major in philosophy, with courses in logic, math, and computer science (BASIC and IBM assembler).
Completed week-long AT&T Unix Internals course.
Courses in computer science and electronics, including Pascal, Discrete Mathematics, and Data Structures (at Rivier College in Nashua, NH). Graduate level courses in AI, Computer Architecture, Operating Systems, and Discrete Mathematics at Boston University.
Courses in Java, Javascript, Dreamweaver, and SQL through St. Petersburg College
Member of IEEE and IEEE Computer Society. Course in Object-Oriented Analysis and Design from Semaphore, Inc.