If you are considering offering me work

Introduction

I cannot think of another industry where terms and titles are so nebulous, and pinning down the right candidate, and for that matter the right employer, are so difficult. I also strongly dislike the "check box" style of recruitment, where vendors and version numbers are compared between candidate CVs and job specs, and a tally decides the candidate. If you are thinking of employing me, or offering me work on a contract basis, please take a quick read of this page to get a better idea if we are suitable for each other.

I firmly believe in the sentiments expressed in this blog post, namely:

My career began with a small (now defunct) web hosting company, where I had the opportunity to learn all kinds of heterogeneous systems, applications, and programming languages in order to support features that end-users wanted. If my job had consisted of “read logs, identify problem, push button” then I have no doubt in my mind that it would have taken me five times as long to build the knowledge I need to do what I do now.

The problem is that because there are no real material limitations beyond labor, this particular area of IT culture is growing, evolving and adapting much faster than we can adjust. Unlike iron, systems management products aren’t liquid commodities.We can’t drop in ManageEngine or SCCM to replace Kaseya, and we can’t drop in Chef to replace Cfengine. After decades, we still can’t make the Simple Network Management Protocol less than hugely complicated. Because of the lack of interoperability standards, there’s substantial re-engineering efforts involved which often makes it less like replacing a product and more like putting your house on stilts while you reconstruct the foundation. It’s very important to make sure that the divide between release engineers and system administrators doesn’t grow too large, because the sysadmins need to actually know what’s going on.

As we deploy our systems management products, improve our server-to-admin ratios and displace our mid-level engineers, and especially as we evaluate sweeping paradigm shifts (or pendulums) like virtual desktop infrastructure, we need to be mindful that we have a responsibility to the people under our employment. We need to be aware that while we need a job done, their careers don’t end at the desk they’re now sitting in, and if we poison the well now, there’s going to be nothing to drink from later.

UNIX Systems

I have been using UNIX-based systems professionally for eight years, and in total for about a decade. I prefer "free" UNIX-type systems such as Linux, FreeBSD and OpenBSD (all of which I have supported in a production environment). I have used Solaris 9 and 10 (and I like it) and continue to do so daily, HP-UX 10.20 and 11i (I can put up with it) and AIX 4.3.3 through to 5.2 (I’m close to despising it). As far as Linux distributions go, I’ve the most experience with Debian and RHEL derived systems (such as RHEL, Fedora and CentOS), bar a passing phase of running SuSE on AS/400-iSeries LPARs some years ago, which was interesting if not fun.

In general I am not a proprietary UNIX administrator. If you need to roll out a rack of pSeries machines, or you monitor a colo full of HP-UX boxes with OpenView, then I am probably not the person for you. However, if you need to build *AMP stacks, run and tune J2EE application servers from several vendors (I’m very experienced with Sun’s Glassfish), custom-compile Apache webheads, maintain Sendmail instances, require scripting in Perl/Ruby/various shells, and need someone with a very deep understanding of UNIX fundamentals and performance tuning, then I might well be.

In short: "We’ve got a hanging process, can you run truss/strace on it and tell us what’s going on" is my kind of question. "Can you explain to me how to manage this bunch of IBM jfs filesystems" isn’t.

Microsoft Windows

I’ve used and am comfortable with every major modern version of Windows (NT4 through to 2008 Enterprise) and have a good working knowledge of Active Directory, although I do not consider myself an expert and would be unable to tackle, say, a full AD redesign, migration or merge. I’ve supported and tuned Windows in a production environment (and continue to do so with my current employer). I actively use both generations (VS 2005 R2 and Hyper-V) of Microsoft’s virtualisation products and have significant experience with SQL Server 2000 and 2005 in a production environment.

Whilst I prefer not to use a Windows stack, I can and do on a daily basis. I’ve experience with .NET applications running under IIS 6 and 7, and am comfortable with the Sysinternals tools, and what they tell me about a Windows box.

Networking

Whilst I am most comfortable a the sysadmin/application support/performance tuning/release management role I can hold my own in the networking stakes. I have a very deep understanding of DNS, having been a near-full-time DNS admin is a previous role. I’m confident with both Microsoft and BIND 9 nameservers. I’m also confident with all layers in the OSI stack, and their impact on production environments. I’ve undertaken a quite significant amount of packet analysis during my career. Subnets/VLANS/(R)ARP/CIDR are all concepts I am familiar with. I could happily and usefully contribute to network management, but do not consider myself an expert, and would not undertake a green field build of a new network. I’ve some experience with IOS from Cisco PIX devices.

Java and JVM Performance Tuning

I’ve a significant history of JVM performance tuning under the 1.4.x and 1.5.x series of JVMs on the following platforms: Windows Server 2K*, RHEL4, Solaris 10, OS/400. Whilst primarily with the Sun JVMs, this also includes IBM and BEA’s offerings. This includes interpretation of stack traces, forced heap dumps, JMX metrics and working closely with developers analysing both systems in production and those undergoing load/stress testing. I’ve undertaken performance tuning exercises for companies including, Bank of New Zealand, ICBC Hong Kong, Bank of China, Silvercreek Capital, Stanlib Asset Management and Sun Microsystems at their Sale testing facility.

Source Control and Release Management

I’ve experience with using and administering: Subversion and Microsoft Visual Source Safe. My experience with release management extends from the technical, through to the writing of custom package management and deployment solutions, and working closely with development teams on the release process and suitable deliverables.

Other Tools

Other notable tools that I have used and employ are:

  • Nagios
  • Capistrano/Webistrano
  • dsh
  • Jmeter
  • HP Jmeter / GCViewer

The Type Of Company I Like To Work For

Whilst I am professional, I dislike large companies and prefer smaller outfits where there is room for innovation. My current employer is a VC funded start-up providing hosted financial products. I have very few local ties and am actively looking to relocate to another country for work, ideally Australia or New Zealand, but I will consider anywhere in Europe or the US.

I generally do not undertake 9-5 roles and am comfortable with extended working hours, out-of-hours support, customer and management interaction. Depending on the company and the role I will happily consider equity offers as part of a package.