Don Bennett
1857 Emerson St. • Palo Alto, CA 94301
(cell) 650 799 5871 (fax) 206 350 2876
dpb@pobox.com
Summary
25 years of software development experience, ranging from kernel device drivers and window system frame-buffer modules to desktop publishing software. The past 10 years have focused on the development of a turn-key enterprise search engine with a builtin webserver to provide the user interface.
Verity / Autonomy 9/05 - Present: Principal Software Engineer
Ultraseek Server Development
- Implemented NTLM2 protocol for the Ultraseek spider;
Designed & Implemented techniques for doing hit-checking of documents protected with NTLM;
Modified UltraSpider to work with Autonomy IDOL;
- Modified URL database to use SQL and SQLite;
- Modified Ultraseek use Autonomy IDOL for search indexes;
- Exposed interface for customizing the admin UI
Hewlett-Packard 3/04 - 8/05: Contractor
Ultraseek Server Consulting
- Created a framework for modular creation of Ultraseek patches
Created Ultraseek components for manipulating document quality, URL alias management, URL editing,
URL filtering, document tagging, and revisit control.- Created analysis tools to monitor site status while building an index and report on the status of a known set of URLs;
- Created a manual describing Ultaseek modules and analysis tools;
- Created patches to work around Ultraseek bugs as necessary.
Verity 8/03 - 2/04: Consulting Engineer
Ultraseek Server Consulting
- Helped customer create a document tagging strategy;
- Trained customer on general search principles behind Ultraseek Server;
- Extended Ultraseek to use builtin scheduled activities module to launch custom code;
- Created custom servlet for customer that allowed the binding of qp variables on a per collection basis;
- Repaired the XPA Security Module class hierarchy so that only results from protected collections need to be access checked;
- Diagnosed Netegrity configuration error that prevented the correct operation of the XPA Security Module;
Infoseek / Disney / Inktomi 3/97 - 5/02: Senior Staff Engineer
XPA/XML Toolkit Integration
- Developed Java and Python client libraries for the XML Toolkit wire protocol;
- Added Java code to XPA to allow the XML Toolkit to be used as a search back-end;
Ultraseek Server Development
- Part of a 3-man team that created the Ultraseek Server Enterprise Search product from Infoseek web search core;
- Extended the search core to allow boolean operators on the full termlist for a set of search terms;
- Designed and implemented indexers for Databases and Exchange Public Folders;
- Designed and implemented triggers and curfews for administrative functions;
- Ported Ultraseek to Windows NT, Linux, and HP-UX;
- created simple installers for all platforms.
- Created Java libraries to connect the XPA Search toolkit to the Inktomi XML Search Toolkit.
- Created a common build environment across windows and unix platforms using GNU Make.
- Responsible for keeping the Python core, document filters, and other third-party libraries up-to-date.
- Delivered technical presentations at User Group meetings, developed customized code for specialized
- customer requirements, performed back-stop technical support.
- Performed most of the release engineering, managed the CVS respository, Generated customer usage statistics.
- Administered the product download site and license key generator.
RadMedia 11/95 - 1/97: Software Engineer
Powermedia Development
PowerMedia was a cross-platform PowerPoint-like software package.
Designed & implemented HTML layout code to maintain the look of the user presentation in HTML.
Finished integration of the public-domain ImageMagik library for raster image import.
- Modified the X version of the Galaxy cross-platform toolkit to expose an intercessory API so that Galaxy programs could run in a non-default X visual.
Fixed massive refresh problems in bullet & table code.
- Used Purify to identify memory leaks and access errors.
Silicon Graphics 11/92 - 10/95: Member Technical Staff
Video Library
- The Video Library was a tool to configure video data paths through a Silicon Graphics workstation.
- Member of team that designed and implemented an API for programming SGI video devices.
- System included device drivers, a daemon, network transport, C library, simple applications, a control panel, demo code, and diagnostics.
This software is used to control the IndyCam on each Indy and the Galileo Video card for the Indy and the Indigo II.
- Wrote simplified API for simple frame input/output.
- Modified device driver to support new video card.
- Made device drivers dynamically loadable, added dynamic assignment of major device numbers.
- Outlined design to replace video daemon with a library.
Frame Technology 3/88 - 10/92: Senior Software Engineer
FrameMaker 1.3 - 4.0
FrameMaker is a high-end desktop publishing package, currently owned by Adobe Systems.
- Added new catalog code, created new document window type.
- Designed engineering dept. framework for using a CVS-based version control system.
Modified RPC port selection code so multiple copies of FrameMaker would not collide on the same RPC port.
Added FrameWriter pull-right menus & functionality.
- Designed and implemented document imaging code.
Extended Motif List and BulletinBoard widgets to fit FrameMaker UI requirements.
Redesigned XtMainLoop() for event redirection, recursion, and keyboard macros.
- Fixed many serious Xt and Motif 1.0 problems.
- Analyzed protocol usage and memory consumption.
- Designed and implemented X11 bitmap scaling code.
Hewlett-Packard Laboratories 3/85 - 2/88: Member Technical Staff
X10/11 Client & Server Window System Development
Merged HP specific server changes into the MIT X11R2 release.
Ported the X11R1 server & clients to HP 9000/s300 systems.
- Added frame-buffer specific enhancements to X10 and X11servers.
- Designed and implemented extension to enable multiple concurrent X10 servers on a single machine.
- Added named pipes as a transport mechnism for X10.
- Designed and prototyped shared-X server.
- Image processing workstation
- Designed and implemented 68k asm. routines to support digital image compositing.
- Implemented UI for scanning, debugged hardware interface.
NMODE Window System
- Designed and implemented lisp-based spreadsheet with lazy evaluation, notes browser.
- Designed and implemented extensions to NMODE window system to allow tiled windows.
Hewlett-Packard DTD/POD 6/81 - 1/85: Member Technical Staff
- Investigated HP-UX port to 80286-based platform.
- Designed and implemented thermal printer driver, escape sequence parser for 8086-based terminal.
- Maintained ROM-debugger and development utilities.
- Designed and implemented terminal test system.
Languages & Systems
- Development expertise on Linux, Solaris, and Win32 platforms
- C, C++, Python, Java, Scheme, Lisp, sh, awk, some Perl
- HTML, CSS, Javascript, CGI, JSP, Servlets
- XML, XPath, XSLT
- GNU Make, Subversion, CVS, RCS, Clearcase
- Ultraseek
- SQL, SQLite, PostgreSQL
- Xen virtualization environment
Unix administration: Apache, Lighttpd, Postfix, Bind, Dovecot, Mailman, MoinMoin, Dokuwiki
Education & Honors
- BSEE/BSCS 1981, Rice University
- Eta Knappa Nu Honor Society
- Tau Beta Pi Honor Society
Professional Organizations
- ACM
Software
Python-mingw - Patches to build win32 Python with mingw compilers;
Recreation
- Paris-Brest-Paris ancien 2003, 2007