Paul Tate

My Skills

Systems

Linux/UNIX: 

I have installed and run many versions of Linux, including Red Hat(and many variants including Enterprise edition and Fedora), SUSE, Debian(and many variants including Mepis and Ubuntu), and Slackware, just to name a few.  Of these, I had administered quite a few as servers of various types.
At home, I run a Mepis server that acts as our gateway, firewall, and router.  We just recently ran ethernet cables under the house, and I patched them into a wall plate, which then plugs into the switch for the house.  Since security is a big concern for me, I setup a subnet exclusively for the wireless network.  This was so that any wireless was able to gain access to the internet, but wasn't able to access our internal network.

Windows:

I have installed and run many versions of Windows.  I started with Windows 3.1, and have installed and upgraded nearly each version since then, all the way to Windows Vista.  I have done some minor Windows Administration, including IIS and basic administration.

 

Virtualization:

Using Amazon's Cloud Computing platform, I have integrated the various elements they provide to create a dynamic server situation, which allows for "instances" to be started and stopped on the fly, without interfering with other instances.  Because of the environment, instances are by default, very volitile.  If the instance is terminated, then you can lose whatever is on that system.  In moving to the Amazon's Elastic Cloud Computing(EC2) platform, I had to determine the best way to keep costs to a minimum, but also allow for the fastest turn-around time in the case of instances failure, while also preserving the data we viewed as vital.  So through a combination of using a default image to start from, installing only the required packages, and copying data from the Simple Storage System(S3), I was able to do everything we needed.

Languages

PHP:

I have been programming sites with PHP since 2003.  I have done numerous sites, from simple "brochure-ware" sites to larger "enterprise" level sites.  I have done both backend and frontend programming.  I have done ecommerce on large and small scales.  I have worked with payment systems such as Linkpoint, Paypal, Google Checkout, and Authorizenet.  I have done E-marketing solutions, helped to create a mass-mailing system that would allow each client to log on, update a mailing list(or retrieve that list from data collected from their website), and send a mass-mailing to each person, using their very own template for the email sent out.  I have also worked with Smarty templates, and the PEAR php library(including the DB library for SQL).
Check out my portfolio page for specific examples of sites I have worked on.

Javascript:

My javascript experience is limited, but of the things I have been given to do, I've done them as needed.  I recently started getting into the AJAX arena, dynamically pulling data without having to refresh the entire page.  Specifically, this was for Ashley Furniture stores in Charlotte, NC.  They have a comprehensive internet-based system for their QA representatives, field agents, etc. to log into, and update or request information on sales orders, trouble tickets, etc.  With each new section, we were able to add more and more of the AJAX functionality to the site, increasing speed of the website and decreasing the load on the server.
I have also delved into the Prototype and JQuery frameworks for Javascript, which I've found, greatly add to the functionality, while also speeding up development time.

MySQL, PostgreSQL, SQL:

I started off working with MySQL, but eventually migrated to using PostgreSQL, largely because of the added functionality that MySQL did not have at the time.  I am well versed in database design, having designed many of the sites' databases that was worked on.  Nearly everything we did was dynamic, so it had to have a database system in place for it.  There was also logs, for things such as any e-commerce, that we had to keep on hand.  All of this had to be designed so that we could reference the material in one table from many others, without needless overhead.  Due to having so many sites on one machine, we had to make sure that anything that ran, ran well and efficently.
I have recently been involved in a migration from an old database called FileMaker, into a PostgreSQL database.  Since the data is very large and varied, it wasn't an easy task.  It included automating nightly pulls of the data from a XML extract of FileMaker, parsing and cleaning those files, and then importing them using SQL statements.  The complexity and scope of the data is so large, it was difficult smoothing determining what was needed, and how exactly they fit together, in order to best design the database backend.  But through the entire experience, I was able to learn a great deal about the data itself, helping me in later usage of the data.

BASH, Perl:

I used both BASH and Perl(as well as some php) for shell scripts while doing system administration on the servers.  One of the things I had to do was add sites to the server.  This included adding them to apache, copying the required files over(and ensuring the permissions were set correctly), possibly adding a HTTPS section to the site for secure communications(e-commerce especially), creating log files for each site, etc.  A script was created, and later improved upon, that took care of much of this functionality.  What previously had taken upwards of 30 minutes, and sometimes missed steps, now took less than 5 minutes from start to finish.
I've also used a combination of BASH and Perl to automate the FileMaker->PostgreSQL transition.  And more recently, I've used bash to assist in the automatic startup of new "instances" in the Amazon Cloud Computing platform, allowing fresh clean instances to be started, but then pulling in the data we needed to enable them to run as the discreet servers we needed.

CSS:

My experience with CSS is beginner to mid-level.  I know enough to do some of the basic things, I can pretty quickly find out how to do some of the more complicated things.  I can, and will, learn though as time goes on, as I continue to develop websites both for myself(this one included), as well as friends and other potential clients.

Networking

Firewall/Gateway/Router:

I run a combination firewall/gateway/router on my home Linux machine.  At work, I ran the same.  I understand many of the underlying concepts of each, how and when to use them.  I have personally ran and administered my personal firewall for over 5 years now.  At U.S. NetworX(USNX), I administered the local machine for approximately 2 years.  And before that, at SAIR, I worked with others administering the local firewall for approximately 1 year of the time I worked there.  All three cases had separate needs.  My personal one ensures nothing comes in, but allows me to leave the network unhindered.  At SAIR, we had our web and mail servers at the office, so I had to make sure that certain traffic could gain access to certain subnets, but not others.  Then at USNX, I had to open ports for VNC to allow certain co-workers to make demonstrations to clients who were in other cities, and sometimes other states.

Physical(Punchdowns, Switch/Hub, Ethernet):

While working at SAIR, we moved into a new building.  I helped run the Ethernet cables, punch down both ends of the cables, and ensure they worked.  I also helped create patch cables for the switch hook-ups.  At home, I also did much the same.  I've worked with 10/100 to Gigabit switches.  I understand the differences between switches and hubs, and when it's important to use one or the other.  Now days, it's typically best to just go with a switch, but at some point in the recent past, the price difference made this an important piece of information to know.

Virtual(TCP/IP, LAN, VPN):

I have worked almost exclusively on TCP/IP connections.  I have administered quite a few LANs.  I have even setup a couple of VPN's lately.  In fact, I'm going to be working very soon on setting up a VPN for my LAN, allowing access from outside the firewall without compromising things.

Certifications

SAIR Linux/GNU Certified Engineer(LCE):

As part of the work environment at SAIR, I helped to create the tests.  As such, I had to have an indepth knowledge of what we were working on.  Through creating these tests, and learning the material surrounding them, I was able to obtain an LCE.

Comptia Linux+:

I took this test while working at SAIR, and passed.  It included both hardware and software portions of the test, both of which I passed.