address available upon request
04/06 – present Technical Consultant, IBM Systems and Technology Group, RTP, NC
Member of the Deep Computing Solutions Enablement team. Role is technical consultant to various independent software vendors (ISVs) who wish to port their products to IBM’s High Performance Computing (HPC) hardware – specifically the Blue Gene super computer. Other roles involve support for vendors who wish to identify and port existing tools/libraries to IBM’s HPC environment (both AIX and Linux).
02/97 – 04/06 Advisory Programmer, IBM/SWG Tivoli Software
04/00 – 04/06 Advisory Programmer, IBM/SWG Tivoli Software, RTP, NC
Build Infrastructure Architect. Lead architect and overall system designer of a new automated build infrastructure, which will replace several distinctly different automation systems with one unified approach.
I led small team in implementing a user based authorization system that automatically generates the necessary NIS netgroups file and the corresponding SAMBA smb.conf file. Typically the administrators of file servers (NFS and SAMBA/CIFS) have no knowledge as to who needs access to the file systems, under this system the access is granted by the resource owner via a web interface. System implemented via cgi-bin Perl scripts for the user interface, Perl backend processing scripts for the NIS netgroups and SAMBA smb.conf file generation, with all data stored in a MySQL database – accessed via Perl:DBI.
General responsibilities include designing, implementing, and reviewing agreements and/or implementations of build strategies/tools between the IBM SWG/Tivoli development community and Build Infrastructure. Work involves creation/maintenance of a common build environment, a unified build process, and a simplified turnkey approach to automatically producing reproducible builds.
The common build environment exists on all formally supported platforms (AIX v4/v5, HPUX 10.20/11i, Solaris 2.6/7/8/9, Windows NT/2000, Linux Intel/PowerPC/s390) and some that are a bit more esoteric. These esoteric systems include (but are not limited to) Siemens-Nixdorf Reliant Unix, SCO UnixWare, and SGI IRIX. GNU software is the basis for much of the environment, compiling and making the tools available is just one step in support of the various development teams. The ability to explain differences in platforms and interactions between the tools and platforms is crucial to the success of the build team. Additional support has been added to the environment for vendor specific compilers as Tivoli moves away from the GNU Compiler suite.
Other roles and responsibilities involve System Administration of said various platforms, build debugging (whether it is tool related or developer source code related), and design/implementation of security related tools to meet internal IBM security initiatives. Another facet of the work is to anticipate the needs of the development community in regards to tools/platforms/hardware, and to lead the integration of new source products from various company acquisitions into the supported build infrastructure (build machines, source code libraries, and build process).
08/98 – 04/00 Senior Engineer, Tivoli Systems, RTP, NC
Was member of the team responsible for porting Tivoli’s Enterprise product, TME 10, to other platforms and OSes. The team was responsible for modifying, compiling, debugging, and supporting the TME 10 product on different, lesser known OSes. These OSes include (but not limited to): SGI IRIX, SCO OpenServer 5.0.x, SCO UnixWare, DEC Unix, DG-UX, NCR, Siemens-Nixdorf Reliant Unix, and Windows NT on DEC Alpha.
02/97 – 08/98 Senior Engineer, Tivoli Systems, Austin, TX
Build engineer for Tivoli's Enterprise product, TME 10. Responsible for production and development builds of software, creating software patches, and debugging build breaks. Other responsibilities included educating user community on the configuration management system in use (IBM's CMVC) and aiding the migration of the source base from Concurrent Versioning System (CVS) to CMVC.
02/95 – 02/97 Sr. Operating Systems Specialist, Applied Research Laboratories, University of Texas, Austin, TX
System administrator for 25+ Sun Sparc machines (running SunOS 4.1.3) and 25+ Intel 486 based machines (running SCO ODT 2.0). Aside from daily trouble shooting of user's questions/problems on the machines, I was also responsible for bringing in and evaluating software that would be beneficial to the continued development of the existing and the pursuit of new projects.
Responsible for formulating and implementing transition from SCO ODT 2.0 to SCO 5 (OpenServer) - this involved both developer workstations and product deliverables. Also responsible for the hardware selection for upgrading the aging Intel 486 machines.
Was tapped to help formulate strategy and implement processes/procedures to bring Tactical Simulation Division in line with SEI CMM Level 2.
01/89 – 05/97 Adjunct Lecturer, St. Edward's University, Austin, Texas
As an Adjunct Faculty member, I taught a range of courses. Initially I taught a service course, Introduction to Computing, for non-Computer Science majors. After two semesters, I was given the opportunity to teach courses in the Computer Science sequence. I taught Intro to Programming I and Intro to Programming II, followed by several semesters of language specific courses (C/C++ Programming and Fortran Programming). Finally, I became the instructor for the Software Engineering course, and taught that several times. Eventually there was a decision within the department that too much information was being covered within the Software Engineering course, and it was split into two courses. The first was entitled Systems Analysis and Design. The follow up class, Computer Systems Development, is one that I developed and taught.
All courses made use of University computing facilities. The facilities evolved over time from PCs and the BASIC language (service course), to the University’s HP system (running HPUX), and finally to the department’s own CS laboratory - which was made up of IBM RS/6000s and Intel Linux machines.
10/87 – 02/95 Sr. Associate Programmer, RS/6000 Division. IBM, Austin, TX
02/94 - 02/95: AIX/Workplace Performance Tools Department, RS/6000 Division, IBM
Worked on improving and enhancing IP test program for AIX (IBM's implementation of UNIX) so that it would scale to multiple adapters and multiple processors. Also maintained and enhanced CPU utilization tool used for performance analysis
06/90 - 02/94: Development Environment Tools Department, RS/6000 Division, IBM
Responsibilities included systems analysis, design, coding, testing and support of internally developed tools. I had the primary responsibility for end user support, and acted as single point of contact between developers and external vendors, for compilers, debuggers (CodeCenter, SmartSystem), and programming tools (Sentinel, Smalltalk, ViSTA). I did additional end user support for the Andrew File System (AFS) and electronic mail and was the administrator for the USENET News Server. Also involved in the evaluation and recommendation of third party development tools.
The department also created internal tools developed in C, Shell, awk, and Perl programming languages. One of the internal tools we developed required the design and implementation of its own unique object-oriented programming language. The implementation of the tool itself was written in C.
02/89 - 06/90: System Management I Department, RS/6000 Division, IBM
AIX version 3.1: responsibilities included working on the Object Data Manager (ODM), porting Data Management Services (DMS) from AIX/RT to RS/6000, and implementing transparent file accessing via NFS for DOS files for the IBM PC Simulator product. Was technical liaison for contract vendor doing work for hire in conjunction with IBM's development of AIX (ISC Boulder).
10/87 - 02/89: Communications Testing Department
Responsible for testing TCP/IP, electronic mail capabilities and the UUCP programs within AIX/RT. Wrote shell scripts and modified C code that tested the various communication portions of AIX/RT software. Served as Must Fix chairman for the final release of AIX/RT (2.2.1) and presented status to management three times a week.
09/86 – 10/87 Sr. Software Engineer, Eagle Signal Controls, Austin, Texas
Involved in the development of state of the art real-time traffic light controller. Participated in the port of existing assembler software from a 16-bit system to a 32-bit system and developed a user interface in FORTRAN.
06/85 – 09/86 Associate Engineer, Lockheed Missiles and Space, Austin, Texas
Involved in the development of a graphical user interface simulator. The simulator was originally intended as prototype builder, but performance proved it to be viable as the actual interface process. Worked on a radar project that used the approved US Army battlefield simulation data of NATO forces vs. Warsaw pact nations in the Fulda Gap region of Germany. Implementation of the radar project was done using the US Government’s approved programming language – Ada.
09/00 - 12/02 Doctorate in Computer Science, Kennedy-Western University
Dissertation entitled "Multi-platform Software Development: A Tool Developer's Perspective"
08/83 - 05/85 Master of Computer Science, Texas A&M University.
Minor in Business Management. Master's report entitled "Syntax-Directed Editors in Software Development Environments."
08/79 - 05/83 Bachelor’s of Science, University of South Carolina.
Major in Computer Science, cognate in Management Information Science.