Well rounded engineer and technical leader experienced with and passionate about Free/Libre and Open Source software from design to implementation. Established Open Source community member and leader of many projects spread across the technical spectrum. Developed and extended a multitude of Linux-based operating systems including Debian, Ubuntu, Red Hat, SuSE, Gentoo, OS2005/2006 (precursor to Maemo/Meego/Tizen), Knoppix4Kids, and several custom platforms. Software development experience in many languages including Python, C/C++, C#, Shell scripting and Perl. Extensive work with various development, debugging and testing tools such as Git, Mercurial, SVN, BugZilla, Redmine, Trac, GCC and GDB. Self motivated with quick uptake on new concepts. Web-site articles and software reviewed in many publications around the world.
April 2015 - present
Manager responsible for build tools and processes, configuration and testing technologies, and repository policies and procedures. Set in place the branching, merge and repository workflow for the myriad of Git repositories in use at Angie's List. Integrated source code management tools with the build and test infrastructure. Managed merge queue and pull requests for diverse teams. Served as a liason between site-ops, dev-ops and development groups. Authored several Open Source tools and technologies which help streamline the build and release process including git-circle, a Git extension for working with CircleCI. Helped reduce average build times from 2.5 hours down to 45 minutes.
April 2014 - April 2015
Manager responsible for Professional Services projects including custom spiders and data processing. Technical lead and software engineer for multiple ongoing projects. Developed customer spiders based upon the Scrapy framework, written in Python and running against various other Scrapinghub technologies. Leader of teams ranging in size from small to large. Projects include retail, security, advertising, healthcare and data mining.
June 2013 - Mar. 2014
Contributor to the Open Microscopy Environment project as well as developer of custom tools and OME extensions for Glencoe Software customers and support including adding annotation support on the OMERO command line and REDIS support for the OMERO caching backend. One of the initial developers on the Corgi project, developer and data wrangler for the OMERO instance running at the JCB Dataviewer, and various development roles in other Glencoe Software Github projects. Software engineering primarily in Python, Java, and shell.
May 2012 - April 2013
Implemented and documented a testing infrastructure utilized by firmware teams working on various subsystems of a CT Scanner. Integration of Linux based testing and development environments with VxWorks testing environments. Scripted framework binding multiple diverse technologies providing continuous integration, distributed build, test management, and virtualized workstation features. Developed packaging mechanisms (scripts, specs, makefiles) for automatically building and bundling RPMs for CT Scanner host machines.
Oct. 2010 - May 2012
Principle developer on a cross-platform suite to integrate Linux and Windows- based systems into a cloud computing infrastructure inside the Enterprise Integration Labs. Initial work was on a C/C++ daemon suite to act as counterpart to existing Windows C# service, however both were later scrapped in favor of a unified Python-based cross-platform daemon/service which performed the same roles as previous two applications. In the end, authored 39k lines C/C++, 18k lines BASH/shell, and 14k lines Python. Cross-platform support included the Linux-flavors of Debian, Ubuntu, RHEL, CentOS, SuSE, SLES, SLED, Xen and ESX/ESXi, and the Windows-flavors of XP, Server 2003, Vista, and 7. Leader of a team of engineers working on the cloud computing project.
Apr. 2008 - Oct. 2010
Funavision Electronic Entertainment is an independent video game studio producing socially enabled video game technologies for the Xbox 360, Google Android, and PC environments. Company founder, project manager and lead developer for a number of video game and multimedia projects. Managed a focused team of game engineers and testers toward producing new and exciting video game technologies. Company operated virtually with no central offices, thus utilizing specific remote work technologies such as distributed version control systems, distributed issue tracking, and distributed work-flow. Lead video game technology development for all company projects and performed development in C#, XNA, Java C/C++ and Python.
Mar. 2007 - Apr. 2008
Member of the Linux Standard Base (LSB) team, a group with the goal of "[developing].. a set of standards that [increases] compatibility among Linux distributions". Guided the LSBsi (Sample Implementation) from an inactive and orphaned project back into activity. Developed utilities and modules in Python for ancillary LSB features and functionality. Participated in the debates and decisions for the LSB specification during the LSB3.2 and LSB4.0 time-lines. Provided work-flow plans and recommendations for the integration of Java component technologies into the LSB. Laid down foundation for cross-distribution package management schema designed to provide third-party ISV installation tools low-level access to underlying package management systems.
Nov. 2006 - Mar. 2007
Development of a bridging PHP-based technology between an existing PHP and MySQL based membership subscription tracking application, and a MediaWiki seeded LDAP user information store.
Oct. 2004 - Apr. 2007
Development of Customized Linux distributions on x86, ARM, and PPC platforms. Starting with core Debian GNU/Linux, Fedora Core, or CentOS platforms, built and maintained customized Operating Systems. Low-level RPM development (RPM application, tools, and RPM packages). Python, C and Perl development. Anaconda modification and enhancement. Creation and maintenance of several Free-Software tools such as rpmstrap and smartstrap (rewrite of rpmstrap using the Python-based Smart API). Design of a system for creating custom Anaconda-based RPM installation ISOs under any arbitrary Linux distribution (e.g., Debian, CentOS). Project manager for RPM-based products. Progeny's Open-Source/Free-Software code can be found online here.
Dec. 2003 - Jan. 2005
President and principal consultant for Big Man Networks. Business venture specializing in custom Debian GNU/Linux server technology, including Anti-Spam/Anti-Viral solutions, OpenLDAP gateways, Apache Webservers, as well as custom programming and scripting solutions.
Apr. 2002 - Jul. 2004
Instruction and course design for the Extended University UNIX, Linux, and LDAP Professional and Continuing Education courses. UNIX and Linux courses are taught in three levels, each course occupying eight hour class periods for five weeks. UNIX and Linux courses teach: UNIX/Linux fundamentals, server technologies, and system security. LDAP course teaches OpenLDAP system administration, maintenance and management. Courses were taught from Red Hat Linux, Debian GNU/Linux, Knoppix, and FreeBSD platforms. Classnotes are available online at http://www.samhart.com/classnotes/.
Oct. 2001 - Oct. 2004
Integration and maintenance of 60-100 desktop PCs and laptops running various Microsoft Operating Systems, ensuring these PCs work well with the Unix infrastructure employed in the department, as well as maintenance of several Linux SAMBA, OpenLDAP, and terminal servers. Part of integration involved using the Linux-like CYGWIN environment under the Microsoft Operating Systems. Extensive script programming including BASH, Perl, and Python scripting under both Linux and Windows (CYGWIN). Managed graduate and undergraduate employees for maintenance and support of undergraduate and graduate computer labs as well as staff and faculty desktop pools.
Aug. 2000 - Jan. 2001
Manager of testing crew for an embedded Linux device. Lead developer of a distributed P2P testing suite. In charge of several other Linux developers working on the testing suite. Testing suite was cross-platform, but developed primarily under Red Hat Linux. It was written in Perl, with components in JSP and a CGI web-interface. Suite was a P2P distributed computing project that could turn unused embedded Linux devices in the office into a cluster for testing the device API. Was hired to solve API testing problem, and this suite was my solution.
Jul. 1998 - Aug. 2000
System administration and software design. Developed database application for storage of Physics Graduate Student information. Managed undergraduate computer lab as well as maintained several Unix servers. Acted as liaison between technical support and general staff.
Sept. 2015 - present
The missing statistics dashboard for CircleCI. Written in Python, it collects, analyzes, and displays organizational usage statistics from CircleCI. Displays build averages, top-built branches, build failures, and many more. Extensible and easily configurable. Developed as an Open Source project while part of Angie's List.
Authored various Git extensions which provide additional functionality to the Git command-line. 'github-reflog' adds a reference log like interface for interacting with repositories hosted on Github. 'git-circle' allows users to access all of the features available from CircleCI from the git command-line. Both tools are written in Python, and easily installable from PyPI sources.
Oct. 1998 - present
Noink is a web-based content management system. It was originally designed in 1998 to power various online web-comics and was written in Perl. It was later rewritten in Python to be a more generic CMS similar to Drupal. Currently, it is Python-based and utilizes the Flask microframework. It is designed to be a hybrid of dynamic and static content creation, and can be hosted in a fully dynamic fashion as well as generate static content.
The Linux Client Agent (GPL) is a software suite used to manage a wide wide variety of Linux systems in a cloud environment. Software written in C/C++, bash, python. Source contains over 400k lines of code and supports RHEL, CentOS, SLES/SLED, OpenSUSE, Xen, Ubuntu, Debian, Slackware and ESX variants of Linux.
Apr. 2008 - Present
Mimicware is a suite of APIs created by Funavision for cross-platform, socially enabled video games. It includes cross-platform graphical engines, social network technologies, and game integration tools.
Jul. 2001 - Oct. 2007
Free-Software project founder. Acting director of overall project and lead developer/project manager of many sub-projects. Programming (C/C++), Application packaging/promotion, web design. Tux4Kids is a part of a family of Open Source/Free Software projects under the Open Source Educational Foundation ( http://www.osef.org/ ) including Knoppix4Kids and Debian Jr. While at Tux4Kids, led project development for a number of educational video games.
Dec. 2004 - Oct. 2007
rpmstrap is a tool for bootstrapping a basic RPM-based system. It is inspired by debootstrap, and allows you to build chroots and basic systems from RPM sources. Created while building custom RPM-based platforms while working at Progeny Linux Systems, it has since been used in everything from Virtual Machine building to customized installers. The rpmstrap project is now unmaintained, however, its code has been re-appropriated into the Xen virtualization software project.
1999 - 2002
Tux Typing is an Open Source educational typing tutor developed under Linux. Using the SDL libraries it was also ported to the Win32, Mac OS, and BeOS platforms. Served as lead developer until shortly after the 1.0 stable release. Has since become part of the Tux4Kids Free Software project. Tux Typing is published under the GNU GPL.
2001 - 2002
Tux of Math Command is an educational math tool developed under Linux. Creation of initial project idea and organization of project team including the recruitment of Bill Kendrick to be project manager. Provided initial game overview and graphics. Software has since been ported to the Dish Network "Dish721" Personal Video Recorder and is now included in that commercial product. Tux of Math Command is a part of the Tux4Kids Free Software project. It is published under the GNU GPL.
2002 - 2003
Code and artwork contributor to TuxPaint. TuxPaint is a part of the Tux4Kids Free Software project. It is published under the GNU GPL. Original artwork for TuxPaint came from animations and stills unused by previous Tux4Kids projects. Bill Kendrick originally suggested TuxPaint on a Tux4Kids mailing list, and he and I went back and forth discussing ideas and brainstorming.
Apr. 2001 - May 2001
Code contributor on the Aethera project. Created tool for importing of Microsoft Outlook mailboxes.
1999 - 2003
Code contributor for SDL. Submitted patches to code and documentation as well as library usage examples under C, C# (Mono), and Perl. Was maintainer of the SDL/KDevelop Mini-HOWTO during the KDevelop 1.x development cycle.
GCC, GDB, Subversion, Git, Mercurial, BZR, BugZilla, SourceForge, Vim, Eclipse, Visual Studio, XNA
General Unix, General Linux, Debian GNU/Linux, Ubuntu, Red Hat and Fedora Linux, CentOS and RHEL, SLES and openSUSE, Windows 95/98/NT/2000/XP/Vista/7
Apache, SAMBA/CIFS, NFS, SSH Tunnelling, nmap/Wireshark
CYGWIN/MSYS, VNC/NX, Virtual Machines (w/ Linux KVM)
Available upon request
(Last updated: 2015-10-27 08:33 -0400)