Robert M. Funk

 Rob Funk

rfunk@funknet.net

366 Fenway Rd

Columbus, OH 43214

(614) 429-4328

Summary

Experienced web application developer and Linux/Unix system administrator, with attention to detail ranging from the network to the server code to the display. Interested in a creative and diverse work environment.

Skills

-        End-to-end understanding of standard web technologies

-        HTML/CSS and web experience since 1995

-        Web programming and website administration, since 1997

-        Primary programming languages: JavaScript (since 2009); PHP (since 2004); Ruby (since 2006); Java (since 2013); shell, Perl, C (all since 1994)

-        Some experience with other programming languages: PostScript, Scheme and other LISPs, C++, Python, tcl/tk, assembly

-        Experience with programming languages in various paradigms, including Object-Oriented, Functional, Stack-Oriented, and Procedural

-        Experienced in coding environments from vi/vim to Emacs to IntelliJ IDEA, depending on the task at hand

-        Expertise with revision control systems, including Git, Subversion, and CVS

-        Building sites with Node/NPM-based tools (e.g. Gulp, Webpack, Browserify, Babel), since 2015

-        Building and using Docker container technology, since 2016

-        Ruby On Rails programming and deployment, 2006-2009

-        Computer/network/code security mindset, practiced since approx. 1996

-        Web server architecture using Apache, nginx, and other software, since 1996

-        MySQL database querying and administration, since 2003

-        Specialization in email and mail server architecture, using Postfix, Dovecot, SpamAssassin, Sendmail

-        DNS administration experience

-        Firewall design since 1999, with IPfilter, iptables, ipchains

-        I have been using various flavors of Unix and Linux since 1992, been system administrator on them since 1995, and been network administrator of them since 1997.

-        Taught “Introduction to Unix” workshops using Solaris

-        Digital image manipulation experience using GIMP (comparable to Photoshop) and other software tools, PostScript programming, page layout experience using Scribus and PageMaker, and expertise in various document and image storage formats, the advantages and disadvantages of each, and conversion among them

-        Technical support experience since 1994, including supporting/mentoring new Linux/Unix administrators and supporting TCP/IP network connectivity on Windows and Macintosh

-        Communication: clear and correct English writing ability

Education

Bachelor of Science in Electrical & Computer Engineering, The Ohio State University, 1998

Employment History

ComResource / Chemical Abstracts Service        Jul 2013 – Jul 2016

Consulting Web Developer

As part of a small Agile team, I developed new features and maintained/updated old ones in a very large mission-critical web application serving as an interface to a set of chemical information databases. Some aspects of that work included:

-        Programmed in Java (multiple frameworks) and Javascript (with the Dojo framework).

-        Wrote acceptance test code in Ruby using Cucumber and Capybara.

-        Performed ongoing peer code reviews, as well as learning quite a bit from pair programming.

-        Converted old GIF-oriented image handling code to use PNG and then SVG when available.

-        Updated PDF and Excel export code using IText and Apache POI libraries.

-        Converted old JSF-based code to a more REST-based system.

In a transition to newer projects, I developed a JavaScript/jQuery-based mockup of a proposed application for presentation to prospective customers. Then I worked with my team on the generic underlying code intended for that and other future large data-driven applications.

-        Configured Docker containers for static web content to connect to the Java REST layer (connected in turn to a data layer based on Hadoop and Solr), along with setting up a container to run end-to-end tests driven by the (Javascript-based) Protractor test framework, all driven by Maven.

-        Advised and assisted junior developers on developing and testing the Angular-based front end layer.

Tracermedia Interactive        Jun 2010 – Apr 2013

Web Developer

Tracermedia is a small web development company whose clients have included major textbook publishers. As a member of small teams, I:

-        Developed interactive educational web applications using JavaScript, PHP, and MySQL.

-        Worked with Codeigniter PHP framework, as well as jQuery, Backbone, and Ringo JavaScript frameworks.

-        Implemented both sides of client-server architectures using JSON/AJAX, with both PHP and JavaScript back-ends.

-        Created SOAP endpoints for communication with third-party services.

-        Acted as a network administrator for an office of primarily Macintosh workstations and both Macintosh and Linux servers.

Cyber Technology LLC / InsuranceAgents.com        Jul 2009 – May 2010

IT / Programming

My role was code-rescuer and utility-infielder of IT at a company that trades in insurance leads. Responsibilities included:

-        Bug-fixing and major cleanup of a large codebase of PHP (106,000 lines), Perl (120,000 lines), and thousands of lines of JavaScript/jQuery.

-        Bug-fixing and development assistance for new Ruby On Rails development.

-        Code review and advising of other programmers.

-        Creating a system for automatically calling people who have entered their information, to connect them with salespeople.

-        Assistant system administrator on Ubuntu and CentOS Linux servers, and assistant network administrator.

-        Supporting internal users of web services.

Odyssey Consulting / Tracermedia Interactive        Jan 2009 – Mar 2009, Jun 2009

Consulting Web Developer

As part of a small team, I developed an AJAX-based tool, based on an existing framework, to assist teachers of remedial reading programs in tracking student reading progress.

-        Programmed in Javascript/Prototype and PHP/Zend.

-        Developed a JRuby program to convert data from an Excel spreadsheet into a PDF of vocabulary flashcards.

-        Diagnosed company network problems, including cross-platform PPTP connectivity and server visibility between LAN and WAN.

WRL Advertising        Sep 2004 – Dec 2008

Senior Web Developer / Network Administrator

WRL is a small advertising firm with a 50+ year history and a fast-paced environment.  In my time there, WRL's web department doubled its technical staff and grew to rival its traditional advertising business, and hosted most of the sites it designed.

-        Planned, purchased, set up, and maintained Linux-based web and mail servers for hosting ~100 virtual domains

-        Implemented extensive anti-spam measures for email

-        Wrote and deployed web applications in Ruby On Rails, PHP, and Perl; and customized existing web applications to meet client needs

-        Set up Subversion and CVS source code control systems, and began to experiment with the Git source code control system

-        Assisted/advised graphic artists regarding web layout and image editing

-        Managed domain-purchasing and DNS issues

-        Managed an office network of Mac OS X, Windows, Linux desktop machines, and Linux servers

-        Hired, mentored, and managed technical staff members, and advised them on coding best practices

-        Migrated numerous domains from legacy Windows web and mail servers over to Linux servers, including translating ASP/VB into PHP, Access databases into MySQL, and improving the security of old code

-        Edited program guides for the annual Ohio LinuxFest, which hired WRL for graphics and media in 2005 through 2008

2Checkout.com Inc        Jul 2003 – Mar 2004

Contract Programmer

2Checkout.com provides a web-based purchase system through which online vendors may sell their wares without dealing with secure online credit card transactions themselves.  I was part of a team assigned to rewrite the Perl-based web interface that the company is centered around.

-        Implemented online purchase interface using Perl, Template Toolkit, Apache mod_perl, and MySQL

-        Set up CVS source code repository, and wrote a tutorial to help other programmers become familiar with CVS

Secure Interiors Inc.        Jan 2001 – Nov 2002

Chief Engineer & Co-Founder

I was involved in the technical side of starting Secure Interiors, a managed network security services company, actually beginning on the side in April 2000.  When actual employment began in January 2001, my responsibilities grew.  These included:

-        Involvement in designing almost all technical aspects of our complete solution

-        Setting up OpenBSD as a firewall for mass distribution

-        Writing and maintaining Perl and C programs to augment the firewall's functionality

-        Designing, configuring, customizing, and maintaining network servers (running OpenBSD and Linux), including: email server, bug-tracking system, source code repository, network-based backup server.

The Ohio State University / Office of Information Technology        Jan 1997 – Sep 2000

Systems Developer/Engineer - Workstation Support Engineer

As a workstation support engineer, my responsibilities included:

-        Assisting campus Unix (Solaris, SunOS, Irix, Digital Unix/OSF1, Ultrix, Linux) users & system administrators

-        Making hardware and software recommendations both for internal use and for other Unix system administrators

-        Planning and teaching an "Introduction To Unix" course

-        Acting as central contact point for Unix vendor support

-        Evaluating and documenting new Unix software

-        Administration of Solaris, SunOS, Irix, Digital Unix, Ultrix, Linux, NetBSD, OpenBSD, and Macintosh machines

-        Administration of servers for email, WWW, FTP, and NFS

-        Writing programs to support the above functions

-        Supervising a series of student employees

The Ohio State University / University Technology Services        Aug 1996 – Jan 1997

Student Programmer 3 - Workstation Support Consultant

As a student workstation support consultant, my responsibilities included:

-        Assisting campus Unix (Solaris, SunOS, Irix, Digital Unix/OSF1, Ultrix, Linux) system administrators

-        Assisting campus Unix users who have no other system administrator

-        Administration of Solaris, SunOS, Irix, Digital Unix, Ultrix, Linux, NetBSD, OpenBSD, and Macintosh machines

-        Administration of  servers for email, WWW, FTP, and NFS

-        Writing programs to support the above functions

The Ohio State University / University Technology Services        Nov 1995 – Aug 1996

Student Programmer 3 - Lead MAGNUS/Homenet Consultant

MAGNUS was the Unix (Ultrix) cluster that Ohio State once used to provide email and internet news abilities to the campus, and Homenet was the name for OSU’s dial-up networking service. My responsibilities as MAGNUS/Homenet consultant included:

-        Writing and maintaining based programs to allow unprivileged support staff to securely do high-level tasks

-        Basic Unix system administration tasks

-        Dial-up networking support for Windows, DOS, Macintosh, and Linux users, via telephone and email

The Ohio State University Department of Computer and Information Science        Sep 1995 – Dec 1995

Grader, CIS560: System Software

CIS 560 is a class intended to teach students about system software, software design and testing, software system documentation, and technical writing. My responsibilities as grader included answering student questions about all aspects of class, conducting reviews of student designs, and testing and grading thirty software projects.

Rail Products International / National Electric Coil        Jul 1993 – Nov 1995

Engineering Assistant

Wide range of responsibilities included:

-        Maintaining and supporting three HP/UX 9 workstations

-        Supporting DOS/Windows users on a Novell network

-        Implementing a dBase interface to accounting system

-        Assisting with quality control documentation, including CAD drawings

Community and Volunteer Activities

Columbus Ruby Brigade        Nov 2007 – Jun 2010

Ohio LinuxFest        Oct 2003, Oct 2004

Canton Linux Enthusiasts        Aug 2001 – Aug 2007

Central Ohio Linux User Group        Aug 1995 – present

Greater Columbus Free-Net        Jul 1994 – Dec 1996

The Independent (Central Ohio student newspaper)        Jan 1992 – Jan 1994

Events Editor / Copy Editor

The Independent was an independent student newspaper distributed at Ohio State University and other colleges and universities in central Ohio. My responsibilities included:

-        Compiling and writing about campus events, along with preparation and layout of a two-page spread

-        Assisting with page layout throughout the newspaper

-        Checking and correcting style, grammar, and spelling in stories throughout the newspaper