Resume of

William M. Gray

235 Douglas Fir Ave.

Castle Rock, Colorado  80104

(303) 688-5212

bill.gray@groksoft.net

 

OBJECTIVE:

 

Seeking challenging projects in software development and implementation, focusing on the architecture, development, and management of the project. I am interested in utilizing my skills in object-oriented technologies such as UML, C++ and Java in addition to my web development and graphics skills in the Unix\Linux or Windows environments, where I can contribute my proven technical, artistic, project management, and business skills. I am a team player, and enjoy wearing many hats. I am interested in full time employment, or consulting.

My current resume can be viewed online at http://www.groksoft.net/resume and can be downloaded in word format at http://www.groksoft.net/resume.doc.

 

SUMMARY of QUALIFICATIONS:

 

Programming Languages:

 

Web                 10+ Years programming with PHP, DHTML, JavaScript, Ajax , Java, XML, XSLT, etc…

 

C++                      20+ years programming in C++ using Visual C++, GNU, and Borland C++.

 

C                            20+ years programming in ANSI C.

 

Assembly           10+ Years using and programming a verity of microprocessors.

 

Misc.                    Python, Perl, Pascal, FORTRAN, BASIC, Microsoft Access, SQL, Oracle, dBase III and IV, LISP, PL1. I have a working knowledge of these languages and can pick up other languages very quickly.

 

Environments, Applications and Programming Tools:

 

Web                      10+ years using many programming applications, APIs, and tools, to design and develop web sites, web applications and back-ends, such as Dreamweaver, Java, J++, PHP, PHP Extensions, HTML, CSS, JavaScript, XML, XSLT, Perl, Python, STL, TCP/IP, ODBC, MySql, Visual C++, and others.

 

Windows            10+ years writing applications and libraries in C++, Java, C and others, in all versions of windows. Using Qt (A Cross platform GUI Application Framework), MFC and OWL.

I have used many programming applications, APIs, and tools, such as Qt, MFC, Ace-Tao CORBA, Orbix, Borland C++, ObjectWindows, Windows SDK, Winsock, TCP/IP Dialogic, ODBC, SmartHeap, Btrieve, Soft ICE, RTKernel (Real Time Multitasking Kernel), IBM Voice Type application Factory, BBN's Hark (Voice recognition API), Novell (IPX/SPX, TLI, TCP\IP), and others.

 

Unix/Linux        Over the past 20+ years I have written many scripts and applications under Linux, Solaris, HPUX and other flavors of Unix on a variety of different platforms, utilizing C, C++, Java, XML, Python, Perl and Shell Scripting. I used MainSoft’s Visual MainWin to port Windows applications to Unix and Linux.


 

EMPLOYMENT:

 

04/04-Present         Quantum Corporation, Englewood, Colorado 80112

Senior Software Developer.  As part of the Remote GUI Development Team for the Scalar i500 Tape Library, I helped design and developed the GUI. After the initial release, I was put in charge of the remote GUI and do all the development for it now. The GUI was developed in PHP, HTML, CSS, JavaScript, Ajax, and C++. PHP extensions written in C++ were used to interface into the firmware of the Library via a Remote Management Interface. The library runs an embedded version of Linux called BusyBox. Apache, SSL, and PHP were used to serve up the GUI. Cross Platform Development tools were used on Intel based Linux platforms for developing the code that runs on the PowerPC, which is the CPU of the library. I developed all the graphical views of the library which dynamically show the current configuration and state of the library. I used Ajax to update real-time data from the library. The libraries can be configured from as small as 5U to a larges as 41U in rack height and the GUI needed to handle all configurations. HTML Layers were used to create popup dialogs and other effects like shadows. The library had three security levels, requiring a login name and password. Both local and LDAP authentication was used for logging in. Only pages and menu options available for the current security level are visible to the user. The library is OEMed to several other companies. Each company has there own look and feel, I used CSS to separate the layout from the content in all new designed screens. I am currently doing both the Remote and Local GUI's for the i500. The local is done with PEG, a embedded graphics package, and C++.

                                                                                                        

06/03-04/04            xixnet.com, Castle Rock, Colorado 80104

System Architect. xixnet.com is a Dial-Up Internet Service Provider. I designed, implemented and built the companies entire computer infrastructure, which consisted of the Gateways, Firewalls, VPN’s, DNS, Proxy servers, Web servers, Database Servers, email servers, etc. The servers were all built using RedHat 9 Linux, and other Open Source Software, using a variety of languages and protocols.

I designed and developed all the websites, which are being served with the Apache web server, and Tomcat. They were constructed with PHP, HTML, CSS, JavaScript, Java, , Perl and mySQL. The sites I developed include the WWW Sales site, the Member’s portal, and the Webmail system. The webmail system is based on the squirrelmail project with extensive modifications made by me using PHP & HTML.

The email system was built using the Cyrus email system from Carnegie Mellon University. It includes SMTP, IMAP and POP3 connectivity, with SASL authentication. I also implemented spamassasin and the anomy sanitizer for full user definable SPAM filtering and Virus sanitizing.

I designed the network so all external Web and email traffic is proxyed to back-end secure servers. All processes that allow external access to the servers are in chroot jails for added security.

 

06/02-06/03            TeamShare, Colorado Springs, Colorado 80903

Senior Software Developer. TeamShare’s product was TeamTrack,  a web based issue management and tracking tool. It was developed as an ISAPI Web extension for Microsoft’s IIS. It was written in C++ using MFC and the STL. My main duty was to port the ISAPI web extension to run in Unix and Linux as an Apache module. The Unix version of the product was just released to beta customers at the end of May. I used a product called Visual MainWin from MainSoft to do the Windows to Unix porting. I also ported the company’s Web , Notification, and MainClient Servers to Unix.

A secondary duty was to maintain the Integration to the Perforce Change Management System called P4DTI (Perforce Defect Tracking Integration). The integration was written in Python. My duties were to update and maintain it.

 

06/97-04/02            Oresis/Vsys Inc., Colorado Springs, Colorado 80903

Senior Software Developer. Oresis is a telecommunications company that produces an ATM Multimedia Gateway. I worked in the Softswitch group. We specialized in Object Oriented Software Development and CORBA. My main duty was to design and implement shared components of the Softswitch component of the gateway. I designed and developed a Logging System, Announcement Server, O-Trak (a Graphical view of the calls going through the Softswitch). My last project was the redesign and development of the Graphical User Interface (GUI) for configuring and maintaining the Softswitch. Both O-Trak and the GUI were implemented using the Qt Cross Platform GUI application framework, and the Ace-Tao CORBA ORB. The project was designed using the Unified Modeling Language (UML) with Rational Rose, Rational Requisite Pro and an in-House Object Oriented process called ACID. We used standard design patterns, i.e. Singletons, Factories and the Standard Template Library. Before Oresis, the company was called Vsys. Vsys was a consulting company, that later developed a Softswitch. While Vsys was in consulting, I worked at American Teleconferencing and T-Netix as an outside contractor for 18 months. My duties at American Teleconferencing include writing a TCP/IP server and client in JAVA. Duties at T-Netix were being part of the design and development team for an Inmate Phone System for Prisons and Jails using Dialogic Boards and C++. Other duties at Vsys included designing and deploying the company’s first web site, utilizing HTML, Perl CGI, and Java Script.

 

06/95-06/97            Interactive Television Network, Denver, Colorado 80237

Software Development Consultant. Contracted to Interactive Television Network Inc. (ITN) as a senior developer.  My main duties were to design and implement a new Interactive Voice Response (IVR) system as the customer interface for multiple simultaneous interactive television channels.  The customer interacted with the games and other programs by both speech and telephone keypad. 

The IVR system was developed under Windows NT as several separate modules; an NT service for the telephony and planned speech recognition portions of the IVR.  The system utilized NT threads to service 72 active telephone lines. The Dialogic driver did not support threads, so a mutex was used in the LineThread class to protect entry into the driver. The telephony server included an IVR State Engine, a separate Script Processor, and an NT MFC user interface. The Booch methodology was used for the analysis and design and  Microsoft Visual C++/MFC 4.2 was the development platform.  Winsock was used for TCP/IP communications and Orbix CORBA distributed services were planned for access to the telephony services from anywhere on a LAN or WAN.  Dialogic 240SC T1 and D/41s were the telephony boards used.

Other duties include writing a Script Generator / Editor that synchronized MPEG video with a game script. The user interface consisted of VCR style controls to manipulate the Mpeg and autosync the game’s actions. The script was then run in an in-house game engine.  I used ODBC as the data source for a Crossword Game Generator / Editor written using the FormView model under MFC.

I was also tasked with repairing and enhancing the previous IVR system, which ran under DOS.  As part of that  effort I designed and wrote a new DOS TCP/IP Socket class and a .INI file access class for the DOS IVR.

Other miscellaneous duties included writing a speech recognition prototype using IBM's Voice Type Application Factory. Telephony was used to record the voice to memory for conversion from Dialogic's PCM format to IBM's WAV format required for the recognition engine.

 

10/93-05/95            Speech'craft Inc., Arvada, Colorado  80004

Senior Programmer / Systems Architect.  We developed a real-time Distributed Processing System for LANs and WANs, utilizing IPX/SPX, TLI, TCP/IP, SLIP, and IPCs as the transport layers. The system included a Novell network with IBM compatible PC's running DOS with RTKernel Real time multitasking Kernel and Windows (3.11, 95 and NT), also HP 9000s, and SUN Sparc 20 workstations running UNIX. My main contribution to the project was the NRM (Network Resource Manager), this enabled all the computers on the network to share resources without needing to know which computer or transport layer was needed to access the resource (patent application pending). I was also involved in the development of the rest of the system, which included an ANSI C compliant Interpreter; continuous speech recognition system; and client application "Robots". The entire system was designed to put speech recognition, and telephony front ends on existing client applications. The first application designed and implemented was an automated address change system, using speech recognition that utilizing a phone as the interface. Dialogic telephony boards were used in the phone interface. The system was developed in C, C++, and assembly language, utilizing a variety of in-house, and third party API's.

 

3/92-10/93              CTB MacMillan / McGraw-Hill, Englewood, Colorado 80111

Senior Programmer / Analyst. I was senior programmer in the development of school administration software. I worked on the development of two product lines, the first being a DOS based program that was originally developed in Pascal, all new enhancements were done in C. I designed, and implemented the entire Attendance by minute module for the main system, and modules for individual states, specific needs. The second product was a Microsoft Windows based application. I was involved with the design, and implementation of a functional DEMO, which was produced for both corporate and customer evaluation. I also designed and coded the first module for the windows product, which was the Calendar module. I was the only programmer assigned to this module. We were using Borland C++, OWL, and the Booch Object Oriented methodology to develop all the new windows applications.

 

3/91-02/92              AmWest Communications Corporation, Englewood, Colorado 80111

Senior Programmer / Systems Analyst. I developed a software package for the Electronic Preparation and Filing of Income tax returns. I designed and wrote all windowing, calculation, form generating and displaying functions. The only third party software I used was Essential B-Tree for the database manipulation.

 

3/88-1/91                Manufacturing Excellence Inc., Englewood, Colorado 80111

Project Leader / Senior Programmer Analyst. Lead programmer in the software development group. Developed PC JIT, a manufacturing software package implementing the Just In Time (J I T) manufacturing philosophy. The Package was developed using the "C" language, Vitamin "C" windowing package, and the Btrieve database manager. I modified the Vitamin "C" library to have Microsoft Windows type Radio buttons, Check Boxes, and List Boxes; also many other changes were needed. I wrote all library functions needed by the project.

 

3/86-3/88                Tektronix Inc. / FairWare Corporation, Broomfield, CO 80020

Software Engineer. I was part of the design Automation group, Logic Analyzer Division. The position involved Software engineering on the 1220 and 1225 Logic analyzers, and writing the Firmware for the main system, system options and probes of the analyzers, which included the BIOS, System Channel Grouping, Timebase function, Timing and State displays, RS232C interface, Parallel printer interface, 8085, 6809, (6502, 65c02, 65c802), and (6800, 6802) disassembler probes

FairWare. In my off time from Tektronix, I designed and wrote an Income Tax Preparation Software Package. The package was a complete 1987 Tax preparation program called TaxBax. TaxBax was written in "C" and 80x86 assembly language for IBM PC's, and compatibles. The software included my own input and output routines, including all the windowing functions, Keyboard, screen, database routines, etc...

 

3/85-3/86                National Bureau of Standards, Boulder,  CO 80302

Hardware/Software Consultant. I contracted part time to build prototype cards for a Miniature Passive Hydrogen Maser (Atomic Clock). Wrote a data collection program that monitored the Masers, debugged the electronics, updated schematic diagrams, and other miscellaneous tasks.

 

10/78-12/84            Storage Technology Corporation, Louisville, CO 80027

Engineering Tech 4. I was in Development Engineering on the 8385 (8380E) disk subsystem and the Modular Disk unit. Wrote the operating system for an In House Universal Card Tester in the "C" Language on a CP/M based Microcomputer (STC 3925). Wrote a card tracking system on the Intel MDS system. From 1978 to 1983 I advanced from a Tech 1 in the Systems Test division to an Engineering Tech 3 in 8370 Disk Engineering, utilizing my hardware skills and developing my software skills.

 

 

EDUCATION:

 

   1977-Present               In-House Classes, Workshops, Seminars.

I completed and received a certificate from Dialogic Corp. for their "Designing Dialogic Based Call Processing Windows NT Applications" course (Nov. 95).  Further, whenever possible I read articles, technical white papers, and related business journals. I attend seminars, workshops, lectures, etc, to learn more about all aspects of software engineering, programming, the Web and computers.

 

1977 1980                   Community College of Denver, Golden, CO 80401

Associate Degree in Electronic Digital Technology

 

   1974 1977                   Lake County High School, Leadville, Colorado 80461

 

ReferenceS:

 

Available upon request.