Stephen A. Revilak
111 Sunnyside Avenue
Arlington, MA 02474
(781) 648-1083
email
Objective
To work on database internals, compilers, operating systems, or HPC;
preferably in C or C++. Your basic low-level, high-performance,
intellectually stimulating software development challenges.
Skills
- Languages
-
Java, Perl, C/C++, sh, SQL, Python, R, HTML, CSS, XML, LaTeX.
- Tools
-
ant,
Apache,
bind,
Cognos BI,
CXF,
Drupal,
emacs,
gcc,
gdb,
git,
junit,
m4,
make,
mysql,
postfix,
rsync,
sendmail,
spring,
SQL Server,
svn,
Sybase IQ,
tomcat.
- Networking & Protocols
-
HTTP, SMTP, DNS, LDAP, firewall configuration (Netscreen/Juniper),
iptables.
- Operating Systems
-
Linux (Redhat, Debian, SuSE), Mac OS X, Windows.
Professional History
KAYAK, Concord, MA - Reverse Engineer
- 2/2004 - Present.
- I started my career at KAYAK by building low-level components for Java
web applications (configuration, logging, error handling, servlet
lifecycle event listeners, and such). I also authored KAYAK's first
build and deployment framework, which scaled by a factor of 30x before
we had to rearchitect it.
- Built a distributed log processing system called "scrub". On a
typical day, scrub performs log processing over 300-400 machines, and
ingests 1.1TB of log data. Why not Hadoop? We needed a log
processing system, Google had barely published their first paper on
Map-Reduce, and Hadoop didn't exist yet. Scrub has worked well and
it's still in active use today. (KAYAK uses Hadoop for data
analytics, but not to produce core business metrics.)
- Architected KAYAK's data warehouse, and the surrounding ETL
processes. This system loads ~ 40 million rows/day into 43 fact
tables. As of last count, our data warehouse contained 18 billion
rows and a couple terabytes of data. I've also learned a lot of
database tuning tricks, to get efficient query execution on large
tables.
- Built a piece of middleware called "Business Broker". Business Broker
(aka "BB") is a Java web service that automates data exchange between
Salesforce.com, Doubleclick, KAYAK's internal ad engine, and our data
warehouse. This automation has significantly improved the efficiency
of KAYAK's commercial team.
- Finally, I've done the usual set of things that you'd expect
employee #9 at a startup company to do: firewall and VPN
configuration, Linux administration, Drupal development, submitting
bug fixes to open-source projects, babysitting httpd, bind,
MySQL, and a variety of different mail delivery subsystems.
- Why is my title "Reverse Engineer"? It's a play on words: I like to
tinker with things to figure out how they work, and I'm a fairly
proficient debugger.
Intuit, Waltham, MA - Software Developer, Release Engineer
- 1/2000 - 2/2004.
-
Designed, implemented, and tested low-level component libraries for
use by business units across Intuit.
-
Established a standard Apache build for use throughout Intuit,
including source modifications to meet specialized business needs.
-
Responsible for administration and configuration of 60+ Solaris
machines in 6 deployment environments.
-
Wrote a collection of tools for harvesting and analysis of application
logfile data. (Gathering business data, operational performance,
state-flow analysis). These tools were used to process 4-6 GB of log
data per day.
-
Served as a member of the development team for QuickBooks Site
Solutions. Wrote APIs for domain registration and domain management.
Managed domain name renewals for 75,000 web sites.
Newbury Sound Inc, Boston, MA - Recording Engineer, Chief Engineer
- 12/1993 - 1/2000.
-
Recorded, mixed, and/or mastered several hundred recording projects,
done in collaboration with a wide range of clients.
-
Provided creative assistance to recording clients.
-
Involved in the diagnosis, troubleshooting, and repair of
studio equipment.
-
Assisted in design and installation of facility upgrades.
-
Performed additional duties such as billing, inventory
management, and client relations.
-
Work environment is almost entirely project-based, tailored to
individual client needs, goals, and schedules.
WUMB-FM, Boston, MA - Producer, Board Operator
- 1/1994 - 6/2004.
-
Held the responsibility of maintaining the quality of the
on-air signal and keeping station logs during weekend
overnights.
-
Screened, prepared, and cataloged regularly-aired syndicated
shows; varying from 15 - 30 hours of material per week.
-
Produced and scheduled promotional spots, participated in
fundraising events, and took part in the administration of WUMB's
audio servers.
University of Massachusetts Boston
- Attended 9/2006 - 12/2011. Final CGPA: 4.00
- Awarded PhD in Computer Science.
- Dissertation: Precisely
Serializable Snapshot Isolation.
- My dissertation involved the development of algorithms to achieve
full serializability under snapshot isolation. I did two
implementations: a prototype tiny database that was written from
scratch and implemented a small subset of SQL (basic CRUD), and a
"real" implementation using MySQL's InnoDB storage engine.
University of Massachusetts Boston
- Attended 1/2001 - 5/2003. Final Graduate CGPA: 3.93.
- Awarded MS in Computer Science.
- Graduate Project: "Mayan Translation Assistant", a java
GUI application written to assist users in identifying Mayan
Hieroglyphs. The Mayan Translation Assistant was an image matching application
with a snazzy Swing interface.
University of Massachusetts Boston
- Attended 5/1998 - 12/2000. Final Undergrad CGPA: 3.98.
-
Awarded Major Certificate in Computer Science (BA
equivalent for math and CS courses).
Berklee College of Music
- Attended 9/1989 - 12/1992. Final CGPA: 3.85.
-
Awarded BM in Music Production and Engineering.
Pennsylvania State University
- Attended 9/1988 - 5/1989. CGPA: 3.94.
Other Activities & Qualifications
-
Submitted and tested patches for several open source software
products, including tomcat, mod_jk, GNU findutils.
- Affiliate, IEEE Computer Society.
- Member of ACM and SIGMOD.
- Member, Free Software Foundation.
-
Completed Fagan Defect-Free Training Process from Michael Fagan
Associates.
-
Extremely proficient in a unix command-line environment.
-
Comfortable working with large bodies of code.
-
Comfortable working in distributed computing environments.
-
Good written and verbal communication skills. Excellent
organizational skills.
-
At KAYAK, I interacted heavily with the Business Operations and
Finance teams. I speak reasonably fluent finance.
-
I used to be a pretty decent guitar player. I don't play much these
days, but I can still bang out the guitar riffs to Smoke on the
Water and White Room.
-
Years ago, I did sound design and editing for the CD-ROM Tom Peters
Career Survival Guide. It was the most fun you could possibly
have with a condenser microphone and bag full of fortune cookies.
-
Ported JDK 1.1.7 and Swing 1.1 API documentation to the Classic
Macintosh platform. Sun kept this up on their website for years;
Oracle took it down. This was my first non-trivial shell scripting
projects.
Last Updated: Aug 29, 2013