Monte Sereno, CA 95030
Senior software engineer experienced in design and implementation
of security, desktop applications, user interfaces, graphics, firmware and algorithms.
[Sr. Staff Software Engineer] 2005-2016. Developed electronic design automation software for high reliability and high security applications.
[Software Engineer] 2000-2001 Developed prototypes and technology demonstrations
of multi-modal user interfaces incorporating advanced user interface
technologies such as speech recognition.
Lights On Software [Founder] Co-founded a company to automate
residential lighting design. Designed and implemented original
algorithms for light placement and circuit layout using computational
geometry and combinatorial search. Created a parametric symbol library.
Created prototypes using Microsoft Visual Basic for Applications,
Microsoft Visual C++, MFC, and Scheme.
[Member of Technical Staff] 1989-1992 Developed and maintained software,
documentation, and artwork for SGI's end user environment with C++, GL,
IRIX, X11, and Motif.
PARC (formerly Xerox PARC)
[Research Programmer] 1987-1989 Built software prototypes in InterlispD/Loops and
Common Lisp/CLOS for a theory of graphics editing.
Learning Research and
Development Center [Research Programmer] 1984-1987 Invented
and patented a technique for creating highly custom direct
manipulation graphical user interfaces using direct manipulation. The
research was so successful that it was spun out and commercialized.
Integrated a pattern matcher for diagnosing student responses and
developed flicker-free animation primitives. Work was performed in the
Xerox Interlisp-D/Loops programming environment.
Pictographer's Shop [Founder] 1996-present. Founded sole
proprietorship to offer advanced software development and
interdisciplinary design targeting small companies.
Designed and implemented embedded Linux configuration user interface
using libglade and GTK. Collaborated with international developers.
GeneEd, Inc. [Contract] Developed educational simulations in Flash MX. Collaborative work was performed on a tight deadline and required quick assimilation of relevant biotechnology and in-house software framework.
In previous contracts, evaluated legacy expert system and database
code, researched patents, and recommended future directions. Also
designed illustrations and online documentation, designed corporate
identity including website and stationery, and designed user interfaces.
Corp. [Contract] Designed and implemented an XML-based
interpreter used by artists for defining animation and behavior in a
distributed interactive 3D environment using Microsoft Visual C++.
Accommodated changing requirements with flexible yet simple language
Built a variety of home automation projects using the Arduino libraries primarily on Teensy 3 develoment boards from PJRC. Projects used photodiodes, capacitive touch sensing, audio generation, addressable LED strips, electromechanical relays, solid state relays, voltage regulators, discrete transistors, I2C interfaces, SPI interfaces, small displays, and voltage level shifting, etc. Frequent contributor to PJRC discussion forum under the user name pictographer.
Installed and maintain OpenWrt on several wireless routers, all but one of which are clients to the primary wireless router. Each is connected to a Teensy to provide a physical interface. All communicate wirelessly via WPA2 and SSH.
Lisp, and Scheme
Eclipse, Microsoft Visual Studio, Emacs, MetroWerks Codewarrior
Apache HTTP server, Macromedia Flash
SQL, ODBC, JDBC, MySQL, DB2, and Oracle
Microsoft Windows 7, Microsoft Windows XP, Microsoft Windows 2000, Microsoft Windows 98,
MacOS, Red Hat Linux, OpenWrt, IRIX, and BSD Unix
User interfaces, skins, icons, splash screens, logos, logotype,
technical illustration, diagrams, document layout, editorial
illustration, architectural CAD
Adobe Photoshop, Corel Painter, Adobe Illustrator, Adobe GoLive,
Macromedia Dreamweaver, Macromedia Flash, DHTML, CSS, Adobe LiveMotion,
Corel Bryce, Adobe Acrobat, Adobe InDesign, Adobe FrameMaker, Adobe
PageMaker, Microsoft PowerPoint, Microsoft Word, QuarkXPress, Autodesk
Patent 8,522,091 Prioritized detection of memory corruption
Explained how to use Xilinx FPGA configuration scanning to accelerate the detection of memory upsets for critical functions and explained how to identify the errant module in a dual modular redundancy scheme.
Patent 8,065,644 Reducing susceptibility of circuit designs to single event upsets
Described how to automate choices among SEU mitigation methods.
Patent 8,065,642 Isolation verification for implementing modular redundancy within programmable integrated circuits
Described how the Xilinx Isolation Verification Tool detects isolation violations through routing analysis or through geometric analysis.
Patent 7,930,662 Methods for automatically generating fault mitigation strategies for electronic system designs
Described how to apply fault mitigation strategies with a computer language compilation approach.
Patent 6,161,121 Generic transfer of exclusive rights
Showed that the escrow agent does not need full access to good to be transferred. Work performed while consulting for Agorics, Inc.
Patent 5,041,992 Interactive method of developing software interfaces
Designed and implemented an editor for direct manipulation user interfaces. The editor itself had a direct manipulation interface. Work performed at the Learning Research and Development Center.
Carnegie Mellon Alumni Association
Silicon Valley Patterns Group
Domain-Driven Design moderator
Carnegie Mellon University BS
Math/Computer Science, 1987.