Alternate Formats:
[pdf]
[txt]
[ps]
Summary of Qualifications
An energetic and motivated Software Engineer with 9+ years experience
developing UNIX/Linux software systems. Specific interests include C++/Java
programming, Object Oriented API/framework design, TCP/IP client/server
solutions, and portable software design. A dynamic individual with leadership
abilities, excellent communication skills, and a strong work ethic.
Technical Skills:
Languages: C/C++, Python,
Java (JDOM, AWT, Swing, Servlets, Applets), PHP, SQL, UNIX Shell,
HTML/XHTML, XML and DOM, Javascript, m4, LATEX, TCL, Common LISP,
Modula-2, VAX Assembly.
Operating Systems: Linux (Gentoo, Red Hat, Fedora), Solaris,
HPUX, IRIX, Windows (9x/2000 and CygWin), VAX VMS.
Tools and APIs: TCP/IP, BSD sockets, POSIX and pthreads,
OpenSSL, Apache, MySQL, Sqlite, ACE Toolkit, SOAP, GNU Autoconf, CGI, CVS,
CORBA, Oracle Call Interface, make, HTTP protocol, Xerces C++, Qt/PyQt, Gtk+/PyGtk,
Cyrus-SASL, SSH/OpenSSH, Doxygen, GeoStan.
Professional Experience
| Jabber Inc. |
Nov. 2002 - Present |
| Senior Software Engineer |
Denver, CO |
A senior member of the Server Product Group working on the Jabber/XMPP router and
server-side components.
| Rand McNally |
Feb. 2000 - May 2002 |
| Senior Software Engineer |
Englewood, CO |
A lead engineer on a new development team tasked with creating a reusable C++
toolkit and network back-end for all of Rand McNally's Core Services:
digital map generation, route computation, geocoding, and spatial searching.
The toolkit powers
the Rand McNally web site
, and serves as a fundamental component to all
future software projects. Specific responsibilities included the toolkit's
geocoding, networking, and client/server components.
- Designed and implemented object-oriented APIs for network sockets and
streams, IPV4 addresses, and POSIX threads. These libraries are portable
across many different flavors of UNIX.
- Designed and built a multi-threaded network server framework.
Server tasks such as connection establishment, thread management, signal
handling, logging, etc. were handled by the framework, thus allowing
specific network service plug-ins to be created with minimal effort or
knowledge of network programming.
- Created an API for binary class serialization, including the ability
for versioned protocols and backward compatibility.
- Supervised, and participated in, the development of the geocoding
portion of the toolkit, including a US geographic boundary database
using MySQL.
- Designed a set of XML middleware servers that provided HTTP access to
the toolkit's back-end servers.
- Managed the toolkit's software build system using GNU Autoconf and many m4
extensions. The system was highly configurable and made porting to other
platforms/compilers much easier.
| MapQuest |
Jan. 1996 - Jan. 2000 |
| Senior Internet Engineer |
Denver, CO |
A founding engineer. Primary responsibilities were research and development of
products and technologies.
- Ported MapQuest's client/server API from C++ to Java and
used it to create interactive applets/applications which were featured in
Java Report magazine
(Sep. 1996: Vol. 1, No. 4) and rated in the
Jars Top 1%.
- Created HTTP middleware for all of MapQuest's core Internet services,
which evolved into a product called MapQuest Enterprise Services
generating millions of dollars of company revenue. I performed on-site
integration for many customers including Yahoo. [Note: Since the AOL
acquisition of MapQuest, Yahoo has switched mapping vendors.]
- Developed a PQA application for the Palm VII wireless PDA which is shipped
preinstalled on all of Palm's wireless units.
- Prototyped a mappable address book application using Java and Swing.
The key feature was the use network storage, allowing for ubiquitous
read/write access, and data sharing.
- Prototyped the initial version of MapQuest Connect, enabling the
development of the full product version which was sold to thousands of
customers.
| GeoSystems Global Corp. (i.e. MapQuest) |
May 1995 - Sep. 1995 |
| Summer Intern |
Lancaster, PA |
Primary task was the investigation of how Internet technology could be applied
to mapping applications.
- Developed a web application (CGI) allowing map navigation and
dynamic point of interest placement, spawning the creation of the first
MapQuest web site.
| Academic Computing Services |
Sep. 1992 - Dec. 1995 |
| Laboratory Assistant |
Millersville, PA |
- Web master for the Computer Science department
web page.
- Instructed a one hour (two times per week) Internet training class for
university students and faculty. Topics included shell, email,
gopher, and ftp on Vax VMS.
- Basic system administration (Solaris and VAX) tasks and lab support.
Other Contributions
- Developer for Gajim, a Gtk+
Jabber/XMPP client. (2005-Present)
- Author of eyeD3, a Python
module/tool for ID3 tag processing. (2002-Present)
- Manuscript reviewer for the book
"Up to Speed with Swing",
by Steven Gutz; 1998
- Patches to the ACE toolkit regarding Active Object Queues.
Education
Millersville University -- 1991 - 1995
B.S. Computer Science; dual minor in Math and Physics
GPA: 3.53; Major GPA: 3.8; Cum Laude
- Departmental Honors: CSCI 498 (Independent Study Researching Mobile
Robotics and Computer Vision). My partner and I built an autonomous
robot named
MoVeR
and
used it to experiment with motion detection and tracking. Honors were
given for research resulting in an automated method for calibrating
binocular stereo vision systems.
Technical Conferences: Netscape Developer Conference 96; JavaOne 97-99
References are available upon request.
Travis Shirk
2006-01-08