Goodwill's Home

Photo Album

Our Place

Interests

California Trip

Jackie's Resume

Richard's Resume

Favorites

WebCam

 

                                                                        

                                                                                                                RICHARD C. GOODWILL

                                                                           

730 Augusta Dr.
Bridgeville, PA 15017
Email:  rick@ibgood.com
Home:  (412)220-3155
Work:   (425)466-1397
CAREER SUMMARY

 

  

Software development professional with expertise in operating  system, driver, and  embedded  software development, along with disk technologies.  Experience in software product specification, design, development, integration, and trouble shooting.  Reputation for technical  leadership while managing people and projects.  Demonstrated track record in effective cross functional communication and coordination with program management, marketing, and sales.    

Bowling Green State University, Bowling Green, Ohio
B.S. from College of Arts and Science 
Major:  Computer Science   
Minor:  Mathematics                        
G.P.A.:  3.2    Major:  3.3         
Graduated:  May 1983 
Honors:  Deans List, Alpha Lambda Delta
EDUCATION

 

 

 

HARDWARE

 

80x86 processors, Alpha and AMD 29K Risc processors,  IBM 370/390 series processors,  SUN Sparc, Wang, DEC

SOFTWARE

 

 

 

 

 

 

 

 

 

 

 

Languages:

 

 

C/C++,  BAL, x86 assembler, AMD 29K assembler,  REXX, COBOL, Basic, APL, SAS, and various other procedure, exec, and editor languages.    Academic experience utilized PL/I, FORTRANPascal, SNOBOL, Lisp, and GPSS.

Operating systems: 

Windows/NT,   UNIX, OS/2, DOS,  MVS/370-OS/390, VM, Wang/VS,  TOPS-20

Environments: 

SUN/Open-Windows, Windows/NT, VM/CMS, TSO/ISPF,  and CICS.                                 

Other Software:

TCP/IP, Netware, IPCS, GTF, SMP/E, RACF, SMS/HSM, JES2,   and various other MVS utilities

Additional Skills:

Strong understanding of operating system internals, drivers, object oriented concepts and hardware interfaces.

EXPERIENCE
6/97 - Present Microsoft   
Redmond,  Washington
1/99 -  Present

 

 

 

 

 

 

 

 

Software Development Engineer   

Member of the Windows NT Sustained Engineering team.   This team is responsible for debugging and developing code fixes for  all releases of Windows NT and Windows 2000,  and  producing Service Packs for these products.   

Team lead for Windows NT terminal Server 4.0 responsible for coordinating Terminal Server 4.0 Service Packs.

Developed several kernel debugger modifications and extensions.  .context was written to allow address space context switching by swapping page tables and command alias support was added. 

Skills required include NT kernel, device driver, and application debugging, analyzing and developing C, C++, and x86 and Alpha assembler code.  

 

6/97  -  1/99

 

 

 

 

Escalation Engineer   

Member of the Windows NT Critical Problem Resolution team responsible for resolving escalated technically complex and politically hot customer issues. Skills required includes NT kernel, device driver, and application debugging, analyzing and developing C, C++, and assembler code, documenting fixes and handling customer expectations.  

 

6/96 - 6/97

Computer Associates
Superior, Colorado

6/96 - 6/97

 

 

 

 

 

MVS System Software Software Developer

Lead developer responsible for the development of MVS system software for debugger and performance products. 

Responsibilities included enhancing products to support new operating system features such as 31bit Unit Control Block support, workload manager support for MVS/SP 5.2, and CICS 4.1 support.   SRB scheduling and cross memory services were used to extract workload information and 24bit code was converted to 31bit code.

 

 3/95 - 9/95

Marlowe Engineering
Boulder, Colorado

3/95 -   9/95

 

 

 

 

 

Software Development Consultant, PC Software

Developed a SCSI test suite for a small scale tape library being developed for the Windows/NT, OS/2 and UNIX server environments. 

REXX command extensions were written to interface to the ASPI SCSI API.  Tape and library SCSI commands were simulated using the REXX command extensions.   The test suite was developed under IBM PC/DOS V7.0 and ported to OS/2.   A layered  architecture  was used to allow for data hiding and clean programming interfaces for ease of maintainability.

 

2/92 - 6/96 

StorageTek
Louisville, Colorado

6/95 - 6/96

 

 

 

 

 

 

 

Senior Embedded Software Enginee 

Member of a small team responsible for the development and integration embedded micro-code for a Virtual Tape Subsystem Prototype for IBM mainframe attachment.  

Responsibilities included designing the physical hardware architecture for disk/tape unit attachment and the design, implementation, and integration of an embedded I/O subsystem to perform the data transfers between disk subsystem controller and tape devices.

The purpose of the project was to prove the feasibility of a Virtual Tape Subsystem using a raid disk array subsystem as a platform.    Technology used included  Metaware C,  AMD 29K Risc processors,  IBM 370 I/O architecture,  ESCON I/O protocol,  cache ports,  and DMA.

 

4-94 - 6/95

 

 

 

 

 

 

Senior Embedded Software Engineer  

Member of a embedded software development team responsible for the development and integration of  support processor micro-code for a raid disk array subsystem designed for the IBM 370/390 mainframe attachment.

Designed and developed non-disruptive micro-code installation and upgrade software for support and functional processor software.

Development platform was the Intel 80386 utilizing Metaware C and 80386 assembler in the DOS environment with a DOS extender.  A OEM embedded kernel was used as the operating system platform.

 

2/93 -   4/94

 

 

 

 

 

 

 

Senior Embedded Software Engineer 

Member of a large embedded software development team responsible for the development, integration, and testing of embedded micro-code for a large scale raid disk array subsystem designed for the IBM 370/390 mainframe attachment.

Development and integration of IBM 370 channel command handler routines to execute on embedded AMD 29K processors.  Most of the command handler routines were written as deferred level 2 ISRs, although some level 1 ISRs and task level code was written.

Development was completed using Metaware C and AMD 29K assembler.  Integration was completed utilizing hardware debuggers, channel analyzers, and IBM 370 parallel channel emulators.

 

2/92 - 2/93

 

 

 

 

 

 

Senior MVS System Software Software Engineer  

Responsible for design, development, and integration of IBM/370 host software required for maintenance and monitoring of a large scale raid disk array subsystem.

Designed and developed a MVS  subsystem, operating system intercepts and hooks, and operating system interfaces for application software. 

Development was performed utilizing IBM/370 assembler and SAS/C languages. Dynamic hook techniques were used to place all operating system intercepts.  IBM/370 channel programming was also used.

 

6/85 - 2/92     

Goal Systems International, Inc.
Columbus, Ohio

4/87 -   2/92

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Product Manager and Lead  MVS System Software Developer

Product Manager and Lead developer responsible for the design, development, and maintenance of a MVS security product for the IBM mainframe. 

Responsibilities included selecting and architecting new features to be added to the security product and directing a team of development personnel in implementing the new features.  Product design and development tasks required a comprehensive knowledge of MVS control structures, flow, and operating system interfaces. 

Developed several operating system intercepts throughout MVS to enhance security and developed user interface routine to allow configuration of the additional features.  Dynamic hook techniques were used to place all operating system intercepts.  MVS services used include the subsystem interface (SSI),  scheduler JCL facility (SJF), and various implementations of cross memory  services.    

MVS System Software Developer 

Designed and developed a MVS common virtual storage monitor. The purpose of the common virtual storage monitor was to collect, record, and display statistics on Common Storage Area and System Queue Area usage.  Cross memory SS-PC routines were used in order to collect data while minimizing the common storage required by the monitor. A subsystem initialization program was used to obtain statistics for early created address spaces during IPL. 

Assisted with the development of a MVS tape management system. Specific tasks included the design and development a label writer, an operator command interface, and various modifications to the operating system intercepts.  

Developed and instructed a course on IBM ESA architecture.  This course emphasized the new ESA instruction set and the new access register (AR) execution mode.    Course was used for internal and customer presentations.

 

6/85 - 4/87

 

 

 

 

Technical Support Representative

Provided technical support to customers for MVS and CICS security products. 

Designed and developed a CICS system intercept by which field level security could be provided for BMS maps.  Also assisted in the conversion of the CICS security product from CICS macro level to command level code. 

 

9/83 - 6/85

State of Ohio - Division of Computer Services
Columbus, Ohio

3/84 - 6/85

 

 

MVS Systems Programmer

Member of a team responsible for coordinating, installing, and maintaining a MVS operating system, hardware, and application software.  Product installs were performed using SMP/E.

3/84 -  6/85

 

 

 

VM and Wang  Systems Programmer

Responsible for installing, configuring,  and maintaining VM  and Wang/VS operating systems and application software.   

Assisted in the installation and expansion of a local area network (Wangnet). Also responsible for installing, maintaining and testing a VM system and application software. 

11/83 -  3/84
 
 

Information Center Specialist

Responsible for coordinating and implementing an Information Center. Installed and maintained personal computers (IBM, DEC, Wang, etc.) in user agencies. Also trained users in the usage of PC hardware and software.

9/83 - 11/83

 

 

Programmer/Analyst

Responsible for developing and maintaining COBOL user application systems.

 

ONGOING 
EDUCATION

 

 

 

 

 

 

 

 

 

 

 

MSNA courses
Microsoft,  1997 

Windows programming in C
Microsoft,  1997                       

Intermediate C++ Programming
StorageTek Education,  April 1996 

Intermediate C Programming
University of Denver,  March 1992

MVS/XA Structure and Flow
Amdahl Corporation, Sept. 1987

CICS Internals
Goal Systems International, Inc., Feb. 1986

VSAM for System Programmers
IBM Independent Study, April 1985

Capacity Management Forum, Performance Monitoring,
Institute for Information Management, March 1985

HOBBIES AND
INTERESTS

Mountain/Rock climbing, skiing, and biking