(Also available in Word,
PDF, and OpenDocument
Format.)
Contact info:
978-256-4110
jstracke@thibault.org
http://www.thibault.org/
Street address available on request.
Objective
My main motivation is solving hard problems. To this end,
I am looking for
a position of responsibility, using my strengths in system-level
network programming and/or compiler design.
Technical Summary
Languages
C/C++, Java, Perl, Python, SQL, Lisp, Standard ML, Erlang, Ruby.
Operating Systems
Various Unix: Linux, Solaris, AIX, HP-UX, IRIX, SunOS, Digital/Compaq Tru64.
Disciplines
Software architecture, algorithm design, concurrent programming,
Unix systems programming, network programming, protocol design,
object-oriented design, compiler design, Web-based applications,
performance analysis.
Technologies
TCP/IP, sockets, POSIX threads, software transactional memory, ANTLR, Bison/Yacc, Flex/Lex, Apache, XML, HTML, CSS, Postgresql, gcc, gdb, Oracle 9, JUnit, CPPUnit.
Education
B.A. in Mathematics, Northwestern University, 1986-90. Graduated with departmental honors.
One year of mathematics graduate school at the University of Chicago, 1990-91.
Currently enrolled at the University of Massachusetts, Lowell, in
the master's program in computer science (night school). Coursework
has included programming language design, compiler construction,
algorithms, machine learning, and operating systems. I have
completed my master's thesis, on a novel design for a microkernel,
for which I have written an IPv6 stack from scratch.
Anticipated graduation date: December 2008.
Employment history
Famology, December 2007 to
present: Chief Architect
Famology is a Web-based startup, building an application to enable
families to keep in touch and collect their family history.
- I have
built the application by myself.
- Built
in Ruby on Rails, using AJAX, XHTML, SVG,
Jabber, and some
advanced JavaScript (including an expert system that runs in the
browser).
- Unfortunately, as of May 2008, we still
don't have funding, so I am looking for another job.
Akamai, January to November 2007: Senior Software Engineer
Akamai operates the world's largest content delivery network.
- I worked in the Nameservers group, which maintains and develops the specialized DNS servers which direct each user to the optimal Web server.
- My primary task was improving the performance of the DNS server. Over about 8 months, I increased throughput from 25,000 queries per second to 60,000. This was done mainly by adding support for multiple query threads, allowing us to take advantage of multicore CPUs.
- Work was done in C++, using POSIX threads and x86 atomic operations.
- Also prototyped a DNS server in Erlang, which is supposed to scale well to multiple CPUs. Determined that, though that may be so, it imposed too much overhead: the best I was able to achieve was about 20,000 queries per second.
- Implemented software transactional memory in C++.
Endeca, August 2004 to November 2006: Principal Software Engineer
Endeca sells an enterprise information access platform to help people find, analyze, and understand their information in novel ways.
- I worked in the Engines group within Development, maintaining and developing the search engine.
- Enhanced the data store to keep certain large data structures offline, to improve scalability.
- Worked on the design and implementation of XQuery support, including an optimization strategy to enable queries to be answered via the engine's data index, instead of by iterating.
- Prototyped the new Conceptual Search feature.
- Enhanced the dictionary system to understand German compound words.
- Work was done in C++, with extensive unit testing using CPPUnit.
Centive, October 2001 to July 2004: Principal Software Engineer
Centive sold an enterprise platform for calculating complex commission plans for companies with millions of transactions per month.
- I was the principal compiler developer.
- Architected and implemented a compiler to translate the compensation plans into Oracle PL/SQL and Microsoft T-SQL.
- Focused on improving the performance, both of the compiler itself and of the generated SQL.
- The result is around 100,000 times faster than Centive's previous version.
- Worked closely with the professional services staff, to make sure that the compiler met their needs.
- Compiler was written in Java, on Windows; the design was heavily object-oriented, with explicit reliance on design patterns.
eCal Corp., January 1999 to September 2001: Chief Scientist
eCal made Web-based calendaring software: a packaged server for the enterprise space, a hosted service for the consumer space.
- Architected new products.
- Researched new technologies to keep ahead of the competition.
- Architected and implemented a Web application framework, in object-oriented Perl on Linux and Solaris, for the enterprise server.
- Worked with the application development team to make sure the framework met their needs; acted as technical lead to guide them in using the framework sensibly.
- Sped up the framework to meet (and exceed) the performance budget of 140ms per page.
- Represented eCal in the IETF.
- Researched instant messaging and presence, when eCal wanted to diversify.
- Created a prototype IM protocol, and implemented a Java object framework for it, on Linux.
- Wrote an Apache module in C++, on Linux, to speed up the hosted service; implemented security features such as MD-5 and HTTP Digest Authentication.
Netscape (now AOL), June 1996 to January 1999: Principal Software Engineer
I came to Netscape as part of the acquisition of InSoft (see below).
- Integrated InSoft's conferencing architecture, which I had developed, with the H.323 standard. (Work done in object-oriented C, on multiple versions of Unix.)
- Developed true push features for Netcaster 2.0; this work received two patents. (Work done in Java and JavaScript, on multiple versions of Unix.)
- Developed an object-oriented DHTML widget library in JavaScript, for use with Netcaster.
- Represented Netscape in the IETF's WebDAV working group.
- Architected a CRM product, in Java, on multiple operating systems.
InSoft (now Netscape/AOL), October 1993 to June 1996: Senior Software Engineer
InSoft sold enterprise videoconferencing and streaming media systems.
- Architected and implemented the OpenDVE networking architecture used in InSoft's Communique! videoconferencing program.
- Wrote various Unix daemons to provide OpenDVE services and route data through the conference's virtual network.
- OpenDVE is notable because it was a peer-to-peer system, some years before peer-to-peer was popularized. Three patents were issued on this work.
- Created the prototype of the Netscape Media Server.
- Work was done in C on seven different Unix platforms (Linux, Solaris, AIX, HP-UX, IRIX, SunOS, Digital/Compaq Tru64), under X Windows.
A&T is a naval contractor.
- Developed a Windows 3.1 application, in C++, for editing descriptions of underwater sound sources, for use in sonar training simulators.
- Held a Secret clearance.
The NSCF sells computer-aided instruction software for algebra.
- Created an X Windows front-end for the student database, on Unix, in a proprietary language.