Tuesday, March 31, 2009

Jonathan Coulton a rip-off artist?


I'm curious about this. Anyone have anymore information?

Listening to the Code Monkey mp3 is pretty incriminating. I fancy myself a google ninja and I could find nothing about this site or the guy mentioned. I'm going to start searching for some of his songs next.

EDIT: So Erine Wade is/was from Moosup, CT according to the link. Coulton hails from Colchester, CT. Moosup is a village in Plainfield, CT.

Here's a mapping courtesy of Google:

35 miles. Don't know CT that well so I'm not sure how often someone would make that drive.

This Ernie Wade guy was 7 years older than Coulton.

Anyway, the whole thing could be a hoax. I c.b.a do to any more research than that and I don't have anymore source material since the original link was a tweet.

EDIT2: Site exceeded bandwidth so no way to verify email link. Agreeing with @danco that it's a hoax. *puts tinfoil hat back on the shelf*

Saturday, March 28, 2009

Tales from the job search

So I've gotten quite a few emails from people who saw my update on LinkedIn about finding a new position. Everyone seems to be surprised that I found something so quick.

Still no luck on my end yet but seeing that you have a new gig, definitely gives me hope that companies are still hiring regardless of what the media is telling us.
That's from a friend of mine that I've known for ten or so years. We worked together at Butler and he saw me in the lobby the day I interviewed at MediaOcean.

The last part is the most telling. Regardless of political affiliation, all we seem to hear from the media and the White House is doom and gloom. You'd have to be an idiot to say that the economy is doing well. Either that or have a severe case of rectal cranial inversion. However, let's be realistic for a moment. Just because the economy is doing poorly doesn't mean that:

1) All sectors of the economy are frozen
2) There are no jobs to be had

I'll try to be as general as possible but understand that I come from the IT side of the house. Companies still need employees. There are plenty of established companies that have survived worse than this. There are plenty of NEW companies springing up because right now is the PERFECT time to start a new company. The cost to market entry is amazingly low.

What companies AREN'T doing is hiring entry level or basic skill set people. They want to get the biggest bang for the buck. Example - There are very few positions for Linux Administrators available but there ARE several positions for Linux Engineers available. The difference is in the details. Companies don't want some guy who's only Linux experience is from a help desk perspective. They want people who've implemented Linux. Engineers.

Enterprise experience is a phrase you see a lot. We're talking multi-server management. Production experience. High availability. Clustering. Those types of concepts. This is NOT the market for 2 years of experience. This is the market for five or ten years of experience. It's great that you can install Ubuntu but can you build out a kickstart infrastructure for thousands of servers? Sure you've set up MySQL but have you set up and managed a 500+GB PostgreSQL datawarehouse?

Additionally, companies want experience outside of the area they're hiring. SAN experience. Networking experience. Load balancer experience. Experience with products running on top of Linux. J2EE application servers. Commercial databases. Message queues. These are the things that set you apart from the next guy.

Community involvement speaks a lot as well. I actually have a section under my resume called Community Contributions. It's nothing but a list of links to things I've done online that relate to the resume. In my case, links to my Nagios plugins. Links to my monitoring notes for DB2 and Websphere. Links to some Linux tips and tricks I've written. Links to scripts. You may be the only person who has ever read this stuff but it gives a prospective employer some insight into your capabilities. Just be prepared to answer questions about it.

One last thing I can suggest is to not burn any bridges. When you leave a company, formally ask peers and non-direct managers if you can use them as a reference. If you leave on good terms with your direct manager, feel free to ask them as well. Many companies have an official policy on references for legal reasons but everyone I've ever worked for has provided a reference off-hours in an unofficial capacity for me.

Anyway, that's all I really wanted to say. The market is rough but companies are hiring. You just need to set yourself apart from the rest of the crowd.

Wednesday, March 25, 2009

Mission Accomplished

I've found gainful employment. Living outside of my means can begin again!

I'll provide details once I start but I found something interesting about myself during the whole process.

I had a few opportunities on my plate. A couple were with different teams/organizations within the same company. While these teams had a "small company" feel, they were still under the umbrella of a large (REALLY large) company.

Right now, the biggest thing for me is "getting my head" back in the game. While I LOVED the time I had at MediaOcean (and would go back in a heartbeat), I got "stale" there. By that I mean that they had some pretty clear delineation between departments. Obviously at some point, you have to have that. One person can't do it all. The problem is that some of my skills got a bit stale. Having not used them in over a year, it made for rough going during the interviewing process. There were some questions that I should have easily answered and yet, because it wasn't current in my mind, I blanked.

What's spanning tree?

I know this. I explained to the guy that while I knew what it was, the best I could provide as an answer was that it was used on switches and vaguely related to redundant interswitch links. I just couldn't recall the exact definition. He gave me "credit" so to speak on the answer since I was in the general area. When he said "loop free", my mind recalled everything it could.

A year ago, I could have told you how to configure Cisco switches for redundant uplinks and which ports you would enable or disable spanning tree on. Today, not so much. I'd have to dig.

I ran across this when recruiters would call me.:

"Are you available for a network engineering position?"
"I am but I wouldn't feel comfortable with it."
"Why not?"
Insert long story about not having current experience, not being able to drop right in and get going and thus not being justified in the salary range I'm currently in.

Same thing happened when I was asked about AIX or HACMP or god forbid HPUX. I haven't used HPUX in over 10 years. Yes, unix is unix but if you dropped me in front of an HPUX box, I'd have to navigate around a bit to remind myself of where things were. I'd have to fire up SAM and renavigate all the menus. Same goes for AIX. When I was working with those technologies, I never had to use the menu-driven admin tools. I could lscfg, lsattr and set_parms with the best of em. I knew exactly what options to pass to the Volume Manager to create new VGs. I could start smitty right at the area I wanted.

So I decided to go with a smaller company. The shop is entirely Linux so no hope of a refresh of my unix skills. However, I'll have involvement and control of the network gear (including the one major load balancer vendor I've not used - F5) so I can bring that skillset current.

After this place, who knows? Small companies have risks. Small companies that are internet companies have more risks. I might be right back in the market in 6 months or a year. I don't forsee that but if I am, I'll have more options to work with.

Thursday, March 19, 2009

Unfathomable Job Descriptions

I saw this one a while ago but it seems to have been resubmitted. I guess they couldn't find anyone the first time around:

An exciting and highly successful company here in town is looking for a Senior Linux Engineer to add to the team. This person needs to be one of the best of the best in the Linux world. You should be able to learn the software and hardware architecture and help with future platform architecture. You must have a track record of building mission critical web applications in a Linux environment, which will include expertise in PHP, XML, etc. You must have strong networking experience including TCP/IP, DNS, etc. as well as experience with Load Balancing and Switch Management. You should understand Web Services and know Object Oriented Programming techniques. This is a perm job, so a good job history is required. For immediate consideration, please e-mail your resume to the information below.
Let's run down the list of "problems" with this job description:

1) It's a "Senior Linux Engineer" position and yet nothing in the job description points to Linux
2) They want the best of the best in the Linux world. Again, nothing in the job description points to Linux

The job description then goes on to point to requiring expertise in PHP and XML among other things. Beyond that it wants experience with Load Balancing and switch management and some general networking concepts. While very important skill sets to have, NONE of these are Linux specific.

In fact the only thing Linux specific it seems that the job has it that the environment runs Linux.

This is a fairly misleading job title. We have four distinct roles here:
1) Linux System Engineer (assumed from the title)
2) Network Engineer (more than just an administrator)
3) Dveloper (specifically it appears PHP and XML. They hint a general OO concepts)
4) Architect ("You should be able to learn the software and hardware architecture and help with future platform architecture")

Now I don't know about anyone else but this is a pretty tall order to fill. At least they didn't ask you to be the DBA as well. I'm a many hats kind of guy but this is insane. Based on my experience I can surmise the following about the position:

1) It's a small shop.
Very small, imho. I've been in small shops where I did both the system and network side of things but they actually had a developer if not multiples. In larger shops, the network and systems teams are distinct.
2) You will never stop working.
They want one person to do EVERYTHING. Let's forget for a moment that, while you might find someone who has two of the items on the list, finding three is a big order and finding all of them is next to impossible. Let me explain why.

Someone who has the experience they want has probably targeted his career to one specific area. While I've done all of these things at various points, I've really nailed down the final path I want to take. My path ahead lies in architecture. I detailed this in another post so I won't rehash here.
There are exceptions but let's address the second implication of that. Someone with that level of experience has been in the industry a while. That means they're probably older. You might have someone who came right out of high school which might put them in the late 20s by this point. If they haven't "settled down" yet, they probably will eventually. Even if that doesn't mean a family, it does mean a more "healthy" life and work balance. Again, there are exceptions.

There's also the question of quality. Can I do all of those things? Yes. Would my performance in one area be lackluster compared to the others? Sure. That would be in PHP. While I've had the positions where I did three of those things, the most PHP I've done in recent years is nowhere near the capacity as the others. As you progress in the "corporate world", you get more focused via corporate structure. Many of the earlier companies had me doing all of those types of things but as I went along, my responsibilities got targeted through shear neccessity. Again, at most companies there's at least a division between developement and systems/network and at the larger companies, development, systems, databases and networking are all distinct departments.

The kicker for the whole thing is the salary range: $95,000.00 - $105,000.00

That's not that bad in Atlanta. I have no information on the location of the company. The problem is that, depending on how much expertise they want in any of those areas, that salary is good for just ONE of those positions.

I'm not going to be all hypothetical about what the situation is at the company but my guess is that they're a small shop and one guy WAS doing it all. Maybe for a lot less than the salary posted. He moved on for whatever reasons and now they're in a lurch. He was working on X application and it had all of these components to it. Maybe he built out an environment and now they don't have anyone to finish it. The other option is that this person is still with the company and is getting burned out quickly and in need of relief.

More thank likely, this just happens to be an over-agressive recruiter. I could be wrong but this sounds like a bunch of requirements and preferences lumped into one position.

Side note: PHP is not a Linux technology. Nor is XML.

Thursday, March 12, 2009

Redoing my office

One thing that suffered while I was gainfully employed was the state of my office at home. My desktop* stayed booted into Vista pretty much all the time since the only thing I used it for was WoW. My laptop** was booted into Ubuntu/Hardy for doing work from home stuff.

Now that I'm looking for jobs, I've had to turn my desktop back into a "workstation" instead of a gaming machine. Everything was fairly ergonomic already since I wanted to be comfortable if I was going to be sitting in front of the machine for a few hours at a time. But it only really did one thing, run WoW.
So what did I do?

- The first thing was to fix GRUB where the Vista bootloader overwrote it. I had been hacking my way into Linux when I needed to get back to it.

One thing I had done not too long ago was upgrade from Hardy to Intrepid. The upgrade went smoothly so the system wasn't broken by any stretch. It just happened to be sitting with the default Gnome desktop and whatever was on my desktop. I didn't really have many third-party applications installed. It was basic but not too functional for long-term use.

- The next thing I did was modify my desktop to be similar to the layout I had on my workstation at MediaOcean. I've come to fall in love with a sidebar. I don't use it on Vista but I actually swapped to KDE from Gnome because the screenlets sidebar was so useless. This was pretty painless with a quick apt-get on all the kubuntu packages.

So now that I had the Kubuntu packages installed, I had to take the time to lay everything out. Remove the Dolphin desktop plasmoids, add the sidebar and put the stuff I needed there. The other thing I did was add the 6 desktops I like to have available. I also had to configure the KDE counterparts to the various apps I used (Akregator instead of Liferea, Kopete instead of Pidgin, Kmail)

The one thing that took the longest was setting up all my RSS feeds again. Any smart company, when they do a layoff or termination, disables access for the now-former employee as soon as possible. This is just smart business. When I got back to my desk, my workstation was already turned off. I didn't bother to turn it back on because I didn't really have anything personal on there other than some images of Gus for my screensaver.

I did, however, have a pretty extensive list of bookmarks in Firefox and a very large list of RSS feeds. While I had *JUST* finished setting up Xmarks with my own WebDAV server, I hadn't recently done an OPML export of my feed list. This meant having to rebuild it from memory. That sucked. I know I've missed some.

- Install some of my "development" tools. Since I'm not a developer in the programming sense, this isn't so much setting up my IDE as it is getting the machine ready for concept work. MY development environment includes, but is not limited to:

So what's left to do?
- Install VMware
- Update EC2 API tools
- Install Firefox extensions (S3fox,ElasticFox)
- Decide between TweetDeck and Thwirl
- Install Ruby toolchain
- Back it ALL up and install 64-bit Intrepid ;)

* When I originally purchased my desktop several years ago, I tried to future proof it as much as possible. I basically have a server sitting next to my desk. It's a dual-proc Opteron box with 5GB of memory and a metric arseload of diskspace. I built it this way so I could have a lab in a desktop.

** Dell XPS M1710

*** I'm currently using VirtualBox because I haven't gotten around to installing VMware Workstation. I prefer VMware Workstation mainly for the teaming feature but VirtualBox is growing on me.

Wednesday, March 11, 2009

How high is too high (level)?

One of the interesting things about being back on the market is dealing with job descriptions.

Many recruiters are not technical (nor should they always be) and you sometimes get the type of offer that was done by a full-text search for key words. The person never bothered to even read your resume before contacting you nor did they bother to see that I have no interest in moving to Malaysia.

Too Technical?

I had an interesting turn of events today that was truly a first for me. I was contacted by a recruiter who thought (as did I based on the req he read me) I would be a good fit for a position. He said they had one other person they submitted but the client wanted to see a few different resumes.

The job was for an architecture position. The client had a government contract for a health care system. I didn't get much more than that and I really didn't have any time to tailor my resume for them to highlight the architecture work I had done. I've got plenty of architecture work over the past 8 years from low level to what I assumed was high level. It's the route I want to take long term so I was very interested to get in front of the client and show them my Visio collection ;)

I got a call back from the recruiter who said the client wasn't really interested because they considered me "too technical".

Come again?

He read some of the keywords that the other guy had on his resume and it was definitely buzzwordy. Phrases like "alignment" and "vertical". Mine had no such words.


I told the recruiter that there were no hard feelings but I was really curious what they meant by "too technical". Mind you I know how to talk to non-technical people. I've done customer presentations for my designs and talked to executives about things. I can get high level and consider myself pretty good at preventing that glazed over look that you see so many times when a non-technical executive is inundated with "geek speak".

The way it was explained to me is that they considered me the type of person who would take what the person they were looking for and implement it. They actually wanted someone who hadn't been hands-on in a while.

I couldn't wrap my head around it. Why would you want someone who WASN'T technical designing something technical. What possible big-picture architecture could someone possibly create without some idea of what's actually POSSIBLE with technology? I've done work for those types of people and it's never ended well. I distinctly remember a person designing something for a client and promising something that simply wasn't technologically possible.

He explained that they didn't want specifics designed. He kept using the phrases "really big pictures" and "really high level". He stressed that the didn't want technology designs to be a part of this. No talk of platforms or specific technology (i.e. AJAX or XML). No user stories or use cases. This really got me thinking. What exactly can you do at a high level that has value?

My attempt at "really high level"

So this has been bugging me all day. Here's what I know. It's a health care system for the government. Let's assume it's the Obama health care database that was part of the "stimulus" package.

What do we know about it? Well not much. The language is pretty vague. Here's what a google search turned up:

Health Care. Health care has been a recession proof industry but the implications making health care available to more people should stimulate new projects, new money available for research and all of the outpatient and auxiliary services, such as testing and analytics labs, that accompany this. The provisions of the Stimulus Package package that call for an extension of COBRA for the unemployed and the development of a national patient database, while not an immediate priority, will require the that technology be developed long before its potential implementation.
So we have a national patient database. From what I understand form other sources, this was to keep track of health care information for preventative purposes. E-health records and other such interesting stuff. Working off of that and trying to be "really high level" and "not technical", this is the best I could come up with:

Forgive me for using Gliffy. I don't have my copy of Visio installed right now since I put Vista64 on my Windows partition. Also forgive the lack of inappropriate UML.

Intemperate side note: Anyone who bought his own copy of Visio Professional with his own money has to have some love for Information Architecture.

So anyway, that's as high level as I can get it. Obviously this would be wrapped up in a document explaining (high level of course) the various aspects of the actors and messages (physical contact vs. an "internet" message) but really there isn't much else to be said. That's assuming of course that this is the type of high level they want. The problem is that I don't see the value in something THIS high-level. Obviously, when designing something like this you have to know what's possible with current technology so you have, even if you're 10 years removed from trends, and idea of how it might be done. I would argue that if you're 10 years removed from technology, your design isn't going to be that good because it's legacy before it even comes to fruition.

While I was rocking Gus back to sleep (who woke up halfway during the last paragraph), I actually did think about it a bit harder. There's a lot that can be said without getting down to "specific technologies" used but I just don't see the value in it. Let me give you an example of what I would consider high level without naming specific technologies:

It's not much different than the first one but I learned Gliffy the second time around so it's got COLOR!

My document would outline generic methods for each message (public web interface, e-health API - without details, XML not even mentioned), the concept of self-service and authorization (patient ultimately controls access to information and level of access to third-parties) and other information.

At this point I've not really gotten TOO technical. I still haven't mentioned any specific technologies. I've not said anything about XML vs. REST vs. SOAP. I've not provided a UI mockup of the web interface (but I have conceded an internet presence). I've not addressed the issue of security (but I would at a high level).

To me, this is high level. The next level down would probably cover technology without being specific. I would probably mention the web frontend in generic language, the concept of web services and a few methods for secure interaction from service providers (VPN, MPLS, HTTPS) and provide different Visio diagrams going into that detail for each one.

It would be a pretty large document. This is the level I enjoy working at. I don't care if the backend is IIS/SQL Server or Tomcat/MySQL/AXIS. I can design the system without needing to know any of that.

Leave it to the people doing the implementation to determine the specific technologies that they know best. I wouldn't presume to dictate that it be done in Java anymore than I would presume to dictate it be done in Rails. I have my opinions on each but a good dotnet programmer can write secure and functional code just as well as an experienced Java programmer can.

Mind you I also enjoy working on the level below that one as well but that's a different scope. If I were tasked with implementing my second level design in a highly available and secure method, I'd have a Visio page with firewalls and load balancers and clustering design but again, I wouldn't dictate the technology. I'm not going to say "This is a Citrix Netscaler. This is a Cisco IDS. This is a Juniper firewall.". Of course I can do that level of design as well. Down to the redundant switching mesh.

The Payoff

Having said all of that and having actually worked through the problem, I have no doubt I could have done the job. Of course the flip side is I'm adamantly opposed to the whole thing. I don't like the idea of the government having access to the information. I don't like the idea of insurance companies having unfettered access to patient information (if it were designed that way). I don't like the idea of a "national health board" that reviews the information periodically.

I COULD design such a system that would satisfy my concerns but I don't know that I would feel comfortable trusting it to the federal government. This is the same government that can't seem to get people of TSA watch lists because they have the same name as a known terrorist.

But this isn't the place for a political rant.

I'm curious if anyone who might actually READ this could give me some insight into what exactly "really high level" is.

Back on the market

Well MediaOcean/DDS had to do a round of layoffs. Unfortunately for me, I was one of the most recent hires so I was on the block ;)

It was all very tastefully done and I have a months of severance pay to hold me over. I've already gotten a few leads on new positions so I "got that going for me".

The upshot is that I now have some time to get back into working on some tips and such for Nagios. I'm also working on some POC stuff using Amazon AWS. I'll have information on those shortly.