PHILIP SIMON TUFFS, Ph.D
| Pacific Grove, CA 93950, USA. | cv@simontuffs.com |
EDUCATION
D.Phil (Ph.D) University of Oxford, Oxford, UK (1984). Thesis: “Self-Tuning Control Systems: Algorithms and Applications”. Advisor: Prof. D. W. Clarke.
Bachelor of Engineering (B.Eng) University of Liverpool, Liverpool, UK (1981). Awarded first-class honors degree (valedictorian).
EXPERIENCE
2003-Present: Independent Consultant/Entrepreneur, Pacific Grove, CA
Created and delivered a number of open-source projects to the internet over a three-month period: http://one-jar.sourceforge.net, http://soap-stone.sourceforge.net, http://xml-xig.sourceforge.net, http://jar-plug.sourceforge.net, http://url-plug.sourceforge.net, http://cdd.sourceforge.net. Each project addresses a very specific need, and was taken from concept to delivery in one to two weeks. The JarPlug Eclipse Plugin (http://jar-plug.sourceforge.net) garnered thousands of downloads in its first month of release.
Consulted with PushToTest (www.pushtotest.com) to analyse scalability and performance of Web-Services infrastructure for Fortune 500 companies. Architecture, design, and implementation of test-bed to support benchmarks of top-tier commercial Java/J2EE application servers. Identified problem areas for large XML/SOAP documents, including memory exhaustion and computational inefficiencies.
Adjunct professor at California State University, Monterey Bay Spring 2004. (www.csumb.edu). Designed and taught upper-level class entitled “Software Design in C++”. Received “commendable” evaluation for the teaching of difficult material, and favorable reviews from students.
Collaborated with Stidolph Software Engineering (www.stidolph.com) in a contract with Siperian Corporation to produce a discrete event simulation of their J2EE based system to help Siperian analyze its systems architecture. Leveraged and extended a Java simulation engine (SimJava) to produce a full discrete-event simulator incorporating processing delays and queue depths for messages flowing in the system. The simulator had a graphical visualization showing message flows and queue depths, and was deployed as a Java applet. Customer was highly satisfied with the results.
Conceived and created business case and working prototype for a business-to-business class product called mail/IX. Mail/IX is designed to automate the updating of email contact information between e-commerce sites in a confidential and vendor-neutral manner. The prototype uses Struts 1.1 to coordinate workflow and presentation logic, and demonstrates end-to-end operation of the system. Currently seeking funding for ongoing business development.
2000-2003: Lutris Technologies Inc (Gridion Inc), Santa Cruz, CA
Senior Staff Engineer
Served as a senior staff member of the twenty-person engineering team responsible for creating the J2EE Lutris Enhydra Application Server (LEAS).
Lutris was a ‘dot-com’ company built around open-source principles, and had a business-model based on follow-on service and support. As senior staff member I collaborated in the design, implementation and testing of the classloader and deployment subsystems, and deployment of J2EE applications on the server. The LEAS 4.0 product was initially released in November 2001, and LEAS 4.1 in March 2002.
The Lutris business model proved flawed, at least within the scope of available funding. Lutris downsized to a core team of five engineers and two managers, with a mandate to find a new direction for the company. After four weeks of brainstorming meetings I proposed a radical new idea based on the convergence of web-services and Grid computing. Grid computing is an emerging field related to the fields of distributed and network computing. A management decision was made to go with this idea, and to sell the concept to the board of directors I created an end-to-end discrete-event simulation of the system with graphical animation in less than two days.
Lutris was renamed Gridion, to reflect the new focus for the company, and the Gridion Server product has now been deployed at a major EDA company in Silicon Valley. Other deployments are in progress.
A core component of the Gridion Server is the Job Submission Language (JSL). JSL files describe applications that run on the Gridion network, and also provide programmatic control over resource scheduling and allocation. I designed and implemented JSL by bootstrapping the ‘Ant’ open-source project, thereby accelerating time to market. JSL is fully XML 1.0 compliant.
Gridion was seeking venture capital (VC) funding: the lead VC company required rapid evaluation as to whether the Gridion server platform could be used to accelerate XML/XSLT transforms. I built and demonstrated an XSLT transform engine on the Gridion system in less than two weeks, convincing the VC’s to keep the due-diligence process alive. The prototype was able to demonstrate linear speedup on up to 16 processors.
All of the software design and development I was involved with at Lutris/Gridion was done in Java, using the J2EE and J2SE platforms.
1997-2000: Octant Technologies Inc, San Jose, CA
Co-Founder and Systems Architect
Co-founded and led the software development team at Octant Technologies. Octant Technologies was created as a spin-off from Integrated Systems Incorporated (ISI). At the time, ISI was a medium-sized software development company in the aerospace and automotive industries. It was realigning its business model to emphasize a commercial real-time O/S (pSOS) that it had acquired in the early 1990s, and was neglecting its customers in the aerospace business from which it had initially grown. It was these customers that provided the majority of our work in the Advanced Systems Division.
When faced with dissolving the group, my supervisor, another colleague and I took the step of creating Octant and negotiating the transfer of key customer contracts so that we could continue to support them.
As a co-founder I played a key role in negotiating the transfer of the Honeywell Space-Station contract from ISI to Octant. I was also responsible for all computing infrastructure: specifying, procuring, installing and maintaining the computer hardware and networking equipment (a mixture of desktop PC’s equipped with X-windows software and a Sun 450 server to handle our heavy simulation loads).
As Systems Architect, I led the continued development of the Multi-Model simulation software, originally developed for the Space Station program. With a team of four engineers this evolved into the Tiburon Simulation system. Tiburon is a scalable software/hardware platform that can perform hard real-time or data-driven simulations on a range of topologies from networked Unix workstations to multi-processor VME-based systems. It is the simulation engine in use on the Space Station program for flight-readiness testing of hardware before launch and was recently used as flight software/hardware for the successful AFRL XSS-10 satellite mission.
Octant Technologies is successful and continues to base its contract proposals on the Tiburon (now named Orion) platform.
1990-1997: Integrated Systems Inc, Sunnyvale, CA
Research Scientist
During seven years at Integrated Systems Inc (ISI) I held a number of different positions and worked on many and varied projects.
As a member of the AutoCode software development team, a product containing over 35,000 lines of Ada code, I successfully redesigned and implemented the AutoCode/C product in response to the needs of Philips Kassel, Germany. The code generator was extended to handle fixed-point code and mixtures of fixed-point and floating-point code. Philips created a custom product for the control of plastic extrusion machinery based on this version of AutoCode/C. The success of this product was partly due to the rigorous test suite I created specifically to test the code that was developed. This test suite helped to eliminate regression of the product during its development and final bug-fixing cycles. The testing software automated five phases of product testing: code generation, compilation, linking, execution and input/output signals across 28 different system models in 16 combinations. To reduce the time required to perform regression testing, the test suite was executed concurrently on a network of 8 VAXStations. Test results were collected and summarized in a simple tabular form. The test software was itself, a large software project, resulting in over 10,000 lines of VAX DCL scripts.
Some of the contracts I worked on were for large aerospace customers including Lockheed Corp., Honeywell and Motorola. In 1993 I extended the ISI AutoCode/Ada product for execution on multiprocessor systems, under contract to Lockheed on the FEWS program. The resulting product was designed to execute on both UNIX workstations (simulating the multiprocessor architecture with UNIX programs) and in real-time under the VxWorks real-time kernel on a four processor VME R3000 system. It was fully integrated with an advanced visualization tool (VAPS), and communication between the VME and host display workstations was ported and debugged in a matter of days. The overall cross-platform portability of the product proved crucial when a last minute decision was made to demonstrate the software on a Sparc-10 workstation rather than the VME real-time system, due to irresolvable cross-compiler problems. Lockheed was able to meet their deadline.
In 1994 I was the designer and lead engineer on a team of three engineers who created a symmetric multiprocessing version of the real-time software AC100, executing on a dual-CPU R3500 VME target system. This contract was completed on-time and under budget, and resulted in a completely new message passing design for the real-time product line that could be ported quickly to new hardware systems. Harris Engineers have since ported this software to the Harris Nighthawk system.
Also in 1994, I was a member of the ISI team under contract to Motorola and Iridium Inc. The team developed a two-satellite simulator in less than eleven weeks, and delivered it for successful acceptance testing on time. I was responsible for enhancing the off-the-shelf AC100/C30 product (a PC based C30 DSP system), and I designed, implemented, and tested a complete socket interface to the TCP/UDP suite of network protocols to support the TCP/IP communications required for the simulator. As part of this work I developed a general-purpose UNIX-based IP socket debugger called ‘dbsock’ which is capable of acting as a server, router, or client in TCP or UDP mode, and which can send and receive both ASCII and binary telemetry data. Both ISI and Motorola engineers adopted this tool for debugging their networked telemetry code.
From 1995 until 1997, I led the development of a scalable simulation platform for the Space Station program. Boeing and Honeywell had committed to using a simulator from ISI, but it would not scale up to the size of simulations that were needed. My team created the first release of a product to solve the basic scalability problem, and stabilized the business relationship between ISI and Boeing/Honeywell. We then went on over a period of 12 months to completely solve the problem, resulting in deployment at a number of NASA facilities including the Johnson Space Center in Houston. This simulator is currently performing essential pre-flight testing of flight modules for the Space Station. On at least two occasions, the work performed by our team was on the critical-path for the entire Space Station project.
The software development work I performed at ISI covered a wide range of programming languages and computing platforms: Ada, C, C++, FORTRAN, PERL; Unix, VxWorks, PSOS, Windows. Most of the development work was performed under contract directly to specific customers.
1995: Borland Interactive, Scotts Valley, CA.
Atlas Project Team Manager
Served as manager and team lead on the ‘Atlas’ component of Borland Interactive’s ‘800’ project, a joint venture with MCI Corporation. Atlas was an object exchange mechanism derived from Borland’s OBEX product, written in C++ and hosted on the PC/Windows platform. I was responsible for developing and managing schedules for the team of four engineers, coordination with other teams, and planning meetings. I was also responsible for quality efforts in improving the product, debugging and development of new software. As part of this, I implemented an advanced diagnostic mechanism in C++ to allow instrumentation of the software for debugging purposes.
I worked with Borland C++ 4.5, Bounds Checker, Soft-Ice, and various electronic mail systems. The gathering momentum of the Internet caused the business partner (MCI) to pull out of the joint venture, resulting in my rejoining ISI in September 1995.
1989-1990: Ready Systems Inc, Sunnyvale, CA
Senior Ada Software Engineer
Worked as a member of the Ada development team with responsibility for the source-code debugger and re-hosting to VRTX. I successfully re-engineered the TeleSoft Ada debugger to make it aware of task and communication primitives in the VRTX kernel. I assisted with product testing and produced documentation.
1985-1989: Alcoa, Alcoa Technical Center, Pittsburgh, PA
Staff Control Systems Engineer
Member of the Process Control and Computer Technology division of Alcoa’s Technical Research Center in Pennsylvania. This position developed from a relationship I established with Alcoa during research work for my D.Phil.
Implemented a self-tuning control system on an electromagnetic casting facility, resulting in improved level control throughout the casting process. This work was the first industrial application of a simplified version of the Generalized Predictive Control algorithm that I had co-developed while at the University of Oxford.
Developed and tested analysis software to predict the impact of hot-mill rolling disturbances on the quality of finished flat-rolled products. The experimental aspects involved performing signal injection at the hot-mill stage, on production-quality flat-rolled aluminum products, without pushing them outside their quality limits. These signals were then tracked through a cold mill and finishing mill. One unanticipated outcome of this work was a new non-sensor based method of estimating rolling-slip, an important component of the process of determining when to change-out the rolls to keep quality at acceptable levels.
Designed and implemented hardware and software for feedback control of an extrusion-straightening machine. I was brought into this project because the existing control system was highly unstable, and with a 10KW servomotor was in danger of destroying the equipment. I determined that the problem was due to over-sampling, and also lack of anti-aliasing filters. I designed and implemented an alternative discrete-time control system, based on a PDP-11/RSX11M+ computer, and created a simple menu-driven user-interface to allow operators to run extrusion-straightening experiments without engineering staff involvement.
Began research on the use of the Ada programming language as a replacement for FORTRAN in real-time control systems. All of Alcoa’s rolling-mill control systems were implemented in FORTRAN, a less than ideal language for the problem. Ada had many attributes making it much better suited for real-time systems.
SUMMARY OF INDUSTRIAL EXPERIENCE
Over 18 years of hands-on software development experience in a wide range of industries and corporations. Proven track record of taking difficult projects from conception to deployment, while consistently beating schedules and satisfying customer needs through creative problem solving.
EXPERT IN:
Web-services technology (SOAP/WSDL/XML/XSLT etc)
J2EE application server technology (EJB, JMS, JCA, JNDI, Struts/JSP etc)
Grid programming
Object-Oriented analysis, architecture, design, implementation and test
TCP/UDP/IP networking and sockets programming
Java, C, C++, Ada, assembler programming
Real-time Operating Systems (RTOS)
Real-time and non real-time multi-threaded programming
Recursive descent and other parsing technologies
Extreme Programming methods (rapid-prototyping, iterative development)
Control systems design, systems identification and audio signal processing
Simulations: continuous-time, discrete-time, discrete-event
RESEARCH EXPERIENCE
1981-1984 University of Oxford, Oxford, UK
D.Phil Research Student
Studied in a small research group under the guidance of Prof. D.W. Clarke, an acknowledged expert in the field of digital control systems, and creator of some of the first self-tuning control algorithms.
The thrust of my research was towards the industrial application of self-tuning control algorithms. When I joined the research group at Oxford they had performed some successful industrial trials of the basic self-tuning control algorithms, but there were a number of serious problems relating to signal and process offsets. The theoretical treatments of these issues did not work well in practice, and I took this problem as my first assignment.
Using a combination of theoretical analysis based on discrete-time polynomial equations, and discrete-time simulation, I developed what came to be known as the ‘k-incremental’ predictive controller, the first self-tuning control algorithm to be able to successfully reject (or actually ignore) process offsets. Industrial tests were performed to validate it on a cryostat system at Harwell Atomic Energy Authority (UKAEA). The algorithm performed so well that it was immediately adopted by the self-tuning research group and by other groups in the field. I co-authored a paper on this subject, which was published in the Proceedings of the Institute of Electrical Engineers.
Despite the success of the k-incremental approach, there were situations where it did not perform well; in particular when the estimate of process delay was substantially different from the actual process delay. The ‘implicit’ self-tuning control algorithms that we were using did not perform well under these circumstances either, but the k-incremental algorithm was more sensitive.
Further theoretical research, together with experimental work in the lab and at industrial plants in Peterborough, UK, and Alcoa, US, led me to develop a unified approach towards offset rejection in self-tuning controllers. This work was published in a paper entitled “Self-tuning control of offset; a unified approach” which won the 1985 Mather Prize for best control systems paper.
While writing my thesis “Self-Tuning Control: Algorithms and Applications” and re-researching the theoretical work underpinning the algorithms I had developed, I uncovered a new approach towards self-tuning control which has since become known as ‘Generalized Predictive Control’, or GPC. I consider GPC to be my biggest contribution to the field of control systems. It has supplanted all the algorithms that were in place at the time and has been adopted by many research groups and experimentalists around the world. The original GPC paper has over 1000 citations as indexed by the Google search engine.
BUSINESS EXPERIENCE
Founder and President of simontuffs.com (http://www.simontuffs.com), an independent consulting organization specializing in Java-based Web-Services scalability analysis and Open Source software development.
Founder President of Innovative Solutions In Software, a software development company focused on sound-editing software for the Microsoft WindowsTM platform. The flagship product, WaveWorks has been integrated with the multi-media editing software of a major broadcast organization.
PUBLICATIONS
Tuffs, P.S. “Self-tuning Control: Algorithms and Applications” D.Phil Thesis, Oxford University OUEL report 1567/85, 1985.
Tuffs, P.S. “Control Systems in Ada (Part 1 -- Design Philosophy and Techniques and Part-2 Software Documentation)” Alcoa Technical Center internal report, 1988.
Tuffs, P.S. “Self-tuning Control Trials at British Sugar (Peterborough)” Oxford University Department of Engineering, Internal Report, 1982.
Tuffs, P.S. and Mohtadi, C. “FAUST: user’s guide” Oxford University, OUEL Report 1582/85, 1985.
Tuffs, P.S. and Mohtadi, C. “FAUST: programmer’s reference guide” Oxford University, OUEL Report 1583/85, 1985.
Clarke, D.W., Mohtadi, C. and Tuffs, P.S. “Generalized Predictive Control. Part 1: The basic algorithm” Automatica, Vol. 23, No.2, pp.137-148.
Clarke, D.W., Mohtadi, C. and Tuffs, P.S. “Generalized Predictive Control. Part 2: Extensions and interpretations” Automatica, Vol. 23, No.2, pp.149-160.
Tuffs, P.S. and Mesaros, M.M. “Experiences porting XmathTM to POSIX” DECUS Conference Proceedings, Las Vegas, Nevada, 1993.
Clarke, D.W., Hodgson, A.J.F and Tuffs, P.S. “The offset problem and k-incremental predictors in self-tuning control” Proc. IEE, Vol.130, Pt.D, No.5, pp.217-225
Clarke, D.W., Tuffs, P.S. and Mohtadi, C. “Self-tuning control of a difficult process” 7th IFAC Symposium of Identification and System Parameter Estimation, 1985.
Proudfoot, C.G., Clarke, D.W., Jacobs, O.L.R and Tuffs, P.S. “Comparative study of self-tuning controllers regulating pH. IEEE Conference Control ‘85, Cambridge, England, 1985.
Tuffs, P.S., “FAUST: introduction and overview” Oxford University OUEL Report 1568/85, 1985.
Tuffs, P.S. and Clarke, D.W., “FAUST: a software package for self-tuning control” IEE Conference Control ‘85, 1985.
Tuffs, P.S. and Clarke, D.W., “Self-tuning control of offset; a unified approach” Proc. IEE, Vol.132, Pt. D, No.3, pp 100-100, 1985. Winner of the 1985 Mather Prize for best control systems paper.
Tuffs, P.S., “Trapping Bugs with Exceptions” Windows Developer Journal, July 1997.
PROFESSIONAL AFFILIATIONS
Member of the Institute of Electrical and Electronic Engineers since 1985. Member of the Software Forum based in Silicon Valley. Member of the Association of Shareware Professionals. Member of the Oxford Society of Northern California. Past member of Toastmasters International.
REFERENCES
Three professional references (email and phone numbers) available on request.
OTHER INTERESTS
Avid cross-country skier and inline skater. Musician, composer and performer of music in the genre of progressive rock/pop. Supporter of the Muscular Dystrophy Association fundraising activities. Sponsor of Save the Children, UNICEF, Monterey First Harvest Food Bank, Goodwill. Antique home maintenance and restoration.
PERSONAL
Married with two children and an English Springer spaniel, living in a 107 year old Victorian cottage in Pacific Grove. Naturalized United States Citizen.