Rob McBroom


I’ve been doing some type of programming since I was 8 years old.

Interesting problems keep me up at night and get me out of bed in the morning. If you give me problems to solve, lunch will seem like an annoying chore instead of a welcome break.

If you’re looking for someone like that, let’s talk.


So, aside from creating impressive bulleted lists (below), what else can I do? Most of my experience boils down to either web development or system administration. It’s rather difficult to show examples of system administration, but some of the projects I’ve worked on are discussed below.

You can always see what I’m up to on GitHub and Stack Overflow. Some of the projects I’ve worked on are discussed below.

This Résumé

I wanted to make my résumé available as both text and HTML without manually maintaining two versions. I also wanted to learn a bit about Pyramid. The result was a small application that served both the HTML and the original Markdown source.

Then, I decided that was overkill and rewrote it using Flask, which is what you’re viewing now.

Managing Machine Info using LDAP

I can’t take credit for this idea, as it was being done at Georgia Tech, but in my role as system administrator at ADESA, I saw the need to implement it there. When I was hired, Linux machines were being tracked in an Excel spreadsheet. This is sufficient for getting information to human eyes, but I saw an opportunity to automate a large number of tasks by storing the information in a format that both humans and machines could get to. I also wanted to be able to view and change information in a variety of ways, rather than depending on Excel. The answer was OpenLDAP for a number of reasons.

  • Many existing applications (Postfix, Puppet) can use LDAP data
  • LDAP tools are pre-installed on most systems
  • It’s available in most scripting environments (Shell, Python, PHP, Perl)
  • The data can be viewed and edited in many ways (including plain-text)
  • The data’s structure is more flexible than a spreadsheet or RDBMS
  • We were going to need an LDAP server anyway (for authentication)
  • It’s easy for people to read and gather information
  • It’s easy for machines and automated processes to read and gather information

Web-based Software Distribution

This was my favorite project at Georgia Tech. To be successful, I had to create an application that interfaced with MySQL, the Enterprise Directory, Remedy, local files and processes, etc. I also had to design a flexible architecture that would allow us to specify access controls and user interface elements per software package if necessary. This application experienced 100% uptime since I first made it “live” in July 2003, until I left Georgia Tech in June 2008.

The site is no longer accessible from off campus, but if you happen to have access to their VPN, feel free to check it out.

Frequently Asked Questions

Redesigning the FAQ was one of my first “projects” at Georgia Tech (when my primary role was answering support phone calls and e-mail).

Prior to my involvement, this site was made entirely of static HTML pages for both FAQ entries and navigational menus. After my redesign, all you had to do was drop a new entry into place and the navigational menus would get updated on the fly. This system remained stable with minimal maintenance for over 10 years.

Of course they’ve moved to a different system since 2008, so this link won’t demonstrate my work, but here it is anyway.

Self-service Account Management

This web site allows Georgia Tech users to change their password, reset a lost password by answering user-defined questions, manage their e-mail aliases, manage guest accounts, and set preferences for GT’s emergency notification system. I was not the primary developer or designer for this site, but I did a great deal of work on the back-end. I was responsible for getting the site to talk to our central account management system via XML-RPC and PostgreSQL queries and for getting it to look up directory information via LDAP. I also helped design a system to adjust the site’s functionality based on class of user (faculty, staff, student, etc.).

Working on a site like this obviously requires an understanding of the various security risks to a web-based application and the techniques for mitigating them. In addition to helping guard against web-based attacks, I helped design a system to protect the contents of local files in the event of compromise.

Personal Web Site began life as my first home.html page in 1994 when I was at IU. I registered a domain in 1999 and have expanded and redesigned the site many times since then. It’s hosted on a Debian machine that I maintain.

I also test and discuss more technical subjects at


(In order of proficiency)


  • Python
  • Objective-C
  • Markdown
  • Shell Scripting
  • Swift
  • PHP


  • Django
  • Flask
  • Pyramid
  • Docker
  • Plone
  • Zope

Data Sources

  • OpenLDAP
  • PostgreSQL
  • MySQL
  • ZODB
  • SQLite
  • Redis
  • Parquet

Operating Systems

  • NeXTstep/Mac OS X/macOS
  • Linux (Debian, RHEL, Ubuntu)
  • FreeBSD
  • Solaris
  • AIX
  • Microsoft Windows (95 – 10)
  • MS-DOS
  • Mac OS

Tools and Applications

  • Quicksilver
  • TextMate
  • Homebrew
  • Git
  • Pipenv
  • tmux
  • Xcode
  • Vim
  • Dash
  • Xymon (formerly Hobbit)
  • Remedy AR System User Tool
  • Microsoft Office Suite


  • SSH
  • Nginx
  • Varnish
  • HAProxy
  • Apache
  • Postfix
  • Kerberos
  • IMAP (UW, Dovecot)
  • DHCP
  • BIND (DNS)
  • inetd/xinetd
  • NFS


  • OpenSSL
  • Puppet
  • SaltStack
  • Amazon Web Services



Lead Developer, December 2010 – Present

Part of a small international team of programmers dedicated to maintaining the open source Quicksilver application for macOS.

  • Fix bugs
  • Add features
  • Improve internal structure and stability
  • Help set direction and priorities for the project
  • Support users

Six Feet Up

Senior Developer, August 2014 – Present

As a developer at a small consulting company, I work on dozens of projects in different areas, from managing servers to front-end design.

My primary role involves writing Python code, but I’ve also ben able to apply my experience as a sysadmin. I spend much of my time working with Django, PostgreSQL, Redis, Pipenv, Buildout, and other tools common in the Python world.

  • Custom Django application design
  • Managing systems and orchestrations using SaltStack
  • System configuration and maintenance (primarily FreeBSD and Ubuntu)
  • Supporting the rest of the team as the resident macOS and Homebrew expert
  • Custom exports of content from Zope/Plone to JSON or CSV (for clients migrating to Wordpress and other platforms)


Linux Administrator, July 2008 – July 2014

Responsible for over 100 Red Hat based Linux servers as part of ADESA’s UNIX team.

  • Manage packages, patches, filesystems, backups, users and groups on Linux systems
  • Implemented and maintain an LDAP-based system for tracking machines
    (Linux, OpenLDAP, Python, PHP)
  • Transitioned systems to centralized authentication
    (Linux, OpenLDAP, Kerberos)
  • Implemented Puppet infrastructure for managing servers
  • Automated monitoring and alerting for Linux systems
    (Xymon, Python)
  • Identify and address hardware problems

Georgia Institute of Technology - Atlanta, GA

Systems Support Specialist II, November 2004 – May 2008

Worked in the Office of Information Technology’s Architecture & Infrastructure group providing services to the Georgia Tech campus. Primary responsibilities involved building and maintaining web-based applications and performing a variety of system administration tasks.

  • Maintained a central web server for hosting 400+ departmental websites
    (Solaris, Apache, MySQL, Perl, PHP, shell)
  • Installed/maintained the mailing list server for campus
    (Linux, Sympa, Postfix, MySQL, Perl, shell)
  • Developed secure web-based software distribution application
    (Solaris, Apache, PHP, MySQL, LDAP, Remedy)
  • Developed code that allows self-service account management web site to interact with various back-end systems
    (Solaris, Apache, PHP, MySQL, PostgreSQL, Oracle, XML-RPC, LDAP)
  • Developed back-end for the Frequently Asked Questions website and authored most FAQ content
    (Solaris, Apache, Perl, HTML, CSS)
  • Maintained Google search appliance
  • Scripted migration of calendar events from Oracle Calendar to Zimbra
    (Linux, Oracle Calendar, Zimbra, shell)
  • Maintained the newsgroup server for campus
    (Solaris, INN, Diablo)
  • Supported customers via e-mail, phone, and face to face
  • Maintained top-level web infrastructure (to support [backup role]
    (Solaris, Apache, MySQL, shell)
  • Maintained central web-based e-mail client (based on IMP) [backup role]
    (Solaris, Apache, PHP, MySQL, IMAP, LDAP)

Systems Support Specialist II, January 1999 – November 2004

Worked in OIT’s Customer Support Center and assisted students, faculty and staff with user accounts, desktop computers, OS specific questions, networking, remote access to campus resources and various other types of questions. Responsible for redesigning and maintaining FAQs, designing and implementing the software download interface, managing an intranet server, and maintaining 5 informational kiosks located around campus.


Indiana University - Bloomington, IN

BS, Information Systems, May 1998

Studied Computer Information Systems in the IU School of Business. A strong interest in math and science is reflected in courses taken outside of the School of Business.




IndyPy (2011 – Present)

Regularly attend monthly meetings of the Indianapolis Python users’ group to discuss Python and other technical topics.

Secretary, IU Water Ski Club (1996 – 1998)

Created and maintained the club web page. Monitored and responded to club related e-mail. Organized teams to attend tournaments with other schools. Taught and learned various water skiing skills with other club members. Drove and maintained the club’s competition ski boat.