Tim Ruddick
tim@ruddick.com
Bio
Tim Ruddick develops database protocol network sniffers
for DB Networks' products. Prior to DB Networks, Mr. Ruddick developed an
Oracle TNS/TTC network proxy, and server and client protocol stacks for
WireCache Inc's Accelerator product.
Tim was a Senior Software Engineer at UUNET Technologies in
the R&D and Database groups, where he designed and implemented large,
high-performance backend datastores and network tools to support UUNET's
Internet backbone and massive Dial-up Access Network.
Tim was a Software Engineer and I.T. generalist at AIM
Marketing, a music-marketing company, where he wrote multi-user data-entry
and reporting applications, while making sure the computers ran smoothly
and there was always dialtone on the phones.
Skills
- Unix and Linux Programming (Fedora, Debian, FreeBSD,
OpenBSD, etc.)
- Written and verbal communication
- System Architecture
- Team leadership
- C++ (including STL, Boost, exception safety,
optimization, resource management, debugging, etc.)
- Database Design (SQL, relational, object-oriented, semantic,
B-trees, etc.)
- Network Programming (clients, servers, protocol analysis,
TCP/IP, Ethernet, 802.11 [WiFi], firewalls, proxies, relays, Net8,
etc.)
- Multi-threaded Programming (concurrency in C, C++, Java,
and others)
- Performance Enhancement (profiling to evaluate performance,
code tuning to improve CPU, cache, memory, mutex, disk, and other
bottlenecks)
- Object Oriented Design
- Python, Perl, TCL (standalone and as embedded
scripting languages)
- SQL (Oracle, Sybase, MySQL, SQLite, MS-SQL Server,
and others)
- Java (Ant, JDBC, concurrent programming, etc.)
- XML (including DTD design)
- UML
- Web technologies (Apache, HTTP, HTML, CSS, PHP, etc.)
- System Administration (network infrastructure, VPNs, backups,
spam filtering, etc.)
Experience
- DB Networks,
Poway, California (2009 - Present)
Co-Founder, Software Architect
-
DB Networks sells Database Activity Monitoring (DAM) products.
-
In C++ on Linux, design and build network capture
and protocol analysis servers for Oracle (Net8), MS SQL Server
(TDS), and HTTP. The capture code easily handles 4Gbit/sec on mid-range
hardware without packet loss. The analysis code reassembles TCP
streams in realtime (using TCP port, sequence number, etc.) to monitor
database activity.
[C++, Linux, STL, Boost, Multi-threaded Programming,
Oracle, TCP/IP, DAM, TNS, TTC, SQL, TDS, Database Design, Cryptanalysis,
Network Protocols, Object Oriented Design, TCL]
- WireCache (formerly
NextGig, Inc.), San Diego, California
(2001 - 2009)
Software Architect
-
WireCache sold network hardware and server software to optimize
database performance.
-
Reverse-engineered Oracle's TNS/TTC (Net8)
protocol. There exist other Oracle client-side implementations
(third-party JDBC drivers, for example), but I know of no other Oracle
server-side protocol implementation.
[Oracle, TCP/IP, TNS, TTC, Net8, SQL, Cryptanalysis,
Network Protocols]
-
Implemented client and server network proxy, protocol stacks, and SQL
parser for the WireCache database accelerator. This allowed the
accelerator to appear to clients exactly like
an Oracle database.
[C++, STL, Boost, Linux, Multi-threaded Programming,
Oracle, TCP/IP, TNS, TTC, Net8, SQL, Lex, Yacc, Cryptanalysis, Network
Protocols, UML, Object Oriented Design]
-
Designed and wrote tools to analyze Oracle
network traffic and produce reports including all SQL seen on
the wire, time spent executing queries, and other useful details and
statistics. The network capture and analysis are
non-intrusive and
completely safe to use in any production
environment.
[C++, Linux, Mac OS-X, Perl, Oracle, TCP/IP, SQLite,
Information Design, Network Protocols, Database Design, Object Oriented
Design, Multi-threaded Programming]
-
Designed and wrote a tool to replay SQL extracted from network traffic,
creating reproducible tests from real-world sample
data.
[Java, Ant, JDBC, Oracle, SQL, TCP/IP, XML, SQLite,
Object Oriented Design, Multi-threaded Programming]
- UUNET,
Fairfax, Virginia (1995 - 2001)
Senior Systems Programmer/Architect
-
UUNET (now a Verizon company) was one of the world's largest
providers of Internet services to businesses.
-
Completely redesigned and rewrote a network query protocol and custom
database server in C++. Improved system uptime
from 4 hours a day to 24 hours a day,
and data insertion rate from 400 rows per
second to 10,000 rows per second. As of 2001, this database
logged 30 million inserts per day, contained half a terabyte of data,
and was growing exponentially.
[C++, Unix, BSD/OS, STL, Perl, HTTP, XML, TCP/IP, Database
Design, Object Oriented Design]
-
Designed and wrote a complete client/server database package used to
reconcile telecom vendor invoices. As of 1997, data gathered by this
system was saving the company more than $1 million
per month.
[Database Design, Sybase, SQL, MS-Windows, Unix, C++,
MS-Access, GUI Design, Information Design]
-
Reverse-engineered the binary data format used by UUNET's Unix-based
legacy accounting package. Wrote Perl libraries to generate reports from
this data, saving twenty employee-workdays per
month.
[C++, Perl, Unix, Cryptanalysis]
-
Designed and wrote a C++ class library to provide persistent data
storage objects using Sleepycat Software's Berkeley DB embedded
database library. This library provides containers and iterators
modeled after those in the C++ Standard Template Library (STL).
[C++, STL, Object Oriented Design, Database Design]
- AIM Marketing,
Old Bridge, New Jersey (1990 - 1995)
Software Engineer, DBA, System Administrator
-
AIM marketed Rock, Pop, Metal, Adult Alternative, AOR, and
other genres to radio stations and retail outlets for clients in the
music industry. Much of the software used at AIM is now in use at
The Music Syndicate.
-
Solely responsible for designing and implementing
all technical aspects of the company. If it plugged into the wall, it
was part of my job.
[Database
Design, Unix, MS-Windows, Computer Hardware, Telecom Hardware, Network
Protocols, GUI Design, Object Oriented Design]
-
Designed and wrote tools to generate geographical marketing reports, which clients cited as the best in the
business. These reports used latitude, longitude, and zipcode
information to calculate nationwide broadcast antenna coverage areas
and correlate them with retail outlet sales information.
[Database Design, Information Design, Algorithm
Design, Cartography, Statistics]
-
Designed and wrote the company's primary multi-user database
application. On a tight budget, set up and maintained the hardware to
run it. This application was used both for data entry by 20 people and
for data mining. It stored several years of nationwide radio airplay
and retail sales statistics, and synchronized this data among a number
of remote sites.
[Database Design, Unix, MS-Windows, C++, FoxBase]
-
Personally set up and maintained all computer
hardware, including a SCO Unix server with 24 serial terminals,
a 16-node Windows network, several networked printers and fax devices,
and a 32-line digital-hybrid phone system.
[Unix, MS-Windows, System Administration, Computer
Hardware, Telecom Hardware]
Education
-
Bachelor of Arts in Computer Science (1990)
University of California, San Diego (UCSD)
Concentration in Artificial Intelligence
Minor in Philosophy
Interests
-
Music,
photography,
audio compression,
cryptography,
cartography,
linguistics,
information design,
graphic design
References available upon request.