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.
  • Led X software development for X10R4 & X11R2 ports.

  • 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