Work Experience and Projects

Company: Bell South Telecommunications
Description: Software Configuration Management

As Team Lead for the IDM and SMS projects my primary duties include operation of the Software Change Management tools, compilation and distribution of final product to the local Developer, Integration, and System Test environments. Once testing is completed the product package is sent to Network Integration, and Field Support environments for additional testing before finally being installed into the Production environment. These activities are supported across several environments including IBM Compatible PC's, HP and Sun Workstations, and HP server platforms.

Our original SCM tool was CMVC. CMVC is a Change Management Version Control tool made by IBM. IBM has dropped support for this tool as of February 2001. I lead the team responsible for evaluating and recommending a replacement SCM tool for use by all future projects in the Support Services Department. The In addition to myself, representing the Software Configuration Management work group, the team consisted of a representative from the System Engineering, Development, and System Test Departments. The team was responsible for developing acceptance criteria for the new tool and revising the work procedures as needed it take advantage of any new capabilities (subject to the approval of our Research Directors).

The SMS project was choosen as the lead project to implement the redesign of the work procedures. Our main goal was to reduce time to market without sacrificing product quality. Our team designed and tested the new work procedures using SMS as a prototype project for the department. These new procedures formed the basis for our evaluation of the various replacement tools under consideration. After examining publicly available material from the leading SCM tool manufacturers, tools which appeared to most closely support our proposed work model were invited to give presentations and demonstration of their product and, where possible, visits to customer sites using the product were arranged so we could discuss the product's capabilities with actual users.

The Dimensions SCM tool was choosen as the replacement for CMVC. While the Dimensions tool was far from perfect, it had the flexability to quickly implement our work flow processes and could be easily reconfigured should those processes change in the future. I also implemented documenting and updating all work procedures as web pages for easy access and held training sessions specifically designed for the System Engineers, Developers, and System Testers. The training and documentation assisted the department when we were evaluated and received SEI CMM Level 2 status.

I designed and assisted in modifications to the Build execution that resulted in a 75% reduction in execution time. I achieved this by prototyping and recommending changes to the Build Makefiles so as to build independent subsystems concurrently on the same machine. I also assisted the developer with coding details of the needed changes. This concept took advantage of the machine's multiprocessors and disk latency for more efficient Build execution. This resulted in the Build execution time dropping from 15 hours to 4 hours.

Later I created a script which would identify the Change Documents (and their file changes) which needed to be included in a Build, and would check to ensure there were no missing file changes or merge conflicts between file versions associated with the Change Documents worked by miltiple Developers. Once the script had determined a consistent list of file changes, it would fetch the files from the Dimensions database and compile the files. When the compilation was completed, the script would check the Build output file for errors and (if none were found) would install the compiled product. In cases when the installation was to be delayed, the Build script would create timed jobs using the "at" functions of the cron facilities to do the installations. This resulted in automated Builds being run without human intervention.

All Build results were reported to the project members via email and recorded on a project specific web page. These pages were maintained automatically via a set of cron jobs. At the start of each quarter a script would run to prepend summary tables of the Build results to the previous quarters results table. The previous quarters table would then be renamed to show the dates covered by the page, and a new quarterly table would be started. These tables could then be used to track work progress.

Later, as the department grew, I was appointed Team Lead for the IDM project and implemented the same automated Build system for that project as well. By implementing standard Build times and automated executions, I was able to make the project more productive and consistantly meet delivery deadlines for any environment. I was later tasked with making the script for creating and updating the Build web page mandatory for all projects supported by our department and my automated Build script was used in whole or in part by most other projects as well.

As a result of my familarity with the Dimensions tool and it's various table views, I would often be asked to create special user reports for the Research Directors, System Testers, or various other project needs. This would require accessing the sqlplus command interface and scripting efficient queries for specific data, formatting the result to the users specification. In some cases this included reporting the output as HTML and automatically mailing the report to the user.

Company: Lucent Technologies, Bell Labs (ProTec Contractor and Employee)
Description: Configuration Management

I Maintained the integrity of the SABLIME SCM database and its associated relations. This might entail debugging conflicting information in the various relations or resolve missing records from the relations. This activity required that I understand the projects development model and configuration management structure, and set up the database to match. I also upgraded the SABLIME database to keep up with the latest releases and modify the projects local tool set to take advantage of new features and capabilities. I have also written web based forms and CGI (perl) scripts for various interactive departmental questionares and tasks.

I Used the SABLIME configuration management system to control and document changes to source code for the BaseWorX, ANCM, and SMS/INSMS/Netstar projects. Where necessary, I provided additional tools or front ends to the SABLIME commands to support developer needs. I also wrote tools to provide quality measures such as Non-Commented Source Lines (NCSL) code counts, MR throughput measures, severity point counts for Q (Quality) gate reports.

I was a consultant to multiple projects on build procedures and practices for writing NMAKE files. This would include writing SCAN rules and working the hotline as a tier two support person handling problems that exceeded the resources of the tier one support personnel. I have also worked with the NRG team in performing Makefile assessments for the customer.

I also controlled the build process and wrote automated build tools for those projects that did not have such tools. I participated in the team the developed the SR Builder tool as a standard implementation of the build process. I installed this tool for several projects and evaluated the operation and results of test builds. As a result of this work several improvements in the operation of the Builder tool were made and some of the code I had written for my build tools was used to significantly improve processing time and efficiency of the Builder tool.

I also wrote and documented a Secure_it tool to prevent unauthorized copying or modification of the front end tools and reports. This tool also acted as a licensing agent for the new tools. This insured that the tools provided to our customers would work on a year by year basis. This prevents customers from using our department's tools after their service agreement expires. The system was documented with an overview page and a manual (man) page for each command in addition to putting a help option in each program that made up the secure_it system. This tool has been deployed to several projects with great success.

I was a CM team leader for two projects with several international and domestic customers each. Each project has unique needs and opportunities. Since both of these customers have rather demanding needs, I turned over one project to the new team leader, which I had trained.

In addition to the above regular duties, I was involved with writing customer HTML documents on policies, practices, and work procedures, and CGI forms for gathering metrics on service levels and customer satisfaction and other information. I was also involved in quality planing and implementation for my customers focusing on correctness, efficiency, and effectiveness of the work being done. This work will result in a significant cost reduction for the department.

Company: Nationwide Insurance
Description: Modifying C Programs

I Created and Modified approximately fifty C source files for an dial-in investment processing system to improve efficiency, insure correct file updates, and improve/add report generation for non-technical end users. Projects used C-SCAPE routines for windowing and C-INDEX for I-SAM like keyed file access.

Description: Modifying COBOL Programs

I Analyzed and modified various COBOL investment processing programs to conform to changing standards and business practices or display requirements. This system consisted of approximately 350 programs of 7,000 to 25,000 lines each.

Company: Contract Employee of III working at AT&T Bell Labs
Description: Laboratory Administration, Tools, and User Support

This position required that I generate laboratory usage plans and schedules, monitor lab usage policies, coordinate and moderate Lab Administration and Support Process Management Team (LAST PMT), and was responsible for general laboratory operations. I served as a member of the Release Coordination and Integration PMT to help insure prompt release of our products while maintaining high quality. Defined machine setup, disk usage, and layout, maintained laboratory management tools (SHELL scripts), specialized test environments, and laboratory LAN communications. I was also to create and/or modify software specification files, and install specification files into laboratory test machines. The specification file controlled where databases were physically located on disk. Prepared and loaded software updates to laboratories, perform basic software sanity testing, collected and analyzed system resource data. I served as an interface for DES hardware and communications center and our 1NCP group.

Company: Independent Contractor, Contracted with Applied Esoterics
Description: General COBOL Programming

My Project consisted of writing and modifying approximately ten COBOL programs for billing, patient data, and insurance payment tracking database, as well as printing and modifying various summary reports. While the System Administrator was on vacation, I performed maintenance duties such as nightly backups. The project is used by local medical laboratories, hospitals, and physicians offices in the Flagstaff AZ area.

Company: Independent Contractor, Contracted with Symmetry Systems, Inc.
Description: Operators Menu System

This project utilized the MENU system of AT&T Unix and was a series of subdirectories, shell scripts, and programs allowing the operator to perform line printer shutdown or startle, make backup tapes, and do other common chores without the need to memorize commands and without System Administrator intervention.

Description: Training Seminars

I developed and presented training seminar consisting of Korn shell commands (mv, rm, mkdir, etc) programs (mail, vi, make, f77, ELM) and examples of how to use them. It was assumed the personnel in this seminar had no previous experience with the Unix system and a limited understanding of the English language. The Goal of this seminar was to provide the personnel with the minimum information needed to begin working under Unix and allow a FORTRAN programmer to write their own shell scripts or understand and modify .profile login scripts. The basic differences between the sh, and ksh, command interpreters were explained and depicted with numerous examples. Subtle errors and differences between similar features of the various shell interpreters were also illustrated. Various methods and options for testing scripts were demonstrated and discussed in both English and Italian.

I developed and presented a C Language Seminar seminar consisted of example programs and a series of class room presentations designed to introduce a FORTRAN programmer to the C language. The assumptions were that the personnel in the seminar had a basic understanding of Unix, and the vi editor. The seminar was divided into sections for beginning and advanced concepts. Programs for these seminars would consist of familiar materials such as implementing linked lists, file I/O functions (gets() vs scanf() etc.) etc. Concepts such as pointers were introduced as a means of demonstrating program design, and analysis, with special attention to efficient, structured coding techniques. The advanced course dealt with data structures, unions, file access (reading streams and seeking to byte offsets), and differences between macros, system calls and C functions. At the conclusion of these courses the students should understand pointers, structures, unions, reading and writing binary and ASCII files, and the use of data definitions from other sources (i.e. include files, linking with libraries and object modules, etc). Demonstrations using common data structures were provided, and evaluation materials were required.

I developed and presented a low level debugging seminar on using make, SD, lint, CPP, and other tools of the Unix system with COFF files and both the FORTRAN and C languages. At the conclusion of this course the students were able to use these tools to compile, debug programs, trace variables, and follow program execution. Students also had a basic understanding of Common Object File Format (COFF) concepts.

I created and presented a Systems Analysis Seminar on the principles use of the System Development Life Cycle to best develop, document, and test projects in the Unix environment. At the conclusion of this course the students were able to read and understand HIPO charts, VTOC charts, Data Flow Diagrams, PERT charts, and the reports generated at each stage of development. Examples, and evaluation materials were used extensively.

Description: Acting System Manager, and Training of System Manager

My duties included monitoring response time of the Unix system, re-tuning the operating system when necessary to improve performance or resource usage. I reviewed the system activity reports (root, uucp, and adm), process accounting, and disk space available. Was also responsible for installing, testing and reporting on various compilers and vendor software packages, maintaining the Unix Manual database, and creating new terminal descriptions for the termcap database. When necessary I also installed and tested disk and tape drives, debugged hardware using appropriate test equipment, and interfaced new devices, such as printers, LAN lines, and terminals to the system. I was responsible for backup policies, performing system backups, and fixing any file damage due to power interruptions or other problems. An extended course of training was designed to acquaint the local Italian System Manager with the internal operations of the Unix operating system. One-on-one discussions of the Unix internals with materials from the book "The Design of the Unix Operating System" were prepared and illustrated using the system utilities, various other reference books, and manuals available at the work site.

Description: General Duties and Maintenance

This project was a flat file database. It consisted of fixed length aircraft test data records. Data could be looked up, entered, or deleted based on the permissions recorded for the user in a separate relation file. Data records could be accessed by any field or combination of fields in the data record.

Several sets of programs were provided (FORTRAN II, FORTRAN IV, and VAX FORTRAN) for conversion to the Green Hills/Oasys FORTRAN 77 compiler. Reference sheets showing incompatible practices and methods to work around the incompatibilities were prepared for use by the local Italian programmers as programs were converted.

I was responsible for Installation and maintenance of a direct 9600 baud connection to an IBM-PS2 system and a Telefile T-85 Mainframe. Connections for the IBM-PS2 and the Telefile T-85 mainframe were maintained through the UUCP database as a direct terminal connection. File transfer was accomplished using the Kermit protocol and was modified to function with the cu() program and the UUCP communications system. Kermit protocol was provided as C language source code and compiled for the local system's constraints. I installed, modified, and compiled source code for the ELM electronic mail system. I assisted the site engineer in the installation of LAN system hardware and cabling. Creation of Descriptions for Televideo 955, 965, Tektronics 4205, and other terminal capabilities were created, tested, and compiled into the termcap database. Explanatory material was prepared for future reference by the local System Manager.

Company: Andrews University
Description: Supervisor Mainframe and Micro-Computer Laboratory

My duties consisted of managing worker schedules to insure adequate personnel at all times, assist instructors with usage of mainframe, microcomputer or Unix systems and related software, provide download/upload facilities for students and instructors, conduct introductory seminars for classes using the laboratories, and recommend pay increases for workers. I also implemented a system of regular work review on all employees which would permit tracking of a workers skills and abilities over time and provide accurate documentation of their work quality should they require future references. Weekly attendance at meetings with the Director of University Computing and his staff to discuss computer services and proposed policies were also part of my duties. Minor repair/upgrades of IBM-PC hardware were also performed at various times.

© 2004, Updated: