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.