How to recruit a software developer. (Part 2)

We’ll continue with the problem of incentivization for recruiters.

Recruiting must be the most outsourced, underfunded, middleman-heavy profession there is. There are several frustrations that go along with being heavily recruited by people who do not know or care whether you fit a given job description, and they range from the merely careless and time-profligate to the truly unethical.

(1) CARELESS: Recruiters who mass email everyone on CareerFinder and Monster with the word “Ruby” in their profile for an Austin, Texas-based junior web developer 3-month contract gig specializing in Ruby on Rails.

I am not a Ruby developer, I will not move to Austin, Texas, especially for a three month contract, and I’m not a junior ANYTHING. I have some skills with Ruby, meaning that I can install the necessary scripts, edit them, run them to operate a site, and I know enough to know when I need to call a specialist. This makes me able to list
Ruby as a general low-level skill on my resume, but does not in any way qualify me for a development job on a site that solely uses Ruby for an environment. However, that keyword hits big with recruiters, and I get probably 15 emails a day from recruiters trying to get me to take a job for which I am unqualified and in a location to which I would not move. A simple glance at my resume with the words “Senior Development Manager and Web Architect” emblazoned across the top and a brief scan of my skillset tells anyone I am a skilled coder who has been moved up the chain to management, and would likely help those recruiters to target me far more efficiently.

(2) CARELESS: Recruiters who speak such poor English that their emails are unreadable–and that sometimes includes native English speakers.

I am glad that you’re “pleased for making time and hoping you will be helping me networking to fill VERY IMPORTANT positino immediatly in NEW YORKCITY as JAVA DEVELOPAR” [not a joke; I seem to be
perpetually emailed by the recruiter version of Paul Christoforo], but I don’t need it filling my day. At the very minimum, have your job posts reviewed for content and grammar before sending them to thousands of developers.

(3) UNETHICAL: Recruiters who are paid by the emails they generate, not by the positions they fill.

This is a common problem among firms that have outsourced to the Philippines, India, Bangladesh, Malaysia…in fact, name your popular outsourcing destination in Asia, and you’ll find these recruiters, who are paid to send out as many emails as possible. They’re no better than spam, but because they’re targeted to you and have your email address, you can’t filter them the way you would filter a Cialis or pr0n ad.

(4) CARELESS: Recruiters who have not paid attention to your preferred location–and don’t care.

I will not take a job in South Dakota; I’m sorry. I’ve lived in several midwest states and think that South Dakota is quite eerily beautiful. I
will not be transferring my life, my career, and my love of well-produced opera to Sioux Falls any time soon.

(5) UNETHICAL: Recruiters who expect you to do their job for them.

My final post will be the most egregious example I’ve found, combined with a horrific example of #6. The most common variety is this:

To better represent you, kindly fill out the skills inventory below. Thank you

1) Agile/Scrum (Beginner/Intermediate/Expert) (Years of experience/Date Last used)
2) Software Development Proj Mgmt (Beginner/Intermediate/Expert) (Years of experience/Date Last used)
3) Web-Based Application architecture knowledge (Beginner/Intermediate/Expert) (Years of experience/Date Last used)
4) Test Driven
Development / XP (Beginner/Intermediate/Expert) (Years of experience/Date Last used)
5) Java development principals (Beginner/Intermediate/Expert) (Years of experience/Date Last used)
6) Release Management (Beginner/Intermediate/Expert) (Years of experience/Date Last used)


Remember that I get about 50 or so of these emails per day; this person doesn’t even want to read my resume, and instead wants me to fill out his paperwork for him. Note: this was for a position in California, making it irrelevant anyway.

(6) UNETHICAL: Recruiters who expect you to prep and interview with no information about the company.

This is the worst one. How can I know if I want to take a position if I’m not told: (1)
what the salary will be, (2) where the company is physically located, (3) what benefits are available, and (4) to whom I would be reporting? This is just another version of wasting my time. I don’t talk anymore to recruiters who are secretive; they are occasionally fronts for disreputable companies who want a chance to sell you before you find out what their online reputation looks like.

Next, the traits of successful recruiters.

How to recruit a software developer. (Part 1)

I have a problem. Hundreds of people every week contact me to try to get me to work for them.

In an economic downturn, this may sound like what I call a ‘high-class problem.’ Noted examples of high-class problems include: paying taxes on your lottery winnings, being unable to make up your mind between your Harvard and Yale college acceptance letters, and getting a shopping cart dent in your Rolls Royce.

It may sound like I should have absolutely no problem finding my next contract or FTE position, but the truth is that I am bewildered by the sheer quantity of irrelevant job postings and shady headhunters by which I am besieged on a weekly basis. This is no joke: I have hired a remote assistant whose sole job for me is to go through all my emails related to job postings. I have no way to process them all and still get coding, blogging, eating, and living done. I have an obligation to follow up on each posting that fits my skill set, and
I am trying my best to do so…but there’s no way to spend hours per response following up on thousands of postings–99.7% of which are irrelevant due to location, skill set, or compensation level.

Then, we come to the issue of rude and unethical recruiters. I’ve had some recent encounters that inspired this series; I’ll be describing that situation as I discuss the ethics of recruitment from the other side–the people being recruited. I’m bombarded by recruiters who have the incentive to email as many people as possible, since they have no reason to care about the skill sets or fit of the people they’re slotting into jobs. They’re paid by the number of people they place, not the quality of the placement or its duration. That doesn’t add up to a recruitment culture of individualized attention and courtesy. I’m also constantly hit by emails demanding my time and effort without so much as a ‘please’ and ‘thank you.’

Finally, there are rules that good recruiters follow which instantly
get my attention and cause me to work with them. I’ll let you know what traits a recruiter possesses to make me work with them again and again.

So, over the next several days, I’ll be posting a multi-part series on how to recruit me. I want to be hired; people certainly want to hire me–so why is it so hard to be paired with a recruiter who has actually read my resume and thinks I’d be a great fit for their open position?

Welcome to the joy of being heavily recruited by thousands of clueless and careless headhunters who have your email address and phone number.

What is it like to be a freelance web developer?

I want to take a moment away from my usual howtos and commentary to offer some encouragement and etiquette tips for my fellow web developers, especially the ladies starting out.

Doing freelance work with the occasional longer contract is difficult to break into, requires a thick skin, and demands careful reputation-gardening. Before I reached the point where I was getting contract requests and recruiter emails on a daily basis, work was thin on the ground. I did IC (individual contributor) work, and it’s taken a lot of time and effort to reach the systems architect and senior management positions for which I am now being recruited.

I maintained three principles which I use every day, especially when I have to deal with aggressive recruiters, tight-lipped company reps, and the inevitable professional relationship snafus.

(1) Say something nice about someone every day.

In late 2009, I had a tough personal situation to deal
with, and after it was over, I knew I could react one of two ways. I could be angry and sour to anyone who asked, with the excuse that I was having a tough time, or I could find a way to turn the situation into personal development. I started looking over my friends list on Facebook, and made a point to say something nice about a friend every day. It got me back in contact with people I hadn’t talked to in quite a while, provided encouragement, and sparked memories. Likewise, when I’m dealing with professional issues, I write recommendations for my colleagues on LinkedIn. Many people I know work extremely hard without a great deal of positive reinforcement or top-down encouragement due to the nature of contracting and freelancing. No one ever tells them that they have serious skills, that they’re a pleasure to work with, and that you’re glad to have them on your IM contacts list for sticky coding questions. Nearly every company has a policy of never giving any feedback whatsoever on performance to anyone
who’s not an FTE–this is to avoid legal issues. That’s good for the legal department, but doesn’t provide much in the way of constructive criticism for personal growth and improvement in skills. This is my way of helping others with this problem. Say nice things about your colleagues and professional contacts; it draws you together and provides opportunities to turn sometimes difficult situations into networking goldmines.

(2) Be courteous to recruiters, but do not let them run your life.

I am deluged with emails from recruiters on a daily basis. This is the very definition of a high-class problem; I am quite aware. Still, imagine getting a variant on this email about five times a day:

“Hi! My name is XXXX, and I am from XXXX Consulting, Inc. I came across your resume, and believe that you may be absolutely perfect for this (.NET, C#, Java, OSS, MS, frontend, backend, lead/IC/senior/junior, DBA, FTE/Contract) development position I have. Please send me an updated copy of your
resume as well as current contact information, salary requirements, availability and geographical location, and a point-by-point answer to each of the ten questions below which will determine your suitability for this position.”

Now, these people are overworked, underpaid, and are dealing with a paradox whereby the people most likely to respond to them are not currently employed at high-paying and prestigious positions. However, almost all of my best contracts have come from recruiters. This means that I absolutely do want to talk to them, if they have something I need to know–but answering them all in detail would be more than 10% of my day.

I’ve come up with the perfect solution. I send a Gmail canned response to all recruiters thanking them for their interest in me, giving them a quick rundown on the positions I will accept, my base salary/equity/wage/benefit requirements, a link to my website where my resumes live in pdf and txt format (the pretty version and the text-searchable version),
and my geographical location. I ask them to please send me the job description, geographical location down to the city block of the company for which they’re attempting to recruit (often they cannot give out the name of the company, but I need to know what transportation/commute will be like), and the salary.I let them know (as courteously as possible) that I will not respond to any reply that does not contain that information.

So far, it’s worked like a charm without sucking my time the way recruiting emails used to do.

(3) Maintain your relationships with the people with whom you have worked.

Facebook your friends, and LinkedIn your colleagues. Every nerd hates to hear it, but the people you know and with whom you collaborate are the best resource for gigs, recommendations, inside news, and a heads-up when you need it. THANK THE PEOPLE WHO HAVE HELPED YOU. When people point me to gigs, recommend me, help me out, and provide me with information, I thank them
thoroughly and in written/gift form. Get a case of decent wine and send a bottle and a thank you card to the people who have helped you professionally. This isn’t because you want something from them; it is because you are grateful for their help without expecting that they’ll do so again. I mean it; sincere gratitude is important for its own sake.

Those three principles help me out when I am in contracts and looking for new ones, as well as closing down old contracts. Probably the biggest piece of advice I can give is this: take the time to be courteous to those who are helping you and supporting you, whether you know them or not.

The ‘Just’ Syndrome

There’s a tendency among those who don’t work with computers in any real capacity to fail to understand the complexity of the work we do. I encapsulate that concept in the phrase: the ‘just’ syndrome.’

“Can’t you just…”
“I don’t see why you can’t just…”
“But if you just…”
“All you have to to is just…”
“All I want is for you to just…”

You usually hear this when a person doesn’t comprehend the intricacies of their request. I often hear this when someone wants a div moved a few pixels and overlaid with another, with no real understanding of the notion of an inline-block layout. I’ve also heard it from people who don’t comprehend the difference between flat HTML and a backend or dashboard like WordPress or Drupal. Here’s the difference: MySQL. If you want control over your content, you need a database…but you’d be surprised at how many people can’t see the difference between a flat site and multi-tiered

I’m given to understand that this is endemic in any relationship where one party doesn’t understand the skill involved in performing a task that seems simple.

“I just want a 1040…”
“I just want the house painted really quick…”
“I just want the carburetor replaced…”
“Can’t you just take a quick look at this mole…”

These seem like simple tasks, but have complicated components that require a deep understanding of the field each of these professionals are in to even answer a ‘simple’ question.

The moral of the story: respect the skills of the professional you’re talking to, and don’t request a ‘simple’ anything that will only take up ‘just a bit’ of their time.

The ethics of web development

As coders, we are frequently exposed to passwords, financial information, and very personal facts that our clients may not even be aware they’re showing us.

I’m often passed login information for Facebook pages, Twitter accounts, Ebay accounts, and server passwords, often without any real understanding of how much trouble a person can cause with that information. I’m even frequently given personal email account signin information.

How do we stay honest and trustworthy? As a developer, I maintain total confidentiality when it comes to my clients. But what kind of process can be considered both safe and secure?

I typically use KeePassX, a cross-platform password manager that can be accessed wherever I need. Military grade encryption keeps my clients’ passwords and signin information secure, and my own security ensuring that only I can reach my passwords, or, in the event of my death or incapacity, my executor, keeps my clients
feeling that not only can they trust me, but that my security precautions are frequently ten times what they would have expected.

What security measures do you find yourself using to ensure that your clients feel safe entrusting you with the most personal financial details when you’re developing for them?

Wikipedia and Virtual Feudalism

I’m tired of having my edits on Wikipedia immediately rolled back without so much as a by-your-leave. The purpose is so that those who have set themselves up as monitors on a range of pages within their area of expertise can read and review my changes to approve them before permitting them on the page.

Why is it perfectly fine for people to squat on pages, roll back any changes made by anyone other than themselves, and only re-enter the information themselves if it seems truthy or can be easily Googled? The purpose of Wikipedia is a democratic approach to the concept of shared knowledge; it’s being hijacked by people who have so much time on their hands that they can’t POSSIBLY be gainfully employed in the area in which they claim to be experts.

The backlash has been against paid editors who monitor content to ensure a ‘pro’ slant on any page they’re paid to manage; I think the real danger comes from those who monitor pages to
roll back any changes they didn’t approve.


Evil Week

I love LifeHacker; you all probably do too.

They’ve started Evil Week

and its theme is the idea that sometimes you have to be bad to do good. Hacking drives and networks to prove a point, modding outside the TOS in order to get real functionality out of apps or products that are artificially limited, and plenty of other tips and tricks that aren’t precisely on the up-and-up–but increase productivity. I’ve submitted my previous post on how to hack a hard drive in almost any OS; we’ll see if it makes the cut.

Do the ends justify the means?

How to hack a hard drive in almost any OS.

Most of you know that it’s simple to get around the password-protection in almost any OS. I startled the heck out of my brother two days ago when I popped a Meerkat disk into his machine, booted up, mounted his data partition, and pwned his WoW folder, all without breaking a sweat or needing any password. He simply didn’t realize how easy it is.

Here’s the steps:

(1) Make a Live CD from any *Buntu distro. I heart Kubuntu, and 10.10 works just fine.

(2) Insert the disk into a target computer, and reboot into the “Try Kubuntu Without Installing” option.

(3) Open a terminal. Navigate to the top level of the file system. Navigate into the device directory. Look for all the devices listed:

cd ..
cd ..
cd /dev/

Is something like sda1 there? Usually, the hard drive will be named sda or hda. The first partition, sda1 or hda1, will be the data partition, especially if there are no
more partitions. If you see sdb or hdb, that means there’s likely a second hard drive; check those partitions as well.

(4) Now that you’ve found what is likely to be the data partition, create a working folder and mount the partition to it:

sudo mkdir /home/pwnage
sudo mount /dev/sda1 /home/pwnage
cd /home/pwnage

Do you see the files?

You’re welcome. Questions, anyone?

Rebranding is like…well…rebranding. You get reburned.

Comcast may have rebranded itself as Xfinity, and claimed that their customer service has improved, but someone should have told their drones.

After finally reaching a “customer service” associate to switch my service from my old apartment to this one, I was told that a Comcast technician needed to enter my house to “install the internet.” On informing that troglodyte that they didn’t need to touch my computer to turn on service, I was told that the technician had to get online to enter my account information. When I inquired as courteously as I could manage if any Comcast technician was even remotely familiar with a custom Linux build, I was greeted with the inevitable “Huh?”, I sighed, told the operator that no one, but NO one from Comcast was touching my computer.

Inevitably, the Comcast tech who showed was helpful, but utterly clueless. After I showed him what Linux was (trying to be a good little OSS evangelist), he looked
thrilled while I did his job for him, cycling the modem, etc.

I am tired of companies rebranding to help their image instead of actually improving their service. I am not allowed to change my name to escape my obligations and financial reputation. Why can a major corporation do so? Especially one that holds a functional monopoly on a service I require in order to make my living?

Who will hold this corporation responsible for the Comcastical, Comcastuous, and Comcastible experiences they visit upon the helpless people they “serve”?

Ensuring Insurance Elicits Illicit and Affected Effect

I have a T-Mobile G1/HTC Dream. It just died. About 4 months ago, it started choking in the faintest stirrings of its coming death throes.

4 months ago, I still had insurance on it. I canceled my insurance (you know, the 6.95/mo T-Mobile charges to ‘insure’ your phone), since I discovered that the deductible for that insurance was close to $200.

That’s right, the phone I got from T-Mobile for $199 and insured at $7/mo for two years (total: $166.80) is replaceable–for $200.

Why the devil didn’t I realize that this is a MOBILE PHONE company, and as such, will find a way to screw me?

As a result, and most certainly the saddest part of this situation: I just bought another G1 on Ebay for $116, shipping included. I could have saved more than $50 even WITH buying a new phone…simply by ASSUMING that all cell phone providers will find a way to screw their customers.

nLesson learned.

PS: I’ll have a phone again in two or three days. Through T-Mobile’s insurance plan, it would have been 4-6 weeks to have mine replaced.