UNIX Geek For Hire

Seeking employment as a UNIX Architecture or Systems Programming expert. Expert in Solaris with experience implementing and managing Veritas storage and clustering products on entry level to high-end servers.

Location: Wauwatosa, Wisconsin, United States

Learn about honey bees

Friday, April 22, 2005

Performance Analysis - Job Scheduling with Appworx

Led the performance analysis and load testing efforts to identify key bottlenecks in Appworx job scheduling. I created the design of experiment, verified its viability with key vendors and technical experts, coordinated compute and human resources for environment set-up and load testing, and analyzed data for the final report out. The performance analysis suggests that relatively straight-forward architecture changes will result in a 300% throughput improvement using existing compute resources.

Conference - Sun Users Performance Group (SUPerG)

Attended SUPerG, Sun's premier conference for Sun customers with high-end business and technical computing needs. Attended talks on various aspects of server performance tuning, recent advances in Sun Software, upcoming advances in Sun hardware, identity management, and overall strategy for various Sun product areas. Spoke with domain experts and key decision makers about areas such as server IO improvements, Grid Computing for business applications, and high-end server performance optimization strategies. This event along with ongoing research provides much insight into where the Sun is going over the next several years to enable astute architectural decisions.

Sunday, April 10, 2005

Brainbench - 98th Percentile of Solaris Administrators

Completed the Brainbench Assessement for UNIX Administration (Solaris 8) and scored higher than 98% of all others that had completed the test. This sets my proficiency level as an Expert in Solaris System Administration.

Sunday, April 03, 2005

Training - Directory Server Maintenance and Operations

Completed Sun ONE Directory Server 5.x: Maintenance & Operations (WMO-DIR-2337) training course. While taking the course and afterwards I have been successful in configuring key functionality including installing new servers, configuring replication, creating a custom schema, and using LDAP as a naming service for Solaris 9 and Solaris 10 servers.

Friday, March 18, 2005

Perl - Performance Monitoring and Capacity Planning

Designed and wrote a tool, Perfstat, for collecting and graphically displaying key server performance metrics. Perfstat is a multi-tier application written primarily in Perl with a small amount of Bourne shell. The tiers involved are:
  • Agent - Perl script that collects data from standard performance monitoring tools (vmstat, iostat, mpstat) and from other kernel statistics using the kstat module. The agent streams data to the collector for near real-time analysis.
  • Collector - The collector accepts data from each of several hundred servers and stores it in Round Robin Databases using the Perl module provided with RRD Tool. Detailed analysis by custom scripts or as part of service calls is made possible through compressed archives of all data received.
  • Web Interface - The web interface is written using the CGI and RRD perl modules. It provides detailed graphs and basic metrics about arbitrary time periods for arbitrary numbers of servers in just a few seconds.
Perfstat was born out of frustration with commercial products that were able to only store 30 days of data, required hundreds of gigabytes of storage space, and took several minutes to give the most basic information about a single server. For the first time in this organizations history, server data can be collected for hundreds of servers, retained at increments no more coarse than 2 hours for three years, and consume less than 100 GB of storage. Additionally, this is the first tool to give CPU, memory, IO, and network capacity data in a single view.

Enhancements written in 2005 to the interface have allowed for what-if scenarios useful for server consolidation, server migration, and other capacity planning efforts. This tool is used on a daily basis by the key stakeholders of the most critical systems for day-to-day operations and long term projections. With less than $10k of hardware and labor costs, this tool has saved over $300k in its first year of operation.

Sunday, September 12, 2004

Midrange Oracle 9i RAC on Solaris 9

Developed standard operating procedure for installing Solaris 9, Veritas Storage Foundation 4.0 for Oracle RAC, and performing cluster configurations. Beyond initial installation, procedures developed include creating new service groups, cloning service groups, and performing basic trouble shooting. Subsequent to creating this standard operating procedure, it has been followed as the basis for two Oracle 9i RAC implementations on Sun Fire 6800's and has served as the basis for upgrades of older Oracle 9i RAC installations to Solaris 9 and Veritas Storage Foundation for Oracle RAC 4.0.

Saturday, May 22, 2004

High-end Oracle 9i RAC on Sun Fire 15k's

UNIX Technical Lead on a project to convert a 60-CPU, single-instance Oracle database to a three-node Oracle 9i RAC cluster using Sun Fire 15k's, Solaris 8, and Veritas Database Edition Advanced Cluster 3.5 MP2. As of April, 2005 this cluster has been in production and stable for about a year. I currently am providing technical oversight on its upgrade to Solaris 9, Veritas Storage Foundation for Oracle RAC 4.0 MP1, and UltraSPARC IV boards.

Saturday, August 30, 2003

Certification - RHCE

Passed the Red Hat Certified Engineer exam with a cumulative score of 97.3%. Certificate number 809003218208507.

Monday, August 22, 1994

BIND - DNS maintenance

From 1994 through 2002, I was responsible for managing DNS using BIND versions 4, 8, and 9. I have led upgrades from version 8 to version 9, have built and installed BIND, and have tought others how to manage DNS and BIND. Over the past couple years, I have had occasional involvement with Cisco Network Registrar (CNR) and troubleshooting DNS problems in a CNR envrionment.

C/C++/Make - Code cleanup and maintenance

My initial duties at CAE led me down the route of performing clean-up of a significant body of code written in C and C++. Many of the programs were related to each other and had started out based on the same libraries. However, over time each program's version of the library had diverged from the original and from its peers. Coupled with the lack of function prototypes and blissful ignorance of options to tell compilers to emit warnings, the code I inherited was a mess. To resolve this, I converted the code to a style that K&R would be proud of, designed a hierarchical source code tree, and introduced a proper build process using Make. Upon completion of this work, the code would build cleanly (no warnings from gcc -Wall) on Solaris and HP-UX. The portions that were required on IRIX and Linux also compiled without problems.

Much of this code that I maintained was used for self-service account creation, used sockets for client-server communication, and interoperated with an in-house database.

Friday, July 08, 1994

Job - UW Madison - UNIX Systems Programmer

Dates: July 1994 - July 2000

I joined the UNIX Systems Administration team with an initial focus of maintenance of the code required for user and server administration. Over the next six years, I quickly became the top UNIX Administrator on the team and served as Interim UNIX Systems Manager for a time. At no time in my last four years with UW Madison was I regarded as anything but the top UNIX Administrator for the team.

Monday, May 10, 1993

Job - UW Madison - Hardware Technician

Began my IT career as a Hardware Technician for the University of Wisconsin - Madison's Computer-Aided Engineering Center. Key duties included installing and troubleshooting PC's, Macs, UNIX Workstations, printers, networks, and security systems. I served in this position for about 15 months before becoming a UNIX Systems Administrator.