Bachelor of Science in Computer Science1, California Institute of Technology, 1996.
Tech lead of Google Local until mid-2005. I now work on web search ranking algorithms.
Developed computerized order execution strategies for domestic and international stock markets. Reduced transaction costs by studying market microstructure and developing real-time adaptive automated trading agents.
XYZFind was a startup2 which sold XML software. I led the design of XYZFind's flagship "native XML" database3 and personally wrote the index engine and query processor. I saw the company through two rounds of funding, met with major customers, drove corporate strategy (poorly), attended trade shows, cleaned the refrigerator4, and represented XYZFind on the W3C Advisory Council.
XYZFind server used cross-platform C++ and Java for the client SDK, including servlets for XSLT transformations and application server integration.
XYZFind was eventually acquired by Interwoven.
The Annotated Schema Runtime (ASR) was a database and query processor6 for semi-structured graph data using shared memory7 to maintain a single coherent database image. The ASR was the core of Semantic Platform technology; I designed, implemented and maintained the ASR and its interfaces for several years.
I designed and implemented the user interface, dialogue manager, and database interface for "Insight"8, a prototype telephone interface to Microsoft's Sidewalk9 city information site using TAPI and SAPI10. Users could navigate with voice or touch tones to search movie showtimes and restaurant listings.
Semantic Platform work included several other projects: improvements11 to a Rete12-based expert system with Prolog-like goal-directed search capabilities, an interface to the Microsoft MediaView13 content indexer to spot database entities appearing as words or phrases embedded in a natural language query14, real-time visualization15 for a multimodal (speech, typed text, and GUI) user interface, and a restaurant recommendation service for Sidewalk using collaborative filtering.
I developed software in C to translate and encode commands16 to control the Cassini spacecraft currently en route to Saturn.
I modified the recalculation engine17 to operate in parallel18 on multiprocessor PCs.
ORA develops, among other things, automated verification and formal analysis tools for Ada. I worked on the Penelope syntax-directed program proof editor19, and I applied the AdaWise analysis framework to a corpus of public domain code and examined the results to see how many of the warnings were real bugs20.
In addition to normal administrative duties21, my work included the development of systems-level networking components, including software distribution systems22 and load-balanced remote login services23.
I developed curriculum, course materials, and support software for the Caltech CS 1, 2, and 3 courses24. I wrote easy-to-use graphics library software25 and a simulated annealing section scheduling system26. I also led section, graded papers, and managed the details of course operation.
Daniel Egnor and Robert Lord (2000). Structured Information Retrieval using XML. In Working Notes of the ACM SIGIR Workshop on XML and Information Retrieval, Athens, Greece.
Daniel Egnor (2000). Iocaine Powder. ICGA Journal, Vol. 23, No. 1.
Cheryl Barbasch and Dan Egnor (1994). Always one more bug: applying AdaWise to improve Ada code. In Proceedings of the 1994 conference on TRI-Ada '94, Baltimore, MD.
I wrote and maintain Gale27, an open source instant messaging system. Other free software projects of mine include Airhook, Liboop, and some XML processing tools.
I am the sole proprietor of Sweetcode, a web site that reports interesting free software. Sweetcode receives thousands of visitors daily; media reports include NTK, memepool, the Linux Weekly News, and others.
This entry won the 2002 Google Programming Contest.
I programmed a PDA with a GPS card to be a Pac-Man game. The player controls Pac-Man by running around a field (or parking lot or whatever); the game board (with the player's current position) is displayed on the screen.
I maintained the Node Map, a simple XML-based GIS which uses public mapping engines to display the location of community 802.11b wireless nodes in Seattle.
I built a microprocessor-controlled laser projection system28 including a hardware-accelerated vector graphics processor allowing the user to play Tetris on any opaque surface (building walls, overpasses, clouds, ...).