KEITH T. GARNER
*******@*******.*** - 630-***-****
*** ********** **., ********, ** 60103
HIGHLIGHTS
My unique combination of programming skill, system administration, and intra-personal and
presentation skills has allowed both myself and the organizations I've worked for to excel. I do best
in a generalist role often finding non-obvious solutions due to my broad knowledge.
TiVo2Podcast Ruby script to automate downloading content from a TiVo, transcoding,
then putting into a feed for podcast retrieval using TiVo's metadata.
http://www.kgarner.com/blog/archives/category/geek/coding/tivo2podcast/
Large-Scale Mail with Postfix, OpenLDAP and Courier published in the February 2003
(Issue #106) of Linux Journal
Using the Encap Package Management System to Manage Non-System Packages
published on Linux Journal website in December 2003
Lead programmer and designer on ezRETS, a cross-platform ODBC driver that retrieves
data from RETS servers. Supported on Windows, Linux, and OS X.
http://www.crt.realtors.org/projects/rets/ezrets
Programmer and designer on libRETS, a cross-platform generic RETS library with bindings
to many languages including Ruby, PHP, .NET. Supported on Windows, Linux, and OS X.
http://www.crt.realtors.org/projects/rets/librets
Completely automated a manual EDI process utilizing DOSemu, Expect, Perl, and Bash.
Resulted in annual savings of $50,000.
SKILLS
Languages: Ruby, C, C++, Java, Perl, Expect, SQL, Bash, PHP
Web Technologies: Apache, Tomcat, Java Servlets/JSP, HTML
Server Technologies: BIND, Squid, SSH, VPN, Sendmail, Postfix, Samba
Databases: PostgreSQL, MySQL, Oracle
Operating Systems: Linux, Solaris, Mac OS X, Windows, AIX
EDUCATION
University of Illinois, Urbana, IL
B.S. in Computer Science, College of Engineering
PROFESSIONAL EXPERIENCE
National Association of REALTORS, Chicago, IL Aug 2001 to Present
Vice President, Information Technology Services, 9/2008-Present
Responsible for IT department in both Chicago and DC office, covering desktop support,
infrastructure, and development with a $6 million budget and 30 personnel. Environment includes
180+ servers (65% Linux,) VoIP, 600+ Lotus Notes/Domino databases, Java, Oracle, 350 staff
desktops, and Websphere.
Advised and promoted move from Websphere to Drupal.
Authored Ruby scripts for metric gathering, report generation, phone billing, and automating
capture of phone debugging information.
Migrated e-mail and calendaring from Lotus Notes/Domino to Microsoft Outlook/Exchange,
with staff change-over happening in just 4 weeks.
Oversaw buildout and start of migration to virtualized environment.
Oversaw network redesign to modern firewall design and security. Hands on with the IP
renumbering effort and other tasks as needed during the event.
Mentored Managing Director of application development to shrink the pending project
queue from many months late to on-time deliveries.
Instituted metrics to track projects and infrastructure items such as unscheduled downtime,
alerts, and database statistics.
Oversaw both programming, production, and support of custom e-commerce and
membership systems, including web service hooks for 3rd party vendor interaction.
Frequent contact with elected leadership on their technology challenges, actively supporting
them within the context of their NAR service.
Managing Director, Center for REALTOR Technology (CRT), 9/2006-9/2008
Continued the daily responsibilities of Strategic Architect, but with additional responsibilities of
managing a staff of 4 and $2 million budget.
Absorbed responsibility of RETS committee budget and back-end administration from
Information Technology Service department.
Brought CRT technology survey development in-house for cost savings and increased
quality.
Created Bloggers' Lounge at mid-year and annual conferences as a gathering hub and
outreach to social media savvy members.
Strategic Architect, Center for REALTOR Technology (CRT), 8/2001-9/2006
Founding member of skunk-works department focused on advocacy, education, and
implementation. Developed open source projects from proof of concepts to full software packages
in a variety of languages to demonstrate concepts and/or fill holes in the market place. Educated
REALTORS in technology through presentations and continuing education sessions at local, state,
and national meetings to positive reviews. Authored articles promoting technology for CRT's
newsletter and blog. Acted as a technology advisor to NAR leadership and upper management.
Participated in the Real Estate Transaction Standard (RETS) committee.
Built and maintained CRT's departmental Linux servers for LDAP, mail, source code
repositories, web, and file servers.
Lead programmer on ezRETS, an open-source cross-platform ODBC driver that retrieves
data from RETS servers utilizing libRETS. Supported on Windows, Linux, and OS X.
http://www.crt.realtors.org/projects/rets/ezrets
Programmer on libRETS, a cross-platform generic RETS library with bindings to many
languages including Ruby, PHP, .NET, utilizing libCURL, Boost, expat, cppunit. Supported
on Windows, Linux, and OS X. http://www.crt.realtors.org/projects/rets/librets
Programmer on java-based application-specific LDAP editor JAMM for managing e-mail
domains. Still in use on my personal server. http://jamm.sourceforget.net/
Programmer on java-based RETS server Variman.
http://www.crt.realtors.org/projects/rets/variman
Created and implemented the CRT blog in August 2005, becoming NAR's first entry into
social media. http://blog.realtors.org/crt/
Instrumental in creating the REALTOR Secure program, a technology security auditing
and awareness program for associations, brokerages, and technology vendors servicing real
estate.
The Net Squad, Oakbrook, IL Aug 2000 to May 2001
Internet Solutions Architect, Principal
Responsible for working with early stage companies to develop their first generation systems,
internal and external. Responsibilities in the home office include design, implementation, and
maintenance of company network and UNIX based systems, services, and infrastructure.
Designed and implemented a rules-based e-mail subscription system in Java with a web-
based administration system using JSP/Servlets, both utilizing an Oracle DB.
Designed and deployed two Linux-based firewalls.
Implemented and deployed company backup system.
Deployed the company e-mail system.
Resource Information Management Systems (RIMS), Naperville, IL Jan 1999 to Aug 2000
Manager of Technical Architecture, Development
Responsible for managing 4 technical architects designing and implementing new software systems
for external and internal projects. Responsibilities included developing proof-of-concept projects
using new technology, assisting the Development Department in preparing and deploying
applications in the RIMSLink facility, helping to shape company policy towards Open Source
Software including evaluating which licenses to use when releasing software.
Key company source for UNIX, Linux, Open Source Software, and Internet technology.
Presented seminars on Internet Security, and Linux and Open Source Software at the annual
Association of RIMS Clients (ARC) convention.
Assisted in recruiting of technical staff by doing initial evaluations of candidates.
Completely automated a manual EDI process resulting in annual savings of $50,000
utilizing DOSemu, Expect, Perl, and Bash
Worked with CTO to plan long term strategy on Internet applications including the targeting
of tools which could be released as open source.
Promoted increased communication throughout the company by creating newsgroups and
assisting in the creation of departmental web sites.
Strategic Technology Resources (STR), Chicago, IL Aug 1997 to Jan 1999
Consultant
Responsible for working with project leads on short term projects to deliver multi-tier Java based
object oriented solutions.
Member of team that created a 3270/CICS-to-JavaBean application suite. Oversaw the
transaction building and testing GUI in Java using the Swing toolkit.
Built a proof-of-concept web-based health claim submission engine using Java and CORBA.
Built internal demo of Java and MQSeries to increase company knowledge into MQSeries.
PERSONAL PROJECTS
TiVo2Podcast Ruby script to automate downloading content from a TiVo, transcoding,
then putting into a feed for podcast retrieval using TiVo's metadata.
http://www.kgarner.com/blog/archives/category/geek/coding/tivo2podcast/
Use and tweak DD-WRT on personal firewall with use of ipv6 support.
Administrate co-located Linux server shared by 10 people, maintaining their e-mail, web
sites, databases, and source code repositories.
Using Arduino to build controller for traffic light.
Moderator of the Linux Users' of Northern Illinois (LUNI) mailing list and often assist
others on the list
Spoke on Linux and open-source at Comdex Fall 2001
Member of the ACM@UIUC 1995-1997, chairperson of ACM's Linux Users' Group 1996-
1997