Michael J. Pedersen
42 Henry St
Oxford, NJ 07863
m.pedersen at icelus dot org
(908) 283-0318
Search for
Summary
I'm an IT Generalist with over 15 years of experience managing Windows, Linux, UNIX, and Macintosh systems. This means that I tend to work in the cracks in the organizations that hire me: I get between systems that don't talk to each other, and make them talk. I work between the IT department and other departments to find out what everybody needs, and then build solutions that make everybody's day better. I even work inside of the IT department to get sub-groups that don't work well with each other (for instance, system administration and networking often have issues), and help them resolve their issues.
Because of this, I find myself working heavily with systems automation, and I take great joy in helping somebody remove hours of repetitive work from their work days, regardless of what department they work for, or what they do. Making someone's work life better is the point of technology, after all.
Job History
- Open Source Software Contributions2002-Current
-
- Starting in 2009, I began participating in the TurboGears project, working primarily on the documentation. In 2011, I took over as project maintainer, and we have put out three releases so far this year.
- Contributed code to MythTV project, allowing users to save recordings using custom cutlists, which allowed for easy removal of commercials.
- Contributed documentation to WebGUI project, showing how to design a custom theme for WebGUI.
- Contributed documentation to libpqxx project, showing how to compile libpqxx using MinGW/MSys on Windows.
- 6th Avenue ElectronicsSpringfield, NJSystems Administrator, IT Generalist2005-2008, 2011-Current
-
In 2007, 6th Avenue began switching from their current POS system (named Tyler) to SAP. At the end of 2010, SAP was declared unworkable, and I was asked to come back to help them switch back to Tyler.
- Successfully lead migration from SAP to Tyler Point of Sale system.
- Installed and configured Zenoss for full systems monitoring.
- Spearheaded server room cleanup: Shut down over 30 servers, removed over a mile of wire.
- Installed Drupal CMS for the IT department to use as a way to document everything that it takes to manage an IT department.
- Developed numerous data validation scripts to validate and scrub data coming from SAP for import into Tyler system.
- Created automation scripts to easily reconfigure hundreds of terminal definitions within Tyler that could not be done via simple data import.
- Wrote automated installer for the Tyler client program to incorporate the program plus the mandatory pieces that we needed.
- Developed program to copy all sales data from Tyler POS system (which uses only ISAM files) to PostgreSQL database.
- Maintained Tyler point of sale system on HP-UX (and, later, Linux), responsible for inventory, sales, purchasing, and accounting for the entire company.
- Configured all servers for newly implemented SAP system.
- Performed field certification of MaxDB system for CommVault, providing reliable and supported backups for SAP databases.
- Exported data from Tyler point of sale system for import into SAP system.
- Retrieved bulk information from Tyler point of sale system for audits.
- Implemented VMWare Virtual Infrastructure 3.
- Created an internal wiki for use by the IT department, including populating with over 30 pages of documentation at time of deployment.
- Rack mounted, installed, and prepared newly arrived servers for use in projects.
- Implemented ticket tracking system for help desk issues.
- Deployed Windows Software Update Server for Microsoft product updates.
- Maintained CommVault backup system and disaster recovery site.
- Frequently wrote scripts to satisfy various company needs using a variety of scripting languages.
- Maintained Active Directory domain, which included complete implementation of group policy structure for users and computers.
- Maintained heterogeneous environment with more than 30 Linux and more than 40 Windows servers.
- Developed intranet pages (using AJAX) to allow customer service representatives to find old invoices in same database.
- Wrote several scripts to extract data from Tyler POS system before PostgreSQL database was available.
- Created intranet pages (using AJAX) to assist in the selling of complex systems.
- Updated customer facing web site to reflect changes to NJ sales tax rates.
- Developed workaround to resolve issue in point of sales system causing store wide sales terminal lockups.
- Datapipe, Inc.Jersey City, NJUNIX Developer2008-2011
-
- Wrote tool to gather performance data from 3Par InServ nodes and display it via our client portal.
- Optimized PostgreSQL database on FreeBSD. Multi-million record insert jobs were taking hours to complete, and the optimization brought that time down to 20 minutes.
- Created internal packages for Bacula (internal name: SureRestore) for all supported platforms.
- Evaluated potential replacements for SVN, including git and Mercurial.
- Updated and maintained the existing backup monitoring tool which reported backup failures to our main ticketing system.
- Developed a system called unixops to allow Datapipe technicians to use one time ssh keys for accessing client machines as needed.
- Created new backup monitoring and reporting system called StorageWeb, enabling a new revenue stream for Datapipe.
- Diversified SystemsHackettstown, NJSystems Developer / Adminisrator2002-2005
-
At Diversified Systems, I was initially hired as a customer service representative. Shortly after I started, though, my abilities to work with the computer were seen for what they were, and I was promoted into managing their system.
- Worked with upper management to completely redesign entire business processes and systems company-wide (accounting, customer service, builder coordination, sales and warehouse management).
- Developed customized interface to new software system using PHP, Apache, and Mozilla. Reverse engineered new system as needed.
- Designed and authored PHP scripts that provided clean access to unstructured data from previous software system.
- Automated sending faxes to field installers, saving four man hours per day.
- Implemented Pluggable Authentication Module support for HylaFAX, which was accepted/integrated into HylaFAX 4.2.0.
- Modified SQL-Ledger accounts receivable report for historical views of accounts receivable. The modified version was capable of showing how accounts receivable looked on a given day.
- Authored new scripts using Perl and PHP.
- Implemented HylaFax fax server for incoming and outgoing faxes, allowing electronic receipt of over 200 pages of faxes per day from field technicians.
- Deployed Unattended, an automated Windows imaging system, to standardize computer receiving and configuration.
- Implemented employee remote-access system, using VPN (virtual private network).
- Deployed SNMP and monitored daily resource utilization.
- Resolved issues with the various systems which Diversified Systems installs in customer homes, including alarm systems, stereos, central vacuums, and structured wiring on a daily basis.
- Converted structured data into a database, and provided training to employees on proper usage.
- Created PHP scripts to provide clean access to unstructured data, and showed employees how to access and use.
- Managed upgrade of entire office to Windows 2000. This involved testing programs for compatibility, replacing obsolete programs, and determining proper installation procedures for undocumented installations.
- Coordinated the activities of field technicians with customers to provide the maximum service level to the customers.
- Ciber, Inc. / Decision ConsultantsGreenwood Village, CoMember of Technical Staff1999-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.
- Ran, and later automated, nightly code compilations for patient records program. This effort saved approximately 1000 developer hours per week. Before this effort, corrupted nightly compilations stopped the whole team until resolved (usually an entire day would be lost). After this effort, no corrupted compilations occurred in six months.
- Revamped and improved scripts used by developers for retrieving the nightly code compilations and to perform their own personal compiles, providing new features as requested.
- Wrote several smaller scripts related to the compilation process, to help developers understand what would be required for their work to be completed.
- Researched/corrected error in Perl, permitting resolution of time-zone conversion issues, enabling global use of data from medical care providers.
- Created Perl scripts to migrate health care provider data between systems.
- Instructed junior developers in the inner workings of C++.
- Integrated AIX/Solaris servers into Windows NT network, allowing developers on Windows to access AIX/Solaris files/printers.
- Developed of a set of Solaris packages allowing deployment of new servers within 2 hours of receipt.
- Developed Ghost-like utility overnight, meeting next-morning deadline for usable computer loads.
- Participated in configuration of training room using Red Hat Linux with Kickstart.
- Assisted customers in resolution of issues with Windows 95, Windows NT, Microsoft Office, and other software packages in use throughout Coors.
- Configured several Sun Ultra servers to work as part of a network. Original condition was such that they were on a network, but not working together. This involved re-mapping user id numbers, and configuring NFS mounts such that the machines worked together.
- Configured and administered a CVS repository.
- Created a set of Solaris packages to allow the deployment of new Solaris servers within 2 hours of receiving them.
- Coded many scripts to perform several daily tasks.
- Re-wrote compilation scripts and files (approximately 400) on AIX and Windows NT/2000 to fix dependency issues, and allow developers to use the daily compilation in a reliable fashion.
- Downloaded and tested new tools to be used for our compilation process, to make sure they still produced correct results.
- Installed perl modules and programs as requested by developers.
- Documented all new scripts and processes, and informed developers when new documents were available.
- Robert Half InternationalBoulder, CoTechnical Support1999
-
- Assisted customers of StorageTek in resolution of problems with both hardware and software products.
- Sykes EnterprisesDenver, CoSystems Technologist1998
-
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.
- Performed remote operating system installations and upgrades.
- Resolved customer issues with Solaris 2.5.1 and Solaris 2.6.
- Wrote a Tcl/Tk script to speed up the process of logging into customers' machines for use in the Resolution Center.
- Wrote a Korn shell script to check a list of users and make sure that all users on the list were valid Sun employees.
- Added new users throughout Sun's internal network.
- Fabian CorporationStrousdburg, PaSystem Administrator1998
-
- Added new domains to Linux servers for web site hosting.
- Added new user logins to servers.
- Set up sendmail to forward email addresses from hosted domains to local users and remote users.
- Performed system upgrades (both hardware and software).
- Performed system backups.
- Dealt with security issues through upgrades, and removal of suspicious software.
- Installed firewall.
- Upgraded and recompiled kernel as needed.
- MaxTech CorporationRockaway, NJDeveloper / System Administrator1995-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 development of a new call tracking system to be used by the customer service team.
- Assisted customers daily with issues installing, configuring, and using their MaxTech modems.
- Discovered bug in the newly released modem drivers for Windows 95 and the MaxTech 28.8kbps modems.
- Created a new Windows based call tracking system to replace the old DOS based call tracking system. Used Delphi and Interbase as the development environment and database.
- Rebuilt Novell Netware server that had experienced hard drive crash. Did so while the server was in Atlanta and I was in Rockaway, NJ.
- Fixed issues with the Lotus cc:Mail SMTP gateway.
- Helped test the new MaxTech website.
- Self-Employed1995-Current
-
- Working on new system (named "Icelus Construction Assistant") to provide complete company management for construction companies, with features including scheduling, service, accounting, and warehouse management. This is being written using TurboGears.
- Created Linux-based network featuring NIS, NFS, DHCP, Linux firewall (using iptables), Samba, SSH and a Subversion server.
- Customized installation of Request Tracker for San Diego firm.
- Created Java plugin for Openfire XMPP server, allowing vBulletin forums to have a working XMPP server for their communities.
- Helped clients, family, and friends resolve various computer and home networking issues.
Specific Skills
- Software Design and Configuration Management Tools
-
Time Used Last Used Proficiency Git 1 year 2011 Fair Mercurial 2 years 2011 Good Subversion (SVN) 2 years 2010 Good - Markup Languages
-
Time Used Last Used Proficiency CSS 2 years 2011 Fair HTML 12 years 2011 Very Good XML 2 years 2011 Fair - Operating Systems Used / Administered
-
Time Used Last Used Proficiency Linux (Debian, RedHat, SuSE) 13 years 2011 Excellent UNIX (Solaris, AIX, HP-UX) 5 years 2009 Very Good Microsoft Windows (2008/7/Vista/2003/XP/NT/98/95) 12 years 2011 Very Good - Programming Skills
-
Time Used Last Used Proficiency Object-Oriented Design 8 years 2011 Good Object-Oriented Programming 8 years 2011 Very Good Refactoring 4 years 2011 Very Good - Programming Languages
-
Time Used Last Used Proficiency Bash 6 years 2011 Good C/C++ 12 years 2009 Very Good Java 1 year 2011 Fair Javascript 2 years 2011 Fair Perl 6 years 2010 Good PHP 1 year 2010 Good Python 4 years 2011 Very Good - Database Skills
-
Time Used Last Used Proficiency PostgreSQL Database Administration 1 year 2011 Good Relational Schema Design 3 years 2011 Good Structured Query Language (SQL) 10 years 2011 Very Good - Database Servers
-
Time Used Last Used Proficiency PostgreSQL 5 years 2011 Good Microsoft SQL Server 3 years 2008 Fair - Applications
-
Time Used Last Used Proficiency Ipswitch What's Up 2 years 2008 Good Nagios 3 years 2010 Good VMWare 6 years 2011 Very Good Zenoss 1 year 2011 Fair - Networking and Security
-
Time Used Last Used Proficiency Checkpoint VPN 2 years 2007 Good Cisco 3 years 2008 Fair Firewall Design 5 years 2008 Good TCP/IP 10 years 2011 Very Good - Education
- East Stroudsburg University, East Stroudsburg, PennsylvaniaGraduated 2000
Bachelor of Science in Computer Science
Project History
- 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. They would do a new installation, though, so that mistakes made with the old system could be removed, and the system could be more easily maintained. I was tapped to manage many of the technical aspects of the migration, while my immediate managers would handle 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.
- Wrote several one-off scripts to check data that was sent in various Excel spreadsheets. Validate that all entries in column A of File 1 / Sheet 1 are in Column C of File 2/Sheet 1.
- Used AutoIt3 to automate the update of several items that could only be keyed into the client. No import existed at all. This reduced work from several hours down to an hour (including the initial script creation).
- Developed an automated installer that was used to handle installing all components (receipt printer, fonts, initial configuration) on every machine in the company.
- Worked with Tyler Retail Systems to configure the server properly.
- Developed snapshot backup strategy that reduces downtime for Tyler to mere minutes per night.
- 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.
- Debugged issues with Python, FreeBSD, Apache, and modwsgi. Turned out to require specific compilation options to get these all working correctly.
- Developed web interface that would allow users to drill down and see how the storage was being used (by client, by server, by data center, by storage type).
- Developed multi-threaded backend daemon which connected to the various storage systems and gathered the data about the stored data for reporting.
- Developed backend daemon that pushed aggregate data to the billing system, allowing billing to finally happen for all clients.
- PyTyler - Tyler POS to PostgreSQL Migration Tool
-
Period 2007 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-like 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.
- Developed a tool to read configuration of ISAM files, and generate SQL "create table" statements mirroring the structure of the file.
- Created a specialized reader class which could read the data stored in the ISAM table.
- Developed small web server application to provide status page for administrators while migration tool runs
- Reduced total run time from 13 hours to 5 hours by converting the entire application into a multi-threaded application.
- Verified that data is being copied into the system correctly.
- Tyler POS system is still in production, so data copy runs every night to bring in updated data from previous day's activities.
- 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.
- Configured all aspects of SBN from base installation to full production mode, with active communication with users at each step.
- Implemented over 50 custom screens and reports using PHP on an Apache web server. This included easier access to customer searches, more usable technician schedules, and easier input for large quantities of data.
- Developed automated system for the sending of faxes to field technicians,saving over 5 work hours per day.
- Implemented an automated backup system for the database.
- Administered Sybase instance on day to day basis, resolving issues with full log files, etc.
- VMWare Implementation
-
6th Avenue Electronics, like many companies, has a growing need for individual servers for various internal services. They chose to implement VMWare to reduce hardware costs, downtime, and environmental costs.Period 2005-2007 Company 6th Avenue Electronics Tools VMWare Virtual Infrastructure 3, VMWare Virtual Center Platform Linux (Various distributions), Windows Server 2003 - Installed and configured iSCSI based SAN disks.
- Installed and configured all aspects of VMWare Virtual Center and VMWare Virtual Infrastructure 3.
- Developed (and tested) virtual machine templates to allow rapid deployment of new virtual servers using various operating systems (Windows XP, Windows 2003, Debian GNU/Linux, RedHat Linux).
- Monitored daily usage of VMWare hosts.
- SQL-Ledger Implementation
-
The SBN accounting system was inadequate for the needs of Diversified Systems. This lead to the selection and installation of an external accounting package.Period 2005 Company Diversified Systems Tools Perl, Apache Platform Apache, Debian GNU/Linux - Authored script to automatically migrate necessary data (customers, bills to be collected, etc.) from SBN to SQL-Ledger.
- Installed and configured SQL-Ledger.
- KP-CIS
-
Period 2002-2003 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.
- Resolved issues with corrupted builds occurring weekly, resulting in savings of over 1000 work hours every week.
- Developed and improved approximately 450 compilation scripts and Makefiles on AIX and Windows NT/2000, fixing dependency issues and allowing reliable use of nightly code compilations.
- Evaluated, tested, integrated and deployed new compilation tools.






