Summary

I'm a DevOps Engineer with over 12 years of experience managing Windows, Linux, UNIX, and Macintosh systems. This means that I look at the whole picture, not just System Administration or Software Development. Shepherding a system through the creation and deployment process, and seeing the customer pleasure at having things work the way they need it to, is a particular joy of mine. Making people's lives better is the point of technology, after all.

I am comfortable in a wide range of working conditions. Work environments have been heterogeneous (Windows, OSX, and several flavors of Linux), small to medium sized (from 10 to 120 servers, 20 to 300 workstations), and mixed locations (all local to all remote teams).

Job History

OrcaTec, LLC - Developer

Atlanta, GA (Telecommute) - 2012-2014

OrcaTec is in the litigation support industry (they help their clients reduce the costs of being sued). OrcaTec is primarily a software-as-a-service company, allowing OrcaTec to host customer data. While working here, my focus has been on improving the GUI. This has involved refactoring code heavily, adding new features, and adding new tests to cover existing and new code.

The team structure at OrcaTec is geographically very diverse. In addition to my own telecommuting, I have teammates in many states. We all work remotely, and we all work together to make the product the best that it can be.

Choopa.com - Developer

Sayreville, NJ - 2012

As a developer at Constant.com (renamed from Choopa.com in Jan, 2012), I worked with a variety of technologies, with the heaviest focus being on OpenStack and Nagios. I helped bring two products to production level availability for their customers (specifically: the Dedicated Cloud Server and Backup systems).

6th Avenue Electronics - Systems Administrator, DevOps Engineer

Springfield, NJ - 2005-2008, 2011

In 2007, 6th Avenue began switching from their then-current POS system (named Tyler) to SAP. At the end of 2010, SAP was declared unworkable, and the effort was begun to switch back to Tyler.

The environment at 6th Avenue covered a wide range of platforms spread out over 120 servers (both physical and virtual). We had VMware ESX, Windows Server 2003, Windows Server 2008, CentOS Linux, Suse Linux, and Debian GNU/Linux. In 2011, I was brought back to transition the point of sale system and become the IT Manager. At the time the point of sale transition was completed, we had a team of 6 people managing the servers and about 300 desktops.

Datapipe, Inc. - UNIX Developer

Jersey City, NJ - 2008-2011

Datapipe manages thousands of customers servers. Many of these servers are connected to various shared storage systems, including 3Par, Isilon, and backup servers. Datapipe required an ability to do reporting on what data was being stored on these systems for each client, and then report that data back to billing. In addition, Datapipe required monitoring of the backup systems to ensure timely and complete backups of client data. My duties primarily focused on making these systems work well.

My team structure is worth describing briefly as well: My immediate manager worked out of Austin, TX. One coworker worked in the same building as myself, and I had two "extended" teammates who worked in Jersey City, NJ (I worked in Somerset, NJ). The extended team included the Windows developers, while I was on the UNIX development team.

Diversified Systems - Systems Adminisrator / Developer

Hackettstown, NJ - 2002-2005

Diversified Systems is a small company that focuses on low voltage wiring and subcontracting. While there, I wore many hats, and did work on every system. The total number of servers for this company was less than 10, and the entire IT department consisted of myself.

Ciber, Inc. / Decision Consultants - Member of Technical Staff

Greenwood Village, Co - 1999-2002

Decision Consultants (DCI) was acquired by Ciber, Inc., in 2002. While working for DCI, I was contracted out to Coors, IBM, and a .com named "X-Care" (no longer in business). The points below come from all of those places.

Robert Half International - Technical Support

Boulder, Co - 1999

Robert Half International's client, StorageTek, provided large enterprises with long term backup solutions (typically involving dozens of tape drives, thousands of tape cartridges, and robotic tape libraries to manage all of it).

Sykes Enterprises - Systems Technologist

Denver, Co - 1998

Working for Sykes Enterprises, I was contracted out to Sun's internal Resolution Center. I worked with Sun employees around the world to resolve their issues with the workstations and servers they relied on daily.

Fabian Corporation - System Administrator

Strousdburg, Pa - 1998

Fabian Corporation was a small virtual hosting provider for web sites during the fledgling web days, even before the dot-com era. A typical customer made a static web site and uploaded it via ftp to show to any web site visitors.

MaxTech Corporation - Developer / System Administrator

Rockaway, NJ - 1995-1997

I was hired at MaxTech as a customer service representative. Over the time I worked there, I earned the opportunity to participate in system administration and the development of a new call tracking system to be used by the customer service team.

Personal and Side Projects - Developer, Systems Administrator

1995-Current

When I'm not working on projects for my employer, I'm working on projects for myself, or side projects for people who get in touch with me to make something for them.

Specific Skills

Software Configuration Management Tools

Time Used Last Used Proficiency
Git 2 years 2014 Fair
Mercurial 4 years 2014 Good
Subversion 2 years 2010 Good

Markup Languages

Time Used Last Used Proficiency
CSS 2 years 2014 Fair
HTML 1 years 2014 Very Good
XML 2 years 2011 Fair

Programming Skills

Time Used Last Used Proficiency
Object-Oriented Design 8 years 2014 Very Good
Object-Oriented Programming 8 years 2014 Very Good
Refactoring 4 years 2014 Very Good

Database Skills

Time Used Last Used Proficiency
PostgreSQL Database Administration 1 year 2011 Fair
Relational Schema Design 5 years 2014 Very Good
Structured Query Language (SQL) 12 years 2014 Very Good

Operating Systems Administered

Time Used Last Used Proficiency
Linux (Debian, RedHat, Suse, Ubuntu) 12 years 2014 Excellent
UNIX (Solaris, AIX, HP-UX) 5 years 2011 Very Good
Microsoft Windows (2008/7/Vista/2003/XP/NT/98/95) 12 years 2011 Very Good

Database Servers

Time Used Last Used Proficiency
PostgreSQL 5 years 2011 Fair
Microsoft SQL Server 3 years 2008 Fair
MySQL 3 years 2014 Fair

Applications

Time Used Last Used Proficiency
Ipswitch What's Up 2 years 2008 Good
Nagios 3 years 2012 Good
OpenStack <1 year 2012 Fair
VMware 6 years 2011 Fair
VirtualBox 3 years 2014 Good
Zenoss <1 year 2011 Fair

Networking and Security

Time Used Last Used Proficiency
Checkpoint VPN 2 years 2007 Fair
Cisco 3 years 2011 Fair
Firewall Design 5 years 2011 Good
TCP/IP 10 years 2014 Very Good

Programming and Scripting Languages

Time Used Last Used Proficiency
Bash 6 years 2014 Good
C/C++ 12 years 2009 Good
Java 1 year 2014 Fair
Javascript 2 years 2014 Good
Perl 6 years 2012 Fair
PHP 2 years 2012 Fair
Python 6 years 2014 Excellent

Education

Bachelor of Science in Computer Science, 2000
East Stroudsburg University, East Stroudsburg, Pennsylvania

Project History

Advanced Search Tool

Period 2014
Company OrcaTec, LLC
Tools Python, jQuery, jQueryUI
Platform Server: TurboGears, Browser (Cross Browser)

At OrcaTec, the primary tool we provided to our customers was the ability to search collections of documents quickly. In addition to having simple search tools, we also had a helper tool in the "Advanced Search".

This tool allowed the user to search based on a dozen different fields, but was still limited and fragile. It was unable to help the user build queries which combined different fields in a single clause. In addition, it had issues with encoding <> in email addresses, and did not support drag and drop on all of our supported browsers.

When this project was completed, this tool had transformed noticeably. It now is its own miniature investigative tool, allowing customers to easily search through collections of documents. One customer reported narrowing their searches from 80,000 possible documents down to under 2,000 within an hour through use of this tool. Due to extensive test coverage when the code was published, even the problems that were found were quickly fixable. All of this was accomplished while reducing the total code for it by 50%.

StorageWeb

Period 2010
Company Datapipe
Tools FreeBSD, Python, Apache, PostgreSQL, TurboGears
Platform FreeBSD, Web Browser

Datapipe manages thousands of servers. Many of these servers are connected to various shared storage systems, including 3Par, Isilon, and backup servers. Datapipe required an ability to do reporting on what data was being stored on these systems for each client, and then report that data back to billing. StorageWeb was written to fill that need.

Paster to Apache/mod_wsgi Conversion

Period 2013
Company OrcaTec, LLC
Tools Python, Apache, mod_wsgi, Paster
Platform Ubuntu Linux

Paster is meant to be used in a development environment, allowing the developer to use a (single threaded) lightweight, easily managed webserver while writing code before it goes to production. At OrcaTec, we were using Paster both in development and in production. Due to the demands being placed on Paster (in many instances, loading up documents that were over 100M), the entire system could appear (to one user) to freeze up due to it responding to a request from another user.

After analysis, we were able to determine that Paster was no longer suitable for our needs. Since Apache, with mod_wsgi, provides an at least adequate performance web server (in comparison to others like Nginx), and the Apache configuration was already known to the team, we chose to switch from Paster to Apache. This allowed us to have Apache itself serve up static files (like images, css files, and javascript files), leaving the dynamic pages to the Python code.

SAP to Tyler Conversion

Period 2011
Company 6th Avenue Electronics
Tools AutoIt3, CentOS Linux, Python
Platform Server: CentOS Linux, Client: Windows

6th Avenue Electronics found that SAP was not a workable solution for them. The decision was made to switch back to the Tyler POS system, clearing out old mistakes and improving maintainability. I managed the technical aspects of the migration, while my immediate managers handled the business aspects.

Due to the costs associated with SAP, we had just over three months, in total, to complete the transition. We were successful.

UNIXOps

Period 2010
Company Datapipe
Tools FreeBSD, Python, Apache, PHP
Platform FreeBSD, Web Browser

Datapipe provides managed hosting for its clients. This means that customers contact Datapipe to report issues on servers, and Datapipe administrators log in to customer machines as root to fix the problems. UNIXOps provides a secure method to allow the administrators a one time SSH key to login to the customer equipment, along with providing detailed logging of everything the administrator does for later review.

PyTyler - Tyler POS to PostgreSQL Migration Tool

Period 2007, 2011
Company 6th Avenue Electronics
Tools Python, PostgreSQL, Tyler POS System
Platform HP-UX, Debian GNU/Linux

Tyler is a point of sale system used by many smaller retail establishments. Tyler stores data in a set of proprietary ISAM files. These files do not have a modern access tool available (such as Crystal Reports) to perform reporting.

The users needed an easy way to report on the data, and this meant a tool was needed to copy the data from the on-disk files into a formal SQL server of some variety. In less than a month, I wrote a tool in Python to read the Tyler data files and load the information into a PostgreSQL database on a nightly basis.

This tool copied the entire database, comprising approximately 36,000,000 records, 140 tables, and 22 gigabytes of disk space. The program worked by reading the structure definition from the configuration files and recreating the structure in PostgreSQL. PyTyler would then read each table, row by row, parse the data in the row, and load it into PostgreSQL server.

This allowed the users to use standard ODBC drivers to access and report on the data.

VMware Implementation

Period 2005-2007
Company 6th Avenue Electronics
Tools VMware Virtual Infrastructure 3, VMware Virtual Center
Platform Linux (Various distributions), Windows Server 2003

6th Avenue Electronics, like many companies, had a growing need for individual servers for various internal services. They chose to implement VMware to reduce hardware costs, downtime, and environmental costs.

SBN Implementation

Period 2004-2005
Company Diversified Systems
Tools SBN, Sybase 11.0, PHP
Platform Microsoft Windows 2000, Debian GNU/Linux

SBN, published by IBSoft, is an ERP system for the alarm industry. Diversified Systems is a subcontractor working in the low voltage electrical industry, including alarm systems, stereo systems, central intercom systems, structured wiring, and central vacuum systems. I implemented all aspects of SBN at Diversified Systems.

The provided client interface was unsuited for the intended use. This resulted in much in-house development to augment the SBN client with a web-based interface.

SQL-Ledger Implementation

Period 2005
Company Diversified Systems
Tools Perl, Apache
Platform Apache, Debian GNU/Linux

The SBN accounting system was inadequate for the needs of Diversified Systems. This lead to the selection and installation of an external accounting package.

KP-CIS

Period 2001-2002
Company Ciber, Inc., contracted to IBM
Tools Perl, Cygwin, GNU Make
Platform Server: AIX, Client: Windows NT

IBM was under contract to develop a complete clinical information system for Kaiser Permanente clinics. I participated as a member of the environment team, focusing on improving the build processes.

You may download my virtual business card. Alternately, the image below is my vcard, embedded as a QRCode. Using Barcode Reader (Android) or Scanlife (iPhone), you can scan it and add me as a contact directly on your phone.

QR-Code: Michael Pedersen's VCard