Philip L. Thompson
Master of Science degree, Information and Computer Science.
University of California, Irvine. June, 1979.
Bachelor of Science degree, Information and Computer Science.
University of California, Irvine. June, 1975. Graduated with honors.
Long Beach City College, 2 years. Major: Data Processing.
Sente Systems, Inc. (1997-2007, 2008)
Programmer, Consultant, System Architect.
Recent projects for Sente Systems:
RBF Consulting (2004-2007)
Project: HR database project.
Fixed and enhanced a commercial off-the-shelf HR database application (Abra) for an engineering company. Custom report generation using Crystal Reports. Improved interface to Payroll, including additional database development for enhanced security. Wrote documentation for the user interface, business processes, and system maintenance. (Abra HR, Crystal Reports, Microsoft Access, VBA, Visual Foxpro, ODBC, SQL Server).
Project: Real-time train control system.
Software modularity project for a message-based real-time control system. Through code analysis, restructuring, and re-engineering, the goal of the project was improved modularity of the codebase to support a product line architecture. Programmed and debugged system modules. (C, Visual C++, Java, Oracle, Tcl/Tk, make, scripting; Windows 2000, Unix).
Redhawk Vision (2001)
Project: Video capture and photo system.
Designed and programmed real-time video sequence capture modules for a Macintosh video utility using QuickTime and MacOS system calls. (C, CodeWarrior C++, PowerPlant GUI; Firewire, driver interface, QuickTime; MacOS 9, Macintosh; Carbon interface for MacOS X compatibility).
Coldwell Banker (2000)
Project: Realtor listing and collaboration system.
Diebold Card Systems (2000)
Project: Security access system.
Implemented documentation standards for software functional requirements based on IEEE standards. Wrote functional requirements for the system, subsystems, and web interface modules for a very large security system. Analyzed code and documentation to extract system design. (C, Visual Basic, Visio, Data Flow Diagrams, Word, Perl; Windows NT).
Diversified HealthCare Services (1999-2000)
Project: Medical insurance billing system.
Designed and implemented database import programs for loading non-uniform customer data from multiple sources into standardized record formats using dynamic SQL. Streamlined the process for loading very large data files to the database (approx. half a million records per load). Designed and implemented automated code generation and an easy-to-use user interface for the process. Created utility programs to analyze user-selected database tables and output their statistics in HTML for offline analysis and documentation. (Visual Basic, Access, dynamic SQL, SQL Server, ADO, ODBC; Windows NT).
3 Day Blinds (1999)
Project: Manufacturing inventory control.
Designed and implemented a formula-evaluation engine as part of a data-driven control for a business application. Used RAD prototyping to implement and test components. Dynamic checking of user database formulas and schema information. Project documentation produced in HTML using software documentation tools. (Visual Basic, Business Basic, ADO, ODBC, dynamic SQL, Access, Visio, HTML; Windows NT).
Project: Online job/resume system for an executive search firm.
Analyzed and documented a third-party web application using code scanning tools. (C, HTML, CHTML, SSH, Oracle; Windows98, Sun Solaris).
Los Angeles Times (1998)
Project: Newspaper archiving system.
Enhanced existing text preprocessing software and developed new text formatting software using standard compiler parsing techniques. Cross-platform development between PC and Tandem mainframe. (C, Lex, Borland C, Tandem C, MKS Lex; IBM PC, Tandem).
Experian, Inc. (1997)
Project: Business process re-engineering for a very large consumer database.
Analysis, design, implementation of modules for a business process re-engineering project. Developed GUI front-end to very large databases. (Visual C++, Visual Basic, Delphi, SQL, COM, MFC, ActiveX controls, SQL Server; Windows NT, IBM mainframe).
Intellisurvey Inc. (2007-2008)
Testing framework for a web-based survey system.
Simulation Sciences Inc. (1989-1997)
Multiple projects for a very large chemical engineering simulator, including:
Designed and implemented a subsystem to generate backwards-compatible user datasets from GUI-created engineering databases. The project goal was to make a data-driven program easily updated for future maintenance. Auxiliary programs scanned and analyzed database schemas to generate scripting files; this required generating parsers for 3 different schema formats. The initial script file was 5,000 lines which was interpreted by a 20,000 line C program. The subsystem was subsequently interfaced to the main program, a very large engineering GUI application (approx. a million lines of code). (C, C++, MFC, Visual Basic, Access VBA, QuickBasic, Fortran; MSDOS, Windows 3.1, Windows NT).
Appropriate documentation for the subsystem was produced at every step of the project, from initial proposal and requirements, through analysis, design, implementation, and testing. Automated tools were used wherever possible. A complete test plan and regression test sets were generated and used to verify conversion correctness. Prepared and taught a training class for in-house programmers on maintenance of the subsystem. (HTML, Visio).
Implemented test programs for an object-oriented engineering database based on an international standard, PDXI. The database was implemented as two dozen cooperating DLL's using Visual C++. Interfaces to the database DLL's were provided in Visual C, DEC Fortran, and Visual Basic. (C, C++, Fortran, Visual Basic, Delphi; Windows NT).
Programmed, debugged, and tested modules for a very large chemical process simulation system. Implemented a bug logging system and served on the version-release committee. Worked on a committee to redesign the engineering database, from proprietary format to object-oriented repository. (C, C++, Fortran, Access; Windows NT, VAX, Prime, Unix).
Teledyne Battery Products (1989)
Corrected problems in a customized accounting system running on a multi-PC network. Debugged and fixed the communications interface between the payroll system and the bank automated deposit system. (Business Basic; IBM PC, Novell network).
Ergodic Systems Inc. (1989)
Modified and implemented modules for a client database system and interactive user screen interface (Cobol, Basic; VAX, VMS).
Scott & Goldman, Inc. (1988-1989)
Designed and implemented a client/debtor database system (dBase; IBM PC).
Southern California Edison, Inc. (1987-1988)
Converted a financial-energy model from a legacy modeling language to a program (from Focus on IBM mainframe to platform-independent Fortran). Wrote terminal emulation programs to interface PC development platforms to the department Prime minicomputer. Designed and implemented a menu-driven interface to provide efficient user access to model data. (Fortran, Focus, Basic; IBM PC, Prime, Unix).
Sigmatek, Inc. (1984-1987)
Programmer; Project Leader.
Implementation of a real-time system for traffic management and data collection for the Los Angeles freeway system. Debugged microprocessor communications and controller problems. Analyzed and rewrote the communications subsystem for the embedded software in the field controllers. Compiled the microprocessor software and burned PROMs using a Motorola development system. Debugged undocumented mainframe communications subsystems. Implemented multiple CPU operation and failover. Developed libraries of utility support software. Created software tools to support the development effort. Created a Cobol interface to the Fortran and Assembler database routines. Responsible for hiring and training additional programmers for the project. Responsible for mainframe maintenance, updates, and sysgens. (Fortran, Assembler, Cobol; Modcomp, Motorola 6800, IBM PC).
Advansys Inc. (1983-1984)
Graphics and database programming for a financial planning system. Development of high- and low-level graphics display languages for plotter and display. (Basic, dBase, bTree; PC).
Custom Software, Inc. (1983)
Conversion of a very large project management system from one computer to another (Prime Fortran to VAX). Implemented low-level operating system access routines on the target computer. (Fortran; VAX, Prime).
MCS, Inc. (1976-1979, 1980-1983)
Computer Scientist; Computer Operations Manager.
Multiple projects and responsibilities at a major CAD/CAM software house, including:
Development and maintenance programming for a very large CAD/CAM graphics system. Systems manager and systems programmer on Perkin-Elmer, Prime, and VAX computers. Responsible for hiring and training system support personnel. Responsible for major releases of the commercial software package. (multiple platforms, ranging from minicomputers such as VAX and Prime to very large mainframes such as IBM and CDC).
Software development for intelligent graphics terminals (commercial product). Responsible for acquiring and developing tools to support embedded-software development, including cross-assembler, compiler tools, and support libraries for the microprocessor. Reprogrammed and installed EPROMs to update the embedded software. Debugged the embedded OS. Developed communications protocols for the local network. (cross-platform development using VAX and other minis; embedded software development for the Z800 microprocessor).
Santa Fe Engineering, Inc. (1979-1980)
Computer software support for Engineering Research and Development. (Fortran, APL, Snobol, Assembler; PDP-11, Perkin-Elmer 8/32, Xerox Sigma-7, VAX).
University of California, Irvine (1975-1977)
Teaching Assistant; Lecturer.
Taught a course in structured Cobol programming. Assisted in developing and teaching a graduate-level course on software tools and computer-aided software engineering. Assisted teaching an introductory course in computer graphics. Maintained departmental accounting software (Cobol, Algol, Simula, APL, Basic; DEC PDP-10, PDP-11, Xerox Sigma-7).
Standard Utility Rating Engineers (1974)
Designed and programmed a system to analyze customer utility bills and check for errors (Cobol; Xerox Sigma-7 timesharing).
Long Beach Community Hospital (1972-1974)
Computer Operator; Operations Coordinator.
2.1 Academic Work
2.2 Computer Languages
2.3.3 Graphics and Multimedia
2.4 Computer Systems
2.4.1 Mainframes and minicomputers
2.4.2 Microcomputers and Workstations
2.5 Professional Organizations
Past member of ACM, IEEE, and AAAI.
3. Technical Interests and Areas of Research
In order to keep up with today's ever-accelerating computer technology, I find it helpful to maintain a backlog of projects that interest me. These projects can be used to explore themes and solutions to many of the problems encountered during everyday software development. They can also provide experience in technologies not usually encountered during the regular business of software development. In some cases they attempt to address the shortcomings of real-life company practices.
The software projects I work on include: metacompilers; code generators; virtual reality; web communications; security and encryption; improved passwords and password generators; random-number generators; phrase generators; command-line tools; web page tools; documentation tools; unit testing platforms; and software project audit tools.
Currently checking out: Croquet (3D collaboration environment based on Smalltalk).
Further discussion of these projects and associated writings, as well as samples of production programs I've written, are on my website at: