Curriculum Vitae
David M. Beazley
(http://www.dabeaz.com/cv.html)
Name: | David M. Beazley |
Location: | Chicago, Illinois |
Email: | dave-cv@dabeaz.com |
Homepage: | http://www.dabeaz.com |
Citizenship: | USA |
Education
- Ph.D. in Computer Science, University of Utah. Salt Lake City, Utah. 1998.
- M.S. in Mathematics, University of Oregon. Eugene, Oregon. 1993.
- B.A. in Mathematics, Fort Lewis College, Durango, Colorado. 1991.
Professional Experience
- Owner/Operator, Dabeaz LLC, Chicago, Illinois. 2008-present.
- Consultant (Software Engineering and Analysis). Chicago, Illinois. 2005 - 2007.
- Assistant Professor, Department of Computer Science, University of Chicago, Chicago, Illinois. July 1998 to 2005.
- Staff Research Assistant, Condensed Matter and Statistical Physics Group (T-11), Theoretical Physics
Division, Los Alamos National Laboratory, Los Alamos, New Mexico. June 1991 to September 1997.
- Undergraduate Internship, Cognitive Systems Engineering Group (A-6), Los Alamos National Laboratory, Los Alamos, New Mexico.
Summer 1990.
- Actuarial Science Internship, The Travelers Insurance Company, Hartford, Connecticut. Summer, 1989.
Personal Statement
I am a computer scientist with approximately 30 years of programming
experience. My primary areas of expertise are in systems programming,
programming languages, software development tools, and software
engineering. Although I am most well known for my work in scientific
computing, I most enjoy working on problems related to the interface
between hardware and software. For example, operating systems, device
drivers, embedded systems, and programming tools.
I currently own and operate Dabeaz LLC, a consulting company that
primarily focuses on the development and use of open-source software
development tools. I am the creator of several well known programming
libraries and also offer professional training on the use of dynamic
programming languages such as Python. From time to time, I also offer
technical consulting related to software engineering, systems
analysis, and reverse engineering.
Career Highlights
- Supercomputing
At Los Alamos National Laboratory, I developed applications
software, algorithms, and programming techniques for massively
parallel supercomputing systems including the Connection Machine 5 and
Cray T3D. In 1992, I was the primary developer and architect of SPaSM
(Scalable Parallel Short-range Molecular dynamics), a software package
for performing experiments in materials science (crack propagation,
fracture, dislocations, etc.). In 1993, SPaSM was one of the winners
of the IEEE Gordon Bell Prize competition in high performance
computing. In 1995, I helped pioneer the use of scripting languages
with parallel supercomputers and in 1996, I was the first developer to
port the Python programming language to such machines. The use of
scripting languages were an instrumental part of a massively parallel
data-analysis and data visualization system I built for remote
exploration of multi-gigabyte datasets. I presented this
work at a variety of international conferences including IEEE
Supercomputing, the International Parallel Processing Symposium
(IPPS), and the SIAM conference on parallel processing.
- Programming Language Interoperability
In 1996, I created a popular open source programming tool called SWIG
(Simplified Wrapper and Interface Generator) that automatically binds
existing C/C++ software to a wide variety of other programming
languages including Perl, Python, Tcl, Ruby, Java, C#, PHP, Scheme,
Ocaml, and many others. SWIG works by reading C++ header files and
automatically generating language bindings. To handle the complexities
of C++, SWIG implements the C++ type system and supports most language
features including templates, namespaces, and operator overloading.
SWIG has been downloaded by tens of thousands of programmers and is in
widespread use. For instance, SWIG is one of the core technologies
used to develop software at Google. It is also used by many government
laboratories including Los Alamos National Laboratory, Lawrence
Livermore National Laboratory, and Argonne National Laboratory. SWIG
is currently maintained by a team of developers from around the world.
More information is available at www.swig.org.
- Software Development Tools
In 2000, I
created a mixed-language debugging system called WAD (Wrapped Application Debugger), that allows
programmers to easily debug applications written in a mix of different
programming languages (e.g., C++ mixed with Python). WAD is unique
in its approach to this problem and a paper on the topic
was awarded "Best Paper" at the 9th International Python Conference.
In 2001, I created a Python implementation of the popular lex/yacc
parsing tools called PLY (Python Lex-Yacc). PLY is used by programmers to
implement parsers, interpreters, and compilers. In 2002, I released an embedded
webserver library that allows programmers to add web-based remote monitoring and
diagonistic features to C/C++ software. A paper on this library,
co-authored with Sotiria Lampoudi, won "Best Student Paper" at the 2002
USENIX Freenix conference.
- Computer Graphics and Data Visualization
I have written three separate graphics libraries. In 1986, I
developed a 3D mathematical plotting library (written in 6502
assembler) for the Apple 2. In 1990, I wrote a high-performance
graphics and animation library for the IBM PC. This library,
implemented entirely in 8086 assembly language, allowed programmers to
access SVGA graphics cards from programs written in the Modula-2
programming language. In 1995, I implemented a three-dimensional
graphics library and visualization system for massively parallel
supercomputers. This system allowed scientists to remotely analyze
large-scale data sets consisting of hundreds of gigabytes of data.
- Computer Architecture
I am familiar with the principles of computer hardware, systems design, and
low-level programming. I have written two major software packages
(graphics libraries) entirely in assembly language, both of which
directly controlled the underlying graphics hardware. On the
Connection Machine 5, I implemented numerical integration kernels in
assembly language in order to control special-purpose vector
co-processors. In a related project, I later showed that the
optimizations achieved using special purpose hardware (the vector
coprocessors) could also be achieved by carefully optimizing code for
the SPARC RISC processor instead. My work in compilers and debuggers
has also required a detailed knowledge of the underlying computer
architecture. Moreover, as a professor, I taught courses in operating system
design that focus on the connection between computer hardware and
systems software. As a graduate student, I was awarded the college of
engineering teaching award for my work as an assistant in the
undergraduate computer architecture and digital logic design courses.
- Computational Physics
At Los Alamos, I worked as a computer scientist in the Theoretical
Physics division and Center for Nonlinear Studies (CNLS). In this
position, I worked with physicists to develop software for solving a
variety of scientific problems. In 1991, I worked on software for
solving stochastic ordinary differential equations. This software was
used to study structural phase transitions in materials. In
1992, I started working on molecular dynamics simulation software. This
software was used to study problems in materials science including
fracture, crack propagation, and dislocation dynamics. Although my
primary focus was software, I was actively involved in all aspects of collaborative
research that led to publications in Science and Physical
Review Letters.
- Book Author
In 1999, I wrote "The Python Essential Reference", a comprehensive
reference for the Python programming language. The Essential
Reference is one of the most highly regarded books on this topic and is
available in Japanese, Chinese, Russian, Polish, and German translation.
In 2001, I contributed three chapters on XML to the book "Python Web Programming" by Steve Holden.
A 3rd Edition of the "Python Essential Reference" was published in 2006. I am currently working
on the 4th Edition to be published in 2009.
- Software Analysis Consulting
Since 2003, I have occassionally worked as an independent technical
expert on legal cases involving copyrights and patents. This work has
involved a considerable amount of software analysis, including the
analysis of two large C++ systems each involving more than 500,000 lines of
source code. I have also analyzed more than a dozen smaller systems
involving source code for embedded devices and controllers. In the course
of my analysis work, I have been called upon to examine software written
over a 35-year time span. This software has been written in a variety
of programming languages including assembly language, Pascal, PL/M86,
C, C++, Visual Basic, and Java. In addition the software has involved
the use of custom-written operating systems as well as many
commercial systems including Windows-NT, Windows-CE, Linux, OS/2,
pSOS, QNX, iRMX, and AMX. In the course of analysis, I often must
deal with all aspects of the software from high-level distributed
systems (e.g., CORBA, COM) to direct control of specialized hardware
devices. A significant portion of my analysis work has also involved software
forensics. For example, matching undocumented software to specific versions of
hardware devices, uncovering technical specifications,
and working with software version histories.
- University Professor
At the University of Chicago, I was a tenure-track assistant professor where I taught graduate courses
in Operating Systems, Networks, and Compilers.
Academic Publications
Refereed Journals and Conferences
- D.M. Beazley, "SWIG: An Extensible Compiler for Creating Scriptable Scientific Software",
in Future Generation Computer Systems (FGCS) 19. Elsevier, (2003). p. 599-609. (Note: this is an expanded
version of the ICCS'02 paper submitted by invitation).
- S. Lampoudi and D.M. Beazley, "SWILL: A Simple Embedded Web Server Library",
in USENIX'02 FREENIX Track, Monterey, CA, June 13, 2002. p. 19-27. (Awarded Best Student Paper)
- D.M. Beazley, "An Extensible Compiler for Creating Scriptable Scientific Software",
In ICCS'02, LNCS 2330, P.M.A. Sloot et al. (Eds). Springer-Verlag, 2002. p. 824-833.
- D.M. Beazley, "An Embedded Error Reporting and Debugging Mechanism for Scripting Language Extensions", USENIX Technical Conference, Boston, June 25-30, (2001). p. 147-160.
- D.M. Beazley, "WAD: A Module for Converting Fatal Extension Errors into Python Exceptions", 9th International Python Conference, Long Beach, March 5-7, (2001). (Awarded Best Paper)
-
D.M. Beazley, "Scientific Computing with Python", in ASP Conf. Ser.,
Vol. 216, Astronomical Data Analysis Software and Systems IX,
eds. N. Manset, C. Veillet, D. Crabtree (San Francisco:ASP),
49. (2000).
- S.J. Zhou, D.L. Preston, P.S. Lomdahl, D.M. Beazley, "Large-scale Molecular Dynamics
Simulations of Dislocation Intersection in Copper", in Science, Vol 279 (6).(1998). p.1525-1527.
- D.M. Beazley and P.S. Lomdahl "Feeding a Large-scale Physics
Application to Python", 6th International Python Conference, San
Jose, October 14-17. USENIX (1997). p. 21-28.
http://www.python.org/workshops/1997-10/proceedings/beazley.html
- D.M. Beazley and P.S. Lomdahl, "Controlling the Data Glut in Large-Scale Molecular Dynamics Simulations", Computers in Physics, Vol. 11, No. 3. (1997), p. 230-238.
- D.M. Beazley and P.S. Lomdahl, "Building Flexible Large-Scale Scientific Computing
Applications with Scripting Languages", 8th SIAM Conference on Parallel Processing
for Scientific Computing, March 14-17, Minneapolis, Minnesota. (1997). CD-ROM.
- D.M. Beazley and P.S. Lomdahl, " Extensible Message Passing Application Development
and Debugging with Python", Proceedings of IPPS'97, April 1997, Geneva Switzerland.(1997).
IEEE Computer Society. p. 650-655.
- S.J. Zhou, D.M. Beazley, P.S. Lomdahl, A.F. Voter, and B.L. Holian,
"Dislocation Emission From A Three-Dimensional
Crack --- A Large-Scale Molecular Dynamics Study", in
the Ninth International Conference on Fracture, Sydney,
April 1-5, 1997, B.L. Karihaloo et al., eds., Pergamon, p. 3085.
- S.J. Zhou, D.M. Beazley, P.S. Lomdahl, "Large-Scale Molecular Dynamics Simulations
of Three-Dimensional Fracture.", Physical Review Letters 78, No. 3 (1997). p. 479-482.
- S.G. Parker, C.R. Johnson, and D.M. Beazley, "Computational
Steering Software Systems and Strategies," IEEE Computational Science
and Engineering, Vol. 4, No. 4 (1997). p. 50-59.
- P.S. Lomdahl, D.M. Beazley, S.J. Zhou, and B.L. Holian, "Large-Scale Molecular Dynamics on MPPs," In proceedings of Physics Computing '96, Krakow, Poland, September 1996, p. 462-466.
- D.M. Beazley and P.S. Lomdahl, "Lightweight Computational Steering of Very Large Scale
Molecular Dynamics Simulations," Supercomputing'96, November 17-22, Pittsburgh, PA.
IEEE Computer Society (1996). (CD-ROM).
http://www.supercomp.org/sc96/proceedings/SC96PROC/BEAZLEY/INDEX.HTM
- D.M. Beazley, "Using SWIG to Control, Prototype, and Debug C Programs with Python."
4th International Python Conference, June 1996.
http://www.python.org/workshops/1996-06/papers/d.beazley-swig-extending.html
- D.M. Beazley, "SWIG : An Easy to Use Tool for Integrating Scripting Languages with C
and C++", Proceedings of the 4th USENIX Tcl/Tk Workshop, July 1996, p. 129-139.
http://www.usenix.org/publications/library/proceedings/tcl96/beazley.html
- B.L. Holian, S.J. Zhou, P.S. Lomdahl, N. Gronbech-Jensen, D.M. Beazley, and R.Ravelo,
"Molecular-Dynamics Simulations of Fracture : An Overview of System Size and Other
Effects," MRS Symposium Proceedings : Fracture--Instability Dynamics, Scaling, and
Ductile/Brittle Behavior, Vol. 409. Materials Research Society, Pittsburgh (1996).
- S.J. Zhou, D.M. Beazley, P.S. Lomdahl, B.L. Holian, "Large-Scale Molecular Dynamics
Simulations of Fracture and Deformation", Journal of Computer-Aided Materials Design,3 183 (1996).
- P.S. Lomdahl and D.M. Beazley, "Multi-Million Particle Molecular Dynamics on MPPs,",
Second International Workshop, PARA'95, Lyngby, Denmark, August 1995. In Lecture
Notes in Computer Science, vol 1041. Springer-Verlag. p. 391-407.
- D.M. Beazley and P.S. Lomdahl, "A Practical Approach to Portability and Performance Problems
on Massively Parallel Supercomputers." Proceedings of the Workshop on Debugging and
Tuning for Parallel Computer Systems, Chatham, MA, 1994. IEEE Computer Society (1996).
pg. 337-351.
- D.M. Beazley and P.S. Lomdahl, "Message-Passing Multi-Cell Molecular Dynamics on the
Connection Machine 5," in Parallel Computing 20, 1994. p. 173-195.
- D.M. Beazley, P.S. Lomdahl, P. Tamayo, and N.G. Jensen, "A High Performance Communications
and Memory Caching Scheme for Molecular Dynamics on the CM-5." Proceedings of 8th
International Parallel Processing Symposium, IEEE Computer Society (1994), p. 800-809.
- P.S. Lomdahl, P. Tamayo, N.G. Jensen, and D.M. Beazley, "50 Gflops Molecular Dynamics
on the CM-5." Proceedings of Supercomputing 93, IEEE Computer Society (1993), p. 520-527.
(IEEE Gordon Bell Prize).
- P.S. Lomdahl, D.M. Beazley, P. Tamayo, N.G. Jensen, "Multi-million Particle Molecular
Dynamics on the CM-5," International Journal of Modern Physics C. World Scientific (1993),
p. 1075-1084.
Dissertation
- D.M. Beazley, "A Wrapper Generation Tool for the Creation of Scriptable Scientific Applications,"
University of Utah. August, 1998.
Technical Reports
- D.M. Beazley, "SWIG Users Manual", University of Utah Technical Report UUCS-98-012 (1998), 300 pages.
http://www.swig.org/doc.html
-
D.M. Beazley and P.S. Lomdahl, "Beyond the CM-5 : A Case Study in Performance Analysis
for the CM-5, T3D, and High Performance RISC Workstations,"
Los Alamos Technical Report LA-UR 95-1127 (1995).
-
D.M. Beazley and P.S. Lomdahl, "
Optimizing Large-Scale Molecular Dynamics Simulations
for RISC-based MPPs and Workstations,"
Los Alamos Technical Report LA-UR 95-3410. (1995).
-
W.C.Kerr, P.S.Lomdahl, D.M. Beazley,
"Hysteresis in Constant Temperature Simulations of
a Model for First-Order Structural Transformations," Los Alamos Technical
Report LA-UR-94-3818 (1994).
Popular Press
Books
- D.M. Beazley, "Python Essential Reference, 3rd Edition", Sams Publishing,
ISBN 0-672-32962-3 (March, 2006). 625 pages.
- D.M. Beazley, "Python Essential Reference." New Riders Publishing, ISBN 0-7357-0901-7 (October, 1999). 350 pages. Also published in German, Japanese, Traditional
Chinese, Russian, and Polish translation.
Book Chapters
- S. Holden, "Python Web Programming", New Riders Publishing (2002). I wrote
the three chapters in section IV on "XML and Python".
- D.M. Beazley, P.S. Lomdahl, N.G. Jensen, R. Giles, P. Tamayo, "Parallel Algorithms for
Short-Range Molecular Dynamics." World Scientific's Annual Reviews in Computational
Physics, vol 3. (1995). p. 119-175.
- D.M. Beazley and P.S. Lomdahl, "Large-Scale Molecular Dynamics on MPPs", Applications
on Advanced Architecture Computers, ed. Greg Astfalk. SIAM Press, (1996). p. 75-92.
Articles
- D.M. Beazley, "Python 3: The Good, The Bad, The Ugly", USENIX ;Login:, Volume 34, No. 2 (2009). p. 40-53.
- D.M. Beazley, B.D. Ward, I.R. Cooke, "The Inside Story on Shared Libraries
and Dynamic Loading", IEEE Computing in Science and Engineering, Vol. 3(5), (2001). p. 90-97.
- D.M. Beazley, "SWIG and Automated C/C++ Scripting Extensions", Dr. Dobb's Journal, No. 282, February, 1998. p. 30-36,
- D.M. Beazley, "Wrappercode erzeugen mit SWIG", German Linux Magazine, vol. 07/1996. p. 47-55. (translated by Tom Schwaller).
- D.M. Beazley, P.S. Lomdahl, "High Performance Molecular Dynamics Modeling on MPPs (Part 1 and Part 2)." In SIAM News, Vol. 28, No. 2/3, February/March 1995. (Later updated and republished in "Applications
on Advanced Architecture Computers," SIAM Press).
- N.G. Jensen, T. Germann, P.S. Lomdahl, and D.M. Beazley, "Molecular Reconnaissance." IEEE
Computational Science and Engineering, Vol 2. No. 2 (1995). p. 4-5.
- P.S. Lomdahl and D.M. Beazley, "Molecular Dynamics on the Connection Machine." In Los Alamos
Science. LA-UR 94-2660. p. 44-57.
Other Publications
- D.M. Beazley, D. Fletcher, D. Dumont, "Perl Extension Building with SWIG",
O'Reilly Perl Conference 2.0, San Jose, California, August 17-20, 1998.
http://www.swig.org/papers/Perl98/swigperl.htm
- D.M. Beazley, "Tcl and SWIG as a C/C++ Development Tool",
Appears as an electronic chapter on the CD-ROM accompanying
"Tcl/Tk for Real Programmers" by Clif Flynt, Morgan Kaufmann Publishers,
ISBN 0122612051, (1998).
Invited Presentations
- Why Extension Programmers Should Stop Worrying About Parsing and Start Thinking
About Type Systems, Lightweight Languages 2 (LL2) workshop, MIT, November 9, 2002.
- Scientific Computing and Scripting Language Extension Programming,
at ONERA, Paris, France. April 18, 2002.
- Scientific Computing and Scripting Language Extension Programming,
Stanford University, April 10, 2002.
- New Features in Python 2, O'Reilly Open Source Conference, San Diego,
California, July 26, 2001.
- Scientific Computing with Python, ADASS'99, Hawaii, October 4, 1999.
- SWIG and the Creation of Scriptable Scientific Software, NASA Ames Research Center,
Mountain View, California, August 25, 1999.
- C/C++-Perl Integration with SWIG. O'Reilly Open Source Software Conference.
Monterey, California. August 24, 1999.
- Commodity Supercomputing with Python. 7th International Python Conference,
Houston, Texas, November, 1998. (Keynote Address).
- Scripting, SWIG, and the Creation of High Performance Scientific Applications,
Corporation for National Research Initiatives (CNRI), Reston, Virginia, January 29, 1998.
- Scripting, SWIG, and the Creation of High Performance Scientific Applications,
NASA Goddard Space Flight Center, January 28, 1998.
- Using Scripting Languages to Build Extensible High
Performance Scientific Computing Applications, Sandia National
Laboratory, Albuquerque, New Mexico, February 4, 1997.
- Remote Visualization and Data Analysis of Very Large Scale Molecular Dynamics
Simulations, Lawrence Livermore National Laboratory, June 7. 1996.
- Lightweight Steering Approaches for Large-scale Physics Applications,
Lawrence Livermore National Laboratory, July 9. 1996.
- High Performance Molecular Dynamics Modeling, Thinking Machines Corporation,
Cambridge, MA. April, 1994.
- High Performance Multi-million Particle Molecular Dynamics on the CM-5,
Boston University Center for Computational Science Seminar, November, 1993.
Teaching
I taught the following courses at the University of Chicago:
- Operating Systems. 1999-2005.
- Compilers. 2001.
- Advanced Operating Systems. 2000,2002.
- Scientific Systems Programming. 2003.
- Topics in Operating Systems. 2001.
- Networks and Distributed Systems. 1999, 2004, 2005.
- Internet Programming. 2000.
- Progamming for the World Wide Web. 1999.
- Introduction to Computer Programming (Scheme). 2001.
- Advanced C/C++ programming. 2003.
At the University of Utah, I was a teaching assistant for the following
courses.
- Elementrary Computer Architecture. 1994.
- Digital Logic Design. 1995.
- Computer Organization. 1995.
- Computer Design Laboratory. 1995.
- Advanced Computer Architecture. 1995.
- Advanced Methods in Scientific Computing. 1996.
In Fall 1995, I received the College of Engineering Outstanding
Teaching Assistant Award for my work in the undergraduate hardware
sequence (Architecture, Digital Logic Design, and Computer Organization).
At the University of Oregon, I taught courses in college algebra, analytic geometry (pre-calculus), and calculus.
Conference Tutorials and Short Courses
I have occasionally given tutorials at conferences or by invitation. The following list includes some of these
short courses:
- "A Curious Course on Coroutines and Concurrency", at PyCon'09, Chicago, Illinois. March 25, 2009.
- "Generator Tricks for Systems Programmers", at PyCon'08, Chicago, Illinois. March 13, 2008.
- "SWIG Master Class", at PyCon'08, Chicago, Illinois. March 13, 2008.
- "Python in Action", at USENIX LISA'07, Dallas, Texas. November 16, 2007.
- "A Short Course on Python and Scientific Software", at
Katholieke Universiteit Leuven, Belgium. January 21, 2002.
- "Introduction to Python". Half-day tutorial at the O'Reilly Open Source Conference. Monterey, CA. July, 2000.
- "Advanced Python Programming". Half-day tutorial at the O'Reilly Open Source Conference. Monterey, CA. July, 2000.
- "Tcl Extension Building and SWIG". Half-day tutorial at the 2000 Usenix Tcl/Tk Conference,
Austin, Texas. February, 2000.
- "Tcl Extension Building". Half-day tutorial at the 1998 Usenix Tcl/Tk Conference, San Diego,
California. September, 1999. With Gerald Lester.
- "Integrating C/C++ and Python with SWIG". Half-day tutorial at the 7th International
Python Conference, Houston, Texas. November, 1998.
- "Integrating C/C++ and Python with SWIG". Half-day tutorial at the 6th International
Python Conference, San Jose, California. October 14, 1997. Co-sponsored by USENIX and CNRI.
Service and Recognition
Editor:
- With Paul Dubois, I co-edited the "Scientific Programming" column in IEEE
Computing in Science and Engineering (CiSE). (2002-2003).
Referee for:
- International Python Conference (1997, 1998, 1999, 2000, 2001)
- USENIX Tcl/Tk Workshop (1997, 1998, 1999, 2000)
- IEEE Computation in Science and Engineering
- Computers in Physics.
- 1998 Pacific Symposium on Biocomputing.
- 1996 International Parallel Processing Symposium.
- Supercomputing 95.
Conferences
- Program committee, USENIX'03 FREENIX conference, 2003.
- Tools track chair, 10th International Python Conference, 2002.
- Python track chair, O'Reilly Open Source Software Convention, July, 2001.
- Program committee, 9th International Python Conference, March, 2001.
- Program committee, O'Reilly Open Source Conference, July, 2000.
- Program chair, 8th International Python Conference, January, 2000.
- Program committee, 2000 USENIX Tcl/Tk Workshop, February, 2000.
- Program committee, 1998 USENIX Tcl/Tk Workshop, September 1998.
- Program committee, 6th International Python Conference, October, 1997.
- Program committee, 1997 USENIX Tcl/Tk Workshop, July 1997.
- Mini-symposium on Interactive Supercomputing Applications. 8th SIAM Conference on Parallel Processing for Scientific Computing, March 1997, Minneapolis, MN.
Book Reviewing
- Technical reviewer for "Tcl/Tk Tools" published by O'Reilly & Associates (1997).
Honors and Awards
- Best paper. 9th International Python Conference (2001).
- 1998 IEEE Gordon Bell Prize (Runner-up in price-performance category).
- University of Utah Graduate Research Fellowship, 1997-1998.
- College of Engineering Teaching Assistant Award, 1995.
- 1993 IEEE Gordon Bell Prize (Runner-up in performance category).
- William Lowell Putnam Mathematics Competition (Highest score in Colorado), 1989.
Miscellaneous
Expert Witness
- PRG-Schultz International, Inc. v. Kirix Corp.,(No. 03 C 1867), Northern District of Illinois (2003).
On behalf of Kirix Corporation, I provided expert testimony in a case
of alleged copyright infringement, trade secret misappropriation, and
breach of contract regarding two accounts payable auditing software
applications. I conducted a detailed analysis and wrote a report that
examined similarity of source code, software architecture, algorithms,
and software development logs. I also conducted a literature search
of computer science research related to the algorithms and techniques
used by both programs. I defended my work under oath in a pre-trial
deposition that led to dismissal of copyright infringement in summary judgment.
Other elements of the case were subsequently settled out of court.
- Touchcom, Inc. v. Gilbarco, Inc. (No. 2:03-cv-00329-TJW), Eastern District of Texas.
On behalf on Touchcom, Inc., I conducted a software analysis and
technical document review related to a patent infringement lawsuit.
As part of my analysis, I uncovered several thousand pages of
functional specifications, design documents, and electronic schematics
not disclosed by the defendant. I also gave a deposition related to
technical definitions in patent claim construction. The case was
settled out of court.
- Touchcom, Inc. v. Dresser, Inc. (No. 2:04-cv-00246-TJW), Eastern District of Texas.
This work was a continuation of my work on the Touchcom patent
infringement lawsuit. I performed forensics and conducted a
large-scale software analysis of more than 1 terabyte of supplied
source code. The case was dismissed in favor of Dresser.
- Alcohol Monitoring Systems, Inc. v. Actsoft, Inc. (No. 1:07-cv-02261-WYD-MJW), District of Colorado.
On behalf of Actsoft, Inc., I conducted a software analysis related to
a patent infringement lawsuit. My work involved analyzing schematics and
firmware running on a embedded microcontroller. I wrote an expert report and gave a deposition.
The case was dismissed on summary judgment in favor of Actsoft, Inc.
References
Available upon reference.