Interesting GUI design and development contract work.
Java, JDK1.0 - JDK1.5, AWT, IFC, JFC, Swing, RMI, Threads.
X Library, Xt, Motif, OpenLook, XView, SunView.
Unix, HPUX, Xenix, SunOS, C++, C, Pascal, HTML.
Windows, MFC, Visual C++, OLE, OCX.
Object-Oriented Programming, Graphics, Computer Vision, Image Processing.
Opsware Inc.
Sunnyvale, CA
Position: Consultant
(3/07-6/07)
- Helped develop a small part of the GUIs for their SAS (Server Automation System) product. The SAS application is used to manage software and operating systems on large numbers of distributed remote devices. Work was done using Java, Swing, JGoodies, and JIDE widgets.
A Privately Held Trading Company
Beverly Hills, CA
Position: Consultant
(11/04-5/06)
- Rapidly prototyped and developed many different highly customized GUIs for use by the company's traders to view and control proprietary trading strategies. Work was done using Java and Swing.
- Wrote a set of GUI components and layout managers with unique resizing behavior that allowed the same GUI to work on a tiny PDA screen or a huge plasma screen.
- Wrote a completely customizable trading GUI that allowed the user to create a GUI by adding, removing, and customizing individual components almost like a generic GUI builder works.
- Wrote a tablet computer based GUI that replaced traditional "pitcards". This GUI is now used by the company's traders on the floor of the New York Mercantile Exchange.
Tapestry
Position: Consultant
(7/04-8/04) (small project)
- Wrote PHP modules to do SEO (Search Engine Optimization) of web pages on the Developers.net website. The modules were written in PHP and used the Drupal platform and content management system. The SEO modules allowed the editing and dynamic insertion of SEO text to be separated from the administrative tasks of creating and maintaining the Developers.net website.
ePocrates
San Mateo, CA
Position: Consultant
(12/02) (small project)
- Helped design a web version of their Palm based RxPro application. "RxPro" is used by doctors to choose drugs for their patients based on factors such as formulary, interactions, price, and dosing.
AltoWeb
Palo Alto, CA
Position: Consultant
(10/01-2/02)
(11/00-4/01)
- Wrote a Swing application that manages application server property/configuration files for WebLogic, JBoss, and the AltoServer EJBs. Work involved writing GUI utilities to simplify development and using JDOM to manipulate XML files. Used Ant for the build system.
- Reviewed current AltoStudio GUI for JSP page editing, gathered feedback, and wrote documents and GUI mockups for AltoStudio 2.5. (AltoStudio is an IDE for creating J2EE web applications.)
- Documented design of AltoStudio 3.0. Created GUI mockups for design and use-case documents.
Lutris Technologies (Internet Consulting)
Santa Cruz, CA
Position: Software Engineer, Consultant
(12/99-4/00)
(9/98-9/99)
- Helped design and develop two web applications/applets for doing network monitoring and management for Manage.com and Peakstone. Wrote highly customized, very graphical, applet control panels for both web applications using AWT. Wrote a server side graphing package based on the KLG toolkit.
- Helped design and develop a Java application for Kinko's called ScanToWeb that lets their branches scan in customer photographs and host them on the web. Work was done using AWT on Apple computers.
- Helped design and develop a Java application for Kinko's called PerfectBind that lets their branches bind paperback books. The application used a simple animation to help the Kinko's worker visualize how the customer's document would be scaled to fit the available paper and cover sizes using different printing techniques. Work was done using AWT on Apple computers.
- Designed and helped develop a Java GUI for AmplifyNet's iSurfRanger bandwidth management product. The GUI was based on JDK1.2 and JFC/Swing.
- Designed and helped develop a Java program to monitor Kinko's branch orders submitted via email. The highly configurable system nagged branches at different intervals about unread email using a voice mail system. Almost Orwellian.
eMedius
Saratoga/Capitola, CA
Position: Consultant (part time)
(10/98-12/99)
- Wrote the technical portion of the company's business plan.
- Helped the two non-technical founders pitch the idea to venture capitalists. We got eMedius its first two million dollars of funding, and got eMedius accepted into Garage.com.
Hewlett Packard NetMetrix Division
Palo Alto, CA
Position: Consultant
(6/97-6/98)
- Developed a Java graphing package used to display network metrics. The graphing package was based on KLG's JClass Chart toolkit, JDK1.1, and JFC/Swing.
- Developed a scripting test bed for regression testing of the graphing package within different browser and JDK environments. Test bed could be run as a standalone application or as an applet that used RMI.
- Investigated and wrote test code for Java based client/server communication using Serialization, RMI, Sockets, and JNI.
- Ported a Motif graphing library to Java and made it capable of displaying Japanese characters.
Otsuka Pharmaceuticals
Palo Alto, CA
Position: Consultant
(8/97) (small project)
- Advised Oncology Product Development group on website and collaborative document issues.
- Developed part of Oncology Product Development's website which included monthly reports, project schedules, team member and study site contact lists, useful bookmarks, employee photos, and site maps.
Xmedia Corporation
Cupertino, CA
Position: Consultant
(8/97) (small project)
- Advised software developers on how to internationalize/localize a Microsoft Windows application under Windows95/NT.
Delivering The Goods
Santa Clara, CA
Position: Software Engineer
(11/96-5/97)
- Helped design and develop an Internet based supply chain application. Designed the GUI and developed it using Java, Netscape's IFC
(Internet FoundationClass) toolkit, and Microline's View Toolkit.- The entire application made heavy use of threads and Tibco's Rendezvous for asynchronous communication using publish/subscribe techniques.
Network General
Menlo Park, CA
Position: Consultant
(6/96-8/96)
- Developed a prototype GUI for an application that will let Internet Service Providers and Web Content Providers identify and diagnose service problems on the Internet. The GUI was written entirely in Java using JDK1.0.2, the Java AWT, Visualize Toolkit, and Microline Component Toolkit. Work was done offsite using the Internet and a laptop with a Ricochet radio modem. ( Very 90's, yes? )
Hewlett Packard Scientific Instruments Division
Palo Alto, CA
Position: Consultant
(2/95-7/96)
- Wrote a thread manager and thread tester to debug Java threads and synchronized methods using JDK1.0 and JDK1.0.1.
- Helped develop an OCX (OLE Control) which would allow Visual Basic applications to display and control a "LIMS" application used for environmental and drug testing. The OCX was a complete MFC application on its own, and had a Document/Frame/View architecture. The entire product consisted of a set of Visual Basic panels as the primary GUI, and the "invisible at runtime" OCXs used by the Visual Basic application. Most of the development I did was on WindowsNT 3.51 and 4.0, with a little under Windows 3.1 and Windows95.
- Prototyped an RPC interface to a UNIX/Oracle/Motif application so that it could be controlled by Microsoft Windows applications.
Hewlett Packard Scientific Instruments Division
Palo Alto, CA
Position: Consultant
(11/91-8/94)
- Designed and developed a Motif based object-oriented GUI toolkit in C++ for use by other engineers to ease GUI development and enforce a consistent look and feel over many products. The toolkit contained standard field classes such as integers, floats, strings, toggle buttons, menus, lists, and tables. It also contained various panel classes in which the engineer would put these fields. The panels contained error/status and help lines, and a set of standard buttons with default actions. The field objects had error checking callbacks built-in, and would automatically display error messages when the user tried to enter or "OK" an illegal value. Each field had a customizable help message that was displayed as the field got the focus or as the user moved the mouse over the field. The toolkit has some really slick features.
- Helped design, prototype, and develop a large Motif and Oracle based object-oriented application to manage drug stability testing using my toolkit in C++. Designed and developed several high level GUI objects that were reused throughout the application.
- Designed and developed a standalone panel object which non-X Window processes could display and communicate with using pipes.
- Wrote a set of shell scripts and macro files used to automate regression testing for a Basic like language command processor.
Seagull Technology Inc.
Sunnyvale, CA
Position: Consultant
(11/95) (small project)
(11/93-11/94)
- Designed and developed a GUI and a library of Motif/C++ and database objects used to create/edit an airline waypoint and route database.
- Wrote a crude prototype object-oriented database to be used for demonstrating the GUI to the FAA.
- Restructured existing ground to airplane GUI code to make it more object-oriented, and changed panel layout to make it more user-friendly.
- Designed and developed a prototype GUI for a multi-state real estate database conversion program.
- Helped Seagull engineer track down and fix a memory corruption bug and a memory leak in their software.
Sun Microsystems Software Engineering Tools Division
Mountain View, CA
Position: Consultant and Employee
(6/90-11/91)
- Designed and developed a crude object-oriented prototype of a Data Inspector in C++ and XView. (A Data Inspector is a GUI used for looking at data and its relationships with other data. e.g. A structure that is part of a linked list.)
- Wrote requirements documents for the debugger's GUI and the language it would use to communicate with the underlying debugger. Led weekly meetings to gather input and reach consensus on these documents.
- Helped design and develop a small part of the graphical user interface for SPARCworks2.0's C, C++, and FORTRAN debugger "dbxtool".
- Tested, and wrote small multi-tasking Ada test programs for, the SPARCworks Ada programming environment's debugger.
Hewlett Packard Scientific Instruments Division
Palo Alto, CA
Position: Consultant
(8/89-6/90)
- Ported from X10 to X11 and debugged: a large plotting package used for chemical analysis, and HP's Xray widget/gadget set, the Xray GUI builder.
- Wrote window manager communication routines so panels would work with the window manager intelligently.
- Developed a tool for monitoring and debugging memory allocation.
Crucible - Sun Microsystems, Visual Engineering
Santa Cruz, CA
Position: Consultant
(4/89-8/89)
- Helped develop the OpenLook window manager for MIT's X11/R4 release. The OpenLook window manager is ICCCM compliant. Developed under X11/NeWS.
- Converted Prior X11/GKS to work on X11/NeWS.
- Ported VE's Visual:GKS from SunWindows to SunView.
The Santa Cruz Operation (SCO)
Santa Cruz, CA
Position: Software Engineer/Project Lead
(5/88-4/89)
- Oversaw engineering development and support of SCO's X11 product, Xsight. (Xsight is the X server of Open Desktop.)
- Oversaw integration of Locus's X11 server development with SCO's TCP/IP and Xenix to make Xsight.
- Responsible for tracking Xenix kernel bug fixes and TCP/IP bugfixes that affected Xsight, and for tracking bugfixes for Xsight itself.
- Supported Xsight to OEMs, key alpha sites, and internally.
- Developed a set of tutorial programs to teach Xlibrary programming.
- Gave classes and tutorials on the X Window System, Xlibrary programming, and programming using toolkits and widgets.
- Ported the Dec widgets and HP widgets, and wrote example programs using these widgets and the HP window manager. (OSF's Motif is a combination of these)
- Worked trade shows to set up software for SCO and its OEMs, demonstrated Xsight to customers, and baby-sat alpha software.
- Assisted QA with testing Xsight.
- Assisted Documentation group with release notes.
- Ported Sun NeWS to Xenix's event driven mouse and keyboard driver.
- Worked on a VGA driver for CGI using shared memory and semaphores.
Electromagnetic System Laboratories (ESL)
Sunnyvale, CA
Position: Research Engineer/Scientist
(1/86-4/88)
- Researched and developed software for several projects in artificial intelligence, computer vision, graphics, and signal interpretation. Work was done under VMS and Unix.
- Developed fuzzy logic software to locate, extract, and describe features in photographs taken from aerospace vehicles.
- Developed software to do signal segmentation, description, and identification using computer vision methods and linear and nonlinear neural net techniques.
- Developed a plotting package and its GUI on Sun workstations using SunWindows, SunView, and an Ingress relational database.
- Developed software to do Kalman filtering of navigational data from devices such as GPS (Global Positioning System), INS (Inertial Navigation System), and LORAN (LOng-RAnge Navigation).
Arizona State University
B.S. Computer Science 1985
Emphasis in artificial intelligence, computer vision, and natural language processing.
United States Citizen, United Kingdom Citizen, New Zealand Residence/Work Permit.
Commercial Pilot: Single-engine Land (Complex, High Performance, Tailwheel, Tow).
Certified Flight Instructor: Glider.
Have held government clearances.