Computer programming is tremendous fun. Like music, it is a skill that derives
from an unknown blend of innate talent and constant practice. Like drawing, it
can be shaped to a variety of ends -- commercial, artistic, and pure
entertainment. Programmers have a well-deserved reputation for working long
hours, but are rarely credited with being driven by creative fevers.
Programmers talk about software development on weekends, vacations, and over
meals not because they lack imagination, but because their imagination reveals
worlds that others cannot see.
- Larry O'Brien and Bruce Eckel in
Thinking in C#
In my case, substituting "system administration" for "computer programming" is
equally as applicable.
Table of Contents (Quick Links):
•
Learning
I'm convinced that as human beings, the single-most important skill we have
is the ability to learn. We are born with an innate drive to know and
understand the world around us. I have cultivated this ability, and all of my
experience with Information Technology is one of the results. Moreover,
working with IT helps me to continue developing this ability, as there are
always new computer platforms, languages, hardware, etc. to learn in this
industry. Therefore, the most prized and useful tool in "my IT toolbox" is
the ability to quickly learn and understand new technologies. In light of
this, if you don't see something you are looking for amongst the lists that
follow, please allow me the opportunity to add it, by learning something new.
•
Teaching
Second to learning is the ability to pass what I've learnt on to others. In
other words, the second most important skill that I have, and continue to
cultivate, is the ability to teach. I'm not satisfied with keeping knowledge,
skills and experience to myself. I believe that we have a responsibility to
those around us and to our successors. I strive to ensure that everyone who
has the opportunity to work with me is left with greater understanding than
when we first met. I love to see the gleem in people's eyes that happens when
they learn and understand something new and useful about the technology they
use. It is extremely important that whereever I tread, I leave a positive
legacy of understanding behind.
•
Programming/Markup Languages
Language |
Proficiency Level (expert, advanced, intermediate, basic) |
Read/Debug |
Write |
Perl |
expert |
yes |
yes |
C |
advanced |
yes |
yes |
Unix shell scripting (Bourne and csh) |
expert |
yes |
yes |
PHP |
advanced |
yes |
yes |
HTML/CSS |
advanced |
yes |
yes |
XML |
intermediate |
yes |
yes |
C++ |
advanced |
yes |
yes |
Tcl/Tk |
basic |
yes |
yes |
Applescript |
basic |
yes |
yes |
Java |
intermediate |
yes |
yes |
Python |
basic |
yes |
yes |
Javascript |
basic |
yes |
no |
x86 Assembly |
intermediate |
yes |
yes |
•
System/Network Administration
- Linux
- Debian and Debian-based (e.g. Ubuntu, Knoppix)
- Red Hat and Red Hat-based (e.g. CentOS)
- SUSE
- Slackware
- Custom-built (i.e. distributions I've created)
- Solaris
- Mac OS X
- OpenBSD
- FreeBSD
- BSDI
- Irix
- Windows 98
- Windows 2000
- Windows XP
- Windows 2003
- Windows Vista
- Cisco IOS
- Mikrotik RouterOS
- System and Network Troubleshooting
•
Software Programs
- Sendmail (mail server)
- Zimbra (mail server)
- ISC BIND (v8 and v9, DNS server)
- ISC DHCP (DHCP server and tools)
- Apache (web server)
- IIS (web server)
- MySQL (database server)
- Proftpd (FTP server)
- wu-ftpd (FTP server)
- OpenSSH (SSH client and server)
- OpenSSL (secure communication library and tools)
- OpenLDAP (Lightweigh Directory Access Protocol server)
- X-windows (Unix GUI client and server)
- Confluence (wiki)
- mediawiki (wiki)
- Jira (bug/issue tracking)
- Subversion (version control)
- git (version control)
- Samba (SMB protocol file server)
- DRBD (redundant storage, i.e. networked mirroring)
- word/text processors, text editors, etc., including Microsoft
Word, Emacs, VI, Tex/LaTex)
- spreadsheets, including Microsoft Excel
- mail clients, including Microsoft Exchange, Mail.app,
Pine/Alpine, Elm, Mutt
- web browsers, including Microsoft Internet Explorer, Firefox, Safari,
Opera
- connection/file transfer programs, including telnet, ftp, ssh, scp,
sftp, Putty, Fugu, Filezilla
- network troubleshooting tools, including ping, ping6, traceroute,
traceroute6, tracert, ifconfig, ipconfig, netstat, tcpdump,
ethereal/wireshark
•
Other Computer Skills
- Software RAID on Linux (MD tools)
- Software RAID on Solaris (Disk Suite)
- LVM (Logical Volume Management) on Linux
- AOE (ATA Over Ethernet)
- NFS (Network File Sharing, Linux, Solaris, BSD, Mac OS X)
- Operating System Firewall/Packet Filters
- Linux Netfilter/iptables
- OpenBSD PF
- IP Filter on Solaris
- IP Filter on FreeBSD
- Virtual machines
•
Internet Protocols
- SMTP
- POP
- IMAP
- Telnet
- FTP
- HTTP
- DNS
- DHCP
- LDAP
- RIP
- ICMP
- TCP
- UDP
- IP
- IPv6