Donald A. Garrett

(408)-425-7026
18321 Carriage Dr
Morgan Hill, CA 95037
dgarrett@acm.org

Education

Louisiana Tech University. Bachelor of Computer Science, February 1993
Louisiana Tech University. Master of Science in Computer Science, November 1998

Expertise

Languages: C++, Java, XML, Python, PHP, HTML, SQL, Perl, Javascript, C

Server Software: Linux, Apache, Tomcat, Mysql, Postgres

Experience

TiVo
Sr. Engineer
April 2004-Present.

  • TiVo Experience Server Developer:
    • Driver in early efforts to productize in house service software
    • Involved With:
      • QE Test Plans
      • Branching Strategy
      • Build Process
      • Operations Support
      • Customer Specific Development
      • Coordination between QE, Operations, Build Team, and developers in other devisions
    • Development for many aspects of
      • Java Servelets running in Tomcat with Apache front end
      • Dual MySql Servers using either Dual Master Binary Replication or DRBD for hot failover
      • Perl Scripts to populate support databases
      • Proprietary C++ code base used for configuration management
      • Perl, PHP, and C++ applications used to support SNMP and HTTP based monitoring
      • Failure and Recovery Code and Procedures
      • Substantial Operations support
  • TiVo Consumer Device (TCD) Developer:
    • UI framework development
    • UI development
    • Security/Cryptographic development
    • Object Oriented Database development
    • Automated code/documentation generation

BGB Consulting
General Partner
January 1997-April 2004.

  • General Partner co-responsible for all business decisions
  • Primary technical consultant for the company
  • Developed numerous web sites with dynamic content using many technologies
  • Primary focus is on Apache web servers running on RedHat linux servers using PHP, JSP, and Java Servlets backended with PostgreSQL, MySQL, and Oracle databases.
  • Strong focus on security, and (where needed) high end performance.
  • Web/Network server configuration/administration
  • Significant non-web consulting work
    Tivo
    Helped add dual tuner support. This required substantial refactoring of existing code. Development was done in C++ in a consumer level Linux device.
    Dallas Semiconductor
    Created Java based emulator of the Java iButton. Used as the basis for the debugger portion of an iButton development environment. Also helped develop a demo app for the Tini board.
    Sabre
    Performed development work on a Java based front end for the Sabre travel reservation system.

Network-1 Software & Technology, Inc.
Sr. Software Engineer
Apr. 95 - Dec. 96

  • Primary architect and developer for the packet filtering engine for Firewall/Plus - This was the enabling technology for the corporation's flagship product.
  • Assisted port of Firewall/Plus to Windows NT kernel using Visual C++ 4.1 and the STL.
  • Performed customer support, customer/consultant/reseller training, and acted as a technical representative during business meetings.

Louisiana Tech University
Computer Science Department -- Full Employee
Aug. 94 - Apr. 95

  • Designed two classroom laboratories. One with (16) 486 computers and one with (12) SGI workstations.
  • Administered and supported existing Computer Science equipment and networks. Novell NetWare, Linux, SunOS, MacOS, and SGI Irix.
Computer Science Department -- Graduate Assistant
Feb. 93 - Aug. 94
  • First developer for the Watson research project (to create Computer Science text book and matching automated computer training labs).
  • Pioneered libraries and framework shared among all 12 applications developed by the project, which were based in C, with the SUIT library (X and MS-Windows)

Organizations/Honors

  • Eagle Scout
  • Sun Certified Java Programmer (JDK 1.1)
  • ACM, Full Membership
  • 1994 ACM South Central Region Programming Contest - team competition
  • International Collegiate ACM Programming Contest Finals '95 - team competition

Publications

Don Garrett, Micheal B. O'Neal, Barry Kurtz. "Scripting of Event Driven Programs for Graphical, Computer-Based Laboratories". SIGSAC, 1995.