Your SlideShare is downloading. ×
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply



Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Resume for Philip L. Thompson Page 1 RESUME Philip L. Thompson phone: 714-921-9753 email: resume: Summary * Education: BS and MS degrees in Computer Science from UC Irvine * Experience: over 25 years in software development * Programming: * Expert programmer in over 20 computer languages * Design and development of algorithms and systems * Design and implementation of powerful software tools * Metacompiler development, parsers, source code generators * Knowledge and application of: * structured programming, structured analysis and design * object-oriented programming, object-oriented analysis and design * current Computer Science theory and practice * current Software Engineering practices * current software development technologies * Documentation at all levels of system development * Software engineering: * All phases of the Software Development Life Cycle * System maintenance, re-engineering, conversion, testing * System development for engineering, business, R&D, Internet, networks * Classic user-centric systems analysis to obtain user needs and requirements * Systems programming on micros to mainframes, including embedded/real-time * Database development, data collection, security applications * Web and GUI development, scripting, report generation * Computer graphics, CAD/CAM, games, simulation, virtual reality * Parsers, code generators, analysis tools, domain-specific languages * Automated conversion of legacy code and data using customized software tools * Software project audit, review, assessment, revision, codebase analysis Education 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.
  • 2. Resume for Philip L. Thompson Page 2 1. Experience Sente Systems, Inc. (1997-2007, 2008) Programmer, Consultant, System Architect. Software development consulting on software engineering projects for client companies. Systems analysis, design, and programming for a variety of platforms, languages, and applications. Projects include system security, encryption, web development, system administration, software project auditing. Project support software and software tools. Design and implement GUI and web-based applications. Maintain and use a full-featured metacompiler and its runtime, a multi-platform tool for generating parsers applied to domain- specific languages, source code analysis, code generators, automated code and data conversion. Open source projects. (C, C++, gcc, Visual C++, dynamic HTML, XML, JavaScript, Java, multimedia, Apache, CGI, DLL, ActiveX, Delphi, Visual Basic, MFC, PowerBasic; Windows 98, Windows NT, Windows 2000 and XP Professional, Linux, OpenBSD, Sun Solaris, MacOS 9). 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). Arinc (2002-2003) 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. Web database programming for a web-based application based on proprietary CGI-BIN technology running on a large server farm. Analyzed the low-level memory control system for failure points. (C, JavaScript, HTML, CGI-BIN, dynamic SQL; Windows NT). 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).
  • 3. Resume for Philip L. Thompson Page 3 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; Window NT). Cotelligent (1999) 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) Programmer. Testing framework for a web-based survey system. Design and implementation of a testing framework for system, integration, and regression testing for server and web applications. Driven by a domain-specific script language for testing using Perl as the driving control platform. Development done in a vmware sandbox, running Linux VMs on WindowsXP as well as running on remote Linux LAMP servers. (Perl, Javascript, C, Linux, VMware). Simulation Sciences Inc. (1989-1997) Programmer. 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
  • 4. Resume for Philip L. Thompson Page 4 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) Programmer. 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) Programmer. Modified and implemented modules for a client database system and interactive user screen interface (Cobol, Basic; VAX, VMS). Scott & Goldman, Inc. (1988-1989) Programmer . Designed and implemented a client/debtor database system (dBase; IBM PC). Southern California Edison, Inc. (1987-1988) Programmer. 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
  • 5. Resume for Philip L. Thompson Page 5 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) Programmer/Consultant. 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) Programmer/Consultant. 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) Programmer. 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).
  • 6. Resume for Philip L. Thompson Page 6 Standard Utility Rating Engineers (1974) Programmer/Consultant. 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.
  • 7. Resume for Philip L. Thompson Page 7 2. Background 2.1 Academic Work * Software design tools. * Software engineering. * Computer graphics. * Artificial intelligence. * Compiler design and implementation. 2.2 Computer Languages * C, C++, Java, Basic, Pascal, Fortran, Cobol, Ada, Algol * Rapid Application Development: Delphi, Visual Basic, VBA * HTML, JavaScript, VBscript, Perl, CGI, XML, Postscript * SQL, OODB, ODBC, SQL Server, Oracle, DB2, dBase, FoxPro, Access * Lisp, Sail, Snobol, Modula, Pilot, Simula, APL, Smalltalk * Assembly language, macro-assemblers, scripting languages 2.3 Environments 2.3.1 Networking * TCP/IP, IPv4, IPv6, UDP, VoIP, BSD sockets, ports, services * DNS, Bind, SSL, PKI, HTTP, FTP, SMTP, POP3, IMAP, MIME * Apache, Javascript, Applets, DHTML, AJAX, .NET, Browser Hell * firewalls, proxies, dedicated and virtual servers, colocation, data centers * security, password control, PAM, capabilities * study various forms of attack: denial of service, zombies, bots * apply defensive measures: chroot, sandboxes, honeypots, tarpits, tripwires * operated an older Red Hat Linux server that was penetrated * default OS utilities were insecure: ftp or news reader probable hole * attacker installed Perl programs at root to attack global routers and sites * attacker modified system logs, verified by later analysis of time lags * analysis showed the attack came from a university in Germany * on discovery, found and destroyed all attacker-installed software * called or emailed sites my machine attacked to explain and apologize * replaced insecure utilities, installed Tripwire for future intrusion detection * currently operate a dedicated remote server * running Debian Linux, Apache, MySQL, exim, telnet, ssh, ftp, Perl * for prototyping and testing network-based applications * for learning new network-based technologies * supporting several domain names and websites
  • 8. Resume for Philip L. Thompson Page 8 2.3.2 Databases * SQL specification, schema normalization * entity relationships, functional dependencies * data wrangling, data conversion, encryption, dynamic SQL * integrity constraints, transactioning, fault tolerance * DBA controls, authorization, backup strategies * Microsoft Office: Word, Excel, Access, PowerPoint, Outlook, Visio, VBA 2.3.1 Graphics and Multimedia * Win32 GDI, DirectX, X Windows * fonts, TrueType, OpenType, PostScript * CAD/CAM, plotters, displays, input devices, output devices * canonical forms, sound devices, speech synthesis * OpenGL, 3D processing, 3D modeling, virtual reality * textures, skins, mapping, object collision, shader languages * homogeneous coordinate systems, BSP (binary space partitioning), Quad trees * object-based model-view-controller, call back functions, styles of interaction 2.4 Computer Systems 2.4.1 Mainframes and minicomputers * DEC VAX, PDP-10, PDP-11. * Honeywell GCOS. * HP 1000, 2100, 9000, Unix. * IBM 360, RS6000. * Perkin-Elmer 7/32, 8/32, 3230. * Tandem. Modcomp Classic. Prime 750, 9955. * Xerox Sigma-5, Sigma-7. 2.4.2 Microcomputers and Workstations * IBM PC, Linux, FreeBSD, OpenBSD, Knoppix, Ubuntu, MSDOS, Novell. * Windows 3.1, Windows 95/98, Windows NT, Windows 2000 Pro, Windows XP Pro. * Commodore Amiga. * Macintosh, MacOS 9. 2.4.3 Microprocessors * Intel 8080, 8088, 80x86. * Motorola 6800, 68000, DSP56000. * Zilog Z8000. 2.5 Professional Organizations Past member of ACM, IEEE, and AAAI.
  • 9. Resume for Philip L. Thompson Page 9 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: