explorers’ club


Cool Tool: Salary Calculator
Sunday, May 18, 2008, 11:16 pm
Filed under: contracting, misc

Since being on the hunt for my next gig, I have been asked several hard questions by recruiters and clients. The question: “What kind of salary/rate are you looking for?” Now any consultant conducting interviews knows the inevitability of that question. And it should be addressed sooner rather than later.

The problem in answering that question is not knowing what kind of figure to give. Obviously you don’t want to low-ball yourself and giving a number too high can scare folks away. So I won’t belabor the point any further. Check out the salary calculator over at Simply Hired – link

Want to know what the average salary of a Senior Flex Developer in Dallas, TX is? Plug it in. Now get this: Simply adding th keyword ‘Adobe’ in the search parameters gives a significant jump in salary. So this may not be the best tool for zoning in on a specific number, but it will give you enough info to get some sort of range to play with.



Simple drag n’ drop for Flex (ala iGoogle)
Thursday, January 24, 2008, 4:29 pm
Filed under: actionScript, components, contracting, development, flex

Long ago, on a project far far away, I was given the task of recreating in Flex the whole drag n’ drop functionality that was found on iGoogle.  And…. I did.  Then the code was lost and the classes forgotten.

Well someone had been looking for this functionality on the web and came across an old comment I had left on someone else’s blog.  You can read that here.  Then they emailed me asked if I had examples.  After trudging around a bit I found em.  Dusty as they were, they still worked (kinda).  But it inspired me to redo the whole shu-bang and make it better.

Its still a work in progress and I have some features in mind to add, but it works solidly, accounting for all sorts of things like padding, alignment, etc for Container classes.  Check it out and let me know your thoughts, comments, ideas, criticisms, etc.

dNdLib:



AppCoreLib
Friday, December 28, 2007, 9:44 pm
Filed under: actionScript, appCoreLib, contracting, development, flex

Preface

For the longest time I have been using a little set of helper classes that I have just recently named AppCoreLib.  I have used this on various projects of varying sizes.  Everything from Enterprise level apps to my pet projects.

Though not entirely original, the idea hasn’t really been put into an open-source swc that I know of.  So I decided to do so.  Thanks and credit goes out to my bud EKZ who spawned the idea in this particular flex-flavor.

Application Core Library

AppCoreLib consists of a few lite-weight classes.

  • broker based classes
  • a special event class
  • an  application interface

The idea is this: Ofttimes an application needs to load various content and settings files prior to the application’s view being shown.  The reason is that if you are using an MVC framework with {bindings} and/or other mechanisms on your model, you may encounter null pointer exceptions if a view tries to load prior to content dependencies being loaded.  Enter AppCoreLib.  It provides a very lite-weight framework added at the <application/> level of your RIA.

How it Works

  • default flex loading mechanism loads swf
  • IApplicationShell implementor’s creationComplete handler instructs instances of the broker classes to retrieve data dependencies
  • broker classes notify handlers that they have indeed loaded their data
  • upon all dependencies being loaded, IApplicationShell.shellInitiliazed() is triggered where normally you would put your RIA’s UI classes to be loaded.
  • Since certain broker classes are Singleton implementors, you can easily access their data from anywhere in your application.

Check It Out

I have set up the project home at google code.  Here are some various links:



Contractors Beware: US Airways

Preface: Since I am a contractor and do quite a bit of traveling, I figured I would write this as a word of warning for other contractors and as a means to fight back. So to kick this off I would like to say: To all the big businesses whose customer service policies like to thumb their noses to the very people who keep their asses in business. KISS MY ASS!!!

So why am I bitching about this? Well firstly because the very declaration to do so (i.e. my blogging about it) influenced an atypical response from an industry that typically could give two shits about the consumer. Acts of God, weather, etc., are understandable in flight delays. Stupidity and the unwillingness to rectify a situation are not understandable and not acceptable.

You may ask why I use the word consumer versus passenger. The main reason being is that I feel by hammering this point home, maybe sufficient numbers will recognize that they are not merely helpless passengers, but consumers with the power of choice. Secondly I feel that by using key words such as “US Airways Customer Service” and “consumer” that this post will be found among top post in search engines. Today the internet is my weapon. Bear arms and wage war. Alright, let’s kick this off:

  1. consumer purchases ticket off US Airways’ website (not via a finder-service site or travel agency)
  2. consumer lands at connecting city’s airport
  3. consumers haven’t disembarked from plane yet (keep with me here)
  4. pilot informs consumers that there will be a short delay as there is some equipment blocking the plane from pulling up to the jetway
  5. 10 minutes pass
  6. pilot informs consumers that there will be further delay in moving aforementioned equipment
  7. many consumers hail flight attendants with concerns about making connecting flights
  8. a total of 30+ minutes pass sitting at a terminal before disembarkation
  9. many consumers miss connecting flights

So two questions come to mind after hearing this situation:

  • Could the plane not have been directed to another gate?
  • Could they have not brought forth a mobile staircase so that consumers could disembark and catch connecting flights?

Both questions were asked and neither were answered. But I digress. Let us continue.

  1. Many consumers who have now missed their connecting flights make their way to customer service desks to find alternate means to their final destinations
  2. One consumer follows suit
  3. Said consumer raises Holy Hell at the US Airways Customer Service desk to rectify the situation and to receive compensation for untimely inconveniences
  4. US Airways Customer Service at first is unwilling to do anything more than to find another connecting flight to said consumer’s final destination
  5. US Airways Customer Service has the gall to indicate to the consumer that it was the consumer’s fault as he did not allow for enough time between flights to make connecting flight
  6. Consumer reminds US Airways Customer Service that it was their website that calculated the itinerary AND that US Airways has been responsible for 2 other incidents where consumer lost time and money for US Airways’ poorly conducted business
  7. US Airways Customer Service still has the gall to pass blame to consumer
  8. Said consumer indicates that the situation will be written about and read by people in said consumer’s industry who so happen to be consumers of US Airways and other airlines
  9. US Airways Customer Service is now willing to do more
  10. Consumer receives a $200 travel voucher and a $10 meal ticket to be used within the Philly, PA airport
  11. Consumer indicates that this incident will still be written about but will present the facts as fairly as possible
  12. US Airways Customer Service agent asks that consumer please do not do so

Up to this point it sounds like US Airways Customer Service finally saw the errors of their ways and rectified the situation. The consumer was somewhat pleased that US Airways acquiesced, though still pissed due to missed time. Time passes and new things come to light.

  1. Consumer intends to use $200 voucher to return home
  2. Consumer cannot find a place on the US Airways website to redeem voucher
  3. Consumer calls US Airways Customer Service
  4. First attempt results in speaking with unintelligible US Airways Customer Service agent which ends with said agent dropping the call mid-sentence
  5. Second attempt results in speaking with an intelligible US Airways Customer Service agent who happens to validate the voucher and starts to find potential flights
  6. Second US Airways Customer Service agent happens to put consumer on hold indefinitely (15+ minutes with no audible indication that US Airways Customer Service agent was still assisting the consumer)

If you haven’t guessed so far, I am that consumer. Or rather I am that ex-consumer of US Airways. You can take your measly $200 voucher and shove it up your Corporate-America-The-Customer-Is-Always-Wrong asses.  My time is my most precious commodity.  I lost out on participating in a time and weather sensitive activity with my family.  Their voucher cannot make up for that. For those readers who view this as more than merely a rant, but as a means of fighting these kind of business practices, you too should rise up, inform those companies that you will do so, then write about it. Make sure you use the name of the company and the word “consumer” profusely. This will bring your situation to the attention of like minded consumers who don’t take this kind of behavior sitting down. Fortunately the web is the weapon of choice for the informed consumer. Use it. Bring these bastards to their bloody knees.

You know there is an old saying, “if you don’t vote, don’t complain about it”. So start bitchin’



My new ‘puter
Sunday, November 11, 2007, 8:22 pm
Filed under: contracting, development

[UPDATE: 2007.11.13]
So after playing and working with the Macbook Pro.  I have decided to stick with it.  Its a real nice machine regardless of the OS.  Though I have a few things to learn with the OS, I think it will come naturally with very little time.  I am certainly not a mac-geek, but I do see why it is so appealing.  The Terminal and the whole UNIX thing is another issue entirely.  I really feel that I have been set back a few years as though I just graduated high school and still using DOS.  I know DOS fairly well now, but you get the idea right?  I did install XP on the bootcamp and parallels setup.  That will take some getting used to but oh well.  The funny thing is that when I go back to using ‘the Beast’ I feel a momentary crippling as my hands have already come accustomed to using the mac board.  Now if only they would have thought enough to include a real numpad on the 17″ puter, I may have gone that route.  Oh well.  Thanks for all the feedback.

=============================================

I have been in need of a secondary computer for some time now. My current rig is a behemoth 17″ laptop that must weight 10lbs with an additional brick for a power supply. When I purchased it, it was to be a desktop replacement as I wasn’t doing much travel. Things have changed. Don’t get me wrong, “the Beast” as I so adoringly call it, is a great computer. It does everything I need so long as it is plugged into the wall and needn’t be sitting on one’s lap. But now that I am doing some traveling I need something a little bit more travel-friendly.

So like a dumbass, I did very little research and went and got a Macbook Pro 15″. Two words: “Wow!” & “Shit!”. So the story goes something like, “Wow, this is so cool, I wish Windows would do this” then only to be followed by, “well shit, at least XP does that”.

Way back in the day, my family was an Apple family owning one of the first Macintosh computers that had the greyscale screen, the 3.5″ floppy drive and the funky double decker house profile. Unfortunately it was used for little more than playing Dark Castle, word processing and creating automated prank calls from bogus credit card companies. Then years later my family made the move to a Windows machine and never looked back until now. So maybe I am just a little biased after nearly 15+ years of Windows.

Rather than bitch more about Mac vs. PC I figure I would spell out what I really like about the Macbook Pro and what I would like it to do if possible. Hopefully some of you folks can steer me in the right direction.

Like my Nissan XTerra (which was a vehicle made for a person like me), the Macbook Pro has alot of little features that though not necessary to the operation of the machine, really makes it nice to use. Let’s just say there was alot of thought put into the experience of using the machine, regardless of its OS.

  • weight and size: This is the smallest, lightest and coolest (temperature-wise) 15″ notebook computer I have had resting on my haunches.
  • maglock AC adapter connection to the computer: Why haven’t they and when will other notebook manufacturers catch on to this. It probably cost next to nothing to implement this and many of the features found below
  • the AC adapter itself: Not only does it have an interchangable wall-wart/extension plug outlet connector, but it also has a built in cord wrapping system to neatly keep the AC to Computer cord wound up and out of the way.
  • backlit keyboard: This should have been a no-brainer years ago. To hell with the USB keyboard light snakes.
  • big, bright screen: I have never seen a screen so bright.
  • non-tray DVD drive: less exposed moving parts to break.
  • ambient light screen adjustment: a little finicky but maybe updates to this will improve the logic in how it fires.

So the above list are things that I love about this computer. If I could find a PC laptop that offered this, I would have probably opted for it instead. Unfortunately the PC manufacturers are lazy, stupid or just don’t care about adding a few minor things that would vastly improve the experience of working with a notebook computer. Now rather than make a shit-list of my complaints about the Mac OS (Leopard) I will instead make a list of things that I am having trouble with and hopefully some folks can point me in the right direction (did I say that already?).

  • Simply, straight-forward installation of MySQL: I know nothing of the terminal and am not looking forward to learning yet another DOS-ish language. I have found a few tutorials on building MySQL but then I cannot even navigate directories in Terminal.
  • Simple use of Ruby & Rails and other potential server languages as I decide to learn them: Doing this on XP was in itself a pain but I eventually figured it out.
  • Creating a FAT32 partition that can be seen by both the Mac OS and the NTFS install of XP: Just want a simple file xchange partition to use by both OS’s.
  • Basic Terminal navigation and commands: I must be a complete idiot but I cannot find any tutorials on working with basic syntax within the Bash language. I only know CD and LS. I certainly do not like blindly following instructions without knowing why I am doing something.

Lastly I should say that I am still within the time frame to return the Mac and get a comparable PC (I think the deadline is Nov 17th). So can anyone recommend a PC with the same features that I like about this machine up above. Price is not really an issue as I would rather find a machine that works well for all my needs rather than having to make a compromise because I wanted to be cheap.

I look forward to some feedback. What kind of machine are you using?

Thanks,
J



Some advice on telecommuting
Thursday, September 6, 2007, 2:07 pm
Filed under: contracting

Hi folks.  It has been a long time since I last wrote anything of great importance.  But I think I finally have something for you.  I recently started doing a new telecommuting gig.  I have telecommuted before but not quite to the extent of being considered a full-time telecommuter.  The most I had done was a few days a week here and there for a place that was less than 2 miles from my house.  Suffice it to say that I am not big on telecommuting from a personal perspective.  That is not to say that I won’t do it, but it requires a great deal of discipline on my part.   So on to some tips for achieving that discipline.

TIME
Most people probably don’t think much about the concept of time.  Time is your most precious commodity in life.  From the moment you are born you are ‘burning the candle’ .  I sometimes think of time much like the concept of high school physic’s explanation of matter in the universe.  Matter can neither be created nor destroyed however it can transition to and fro the states of energy and mass.  I feel the same about time.  It can be changed and reallocated but you cannot make more of it.  You can only spend it.  So make the most of your time.  You might think $ is the most important thing in your life or your family, but unfortunately they are not.  That is not to say they are not related to the importance of time, but every care you have is directly tied into the time you allocate to that matter of importance.  If you suck at time management, there is no time like NOW to get it under control.

SEPARATION AND ALLOCATION OF TIME
Separation of one’s personal life and business life are necessary.  When you are telecommuting that separation gets blurred.  Rather, the TIME you allocate to those separate aspects are more easily shared.  It is very easy to siphon personal time into professional time.  You might need an additional 30 minutes to finish something up.  At home that is easy, just spend the 30 minutes.  At an office, it can be quite different as you might be trying to beat traffic or catch a train.  So do yourself a favor and become very disciplined in setting certain limits to the allocation of your time.

GET A ROUTINE GOING
If you were going into the office, you’d hopefully take a shower and put on the appropriate attire.  No shit Justin! Well that might sound like a no-brainer but when you are working from home, you might just skip the shower, skip breakfast and work in your undies.  For me, a shower is not only a physical cleansing, it is also a mental cleansing.  I feel clean and therefore can think cleanly.  Its like washing off the ‘old you’ and getting a ‘brand new you’.  I like to think of this as part of “getting my game face on”.  I really visualize it as washing off yesterday.  In addition to that, suit up.  I don’t mean get a suit and tie on, but rather, dress for work.  Dress casually, but dress like you might be going somewhere.  Not just your PJs.

I consider myself a solitary person.  But as much as think that of myself, I still need some human interaction.  I need to KNOW that there are others around me.  I don’t need to talk to them but I do need to know I am not the last man on the planet.  When you work from home, ofttimes you may not see a soul until your significant other arrives home from work.  This can wear thin on you.  If you need to KNOW that people still exist, get your laptop and head out for an hour or two at a local coffee shop or WiFi location.  Grab a coffee and get to work.  You do it on the way to the office so why not do it here.  After a while, head out to another place.  Don’t be the weird dude who goes there everyday though.  Mix it up.  Hit Starbucks for a few days, then Panera Bread, and then Local Joe’s Coffee Shop for a few more.  Get a routine of going places occasionally.  This will reintroduce the human factor of the office back in your home office.

MINIMIZE DISTRACTIONS
If you can’t have the TV on while working, then turn it off.  It is as simple as that.  If you have kids at home who wanna see Sesame Street dot com, then head out for the coffee mentioned above.  The idea is to minimize distractions as best as possible.  Personally I can have the TV on and not be distracted.  I use it more for the emulation of the human factor I miss from work.  Something about knowing that that person on TV (generally from a cable news channel) is talking live.   Radio does it too.  But putting in a DVD or listening to music from a CD doesn’t help me as I realize subconsciously that is not a live broadcast.  Call me weird.

EAT AND DRINK AND WALK AROUND
I can’t stress this enough.  When in the office, you gotta eat and drink and walk around.  The very fact that the office is NOT your home means that you at least have to expend some energy to get there and probably you have to walk to go get food for lunch.  At home, physical activity is not as necessary since the fridge and bathroom are only a few steps away.  This becomes a BIG issue.  You might notice that working from home allows you to get into the FLOW.  When you are in the FLOW, time passes much more quickly.  Hours actually pass when you perceive only a few moments have passed.  Pretty soon you have noticed that, oops, you skipped lunch and it is 3:30.  This can have a serious impact on your health.  And the quickest way to get kidney stones?  Not drinking water.  So in order to preserve your health make sure you are eating and drinking regularly.  Drink crap loads of water.  I drink upto 3L a day.  Yeah, I had “da stones” so trust me.

One way of making sure you eat and drink and walk is to set lunch dates with old coworkers.  Another is to have a timer or some alarm set up that bothers the shit out of you to remind you to eat lunch, drink water, walk around.

THE END OF DAY IS THE END OF DAY…PERIOD
Lastly make sure you call it a day.  When 5 or 6 or whenever you would normally call it a day at the office hits, then shut off your computer and reenter your personal zone.  This is probably the hardest thing to do for me as I often get in the zone and wanna finish “one last thing before the day”.  Don’t.  Soon it EOD will have moved from 5 to 6 and then from 6 to 7 and then pretty soon you are working after dinner.  Nah man.  Just call it a day like any other day at the office.



Essential Links for Flex/Flash Developers updated (again)
Tuesday, August 21, 2007, 9:04 pm
Filed under: contracting

Jesse Warden had posted a great read awhile back about the year in review regarding the demand of Flex and Flash developers.  A great read indeed.  I figured I would update the essential links with 2 to my previous articles on contracting advice and the one he has as well.  If you have any other links pertaining to this subject matter (i.e. Contracting, Consulting, TeleCommuting, etc.) please send em my way!



…some more chaw to chew.
Friday, April 6, 2007, 6:09 pm
Filed under: contracting, development, flex

Well based on some initial feedback from some pals and a very encouraging comment by JesterXL, I thought I might go ahead and continue on with the whole contractor/consultant posting thing. Adding a few things that I had held back on or came up with in the shower this morning (where I do my best thinking). So this will be broken up into some categories with no order of importance. Check back because I will keep adding to it. Also if you have some I may have missed, please let me know.

Rebuttals
The best defense is a good offense and a good play book. ERs are salesfolk by nature and have a whole play book to go on when it comes to making offers and compromises. If you have ever bought a car, signed up for a gym membership, or sat through an Avon sales pitch, then you have seen em in action. Take the car salesman: “Justin, what is it gonna take to get you to purchase a car from us today?”. Even the straight-shooters use this tactic. The ill-prepared consumer will probably start off with “well…um..you..know…I…just don’t know….Honey? ..what do you think?….”. In the same way the car salesman can corner a consumer with this question, an ER can do it too. But in all honesty, its a fair question. No bs, straight for the jugular. Anyhow, to help ease the pain, I have compiled a list of some ER statements and then what I thought was the appropriate response if applicable.

  • “If you play the numbers game too long, you will lose in the long run.” - I just heard this yesterday. There is some truth to it. Just like gambling or the stock market, the house wins in the long run. This is generally brought up in a conversation when you say something to the effect of “if I can’t get the rates I am looking for, then I will look else where”. It could also be a response to your lack of interest in going perm with a client/employer. Again they have a req to fill and will try to get you in there. There is no great response to this as it is truthful but you are probably smart enough to know when to cash in your chips and look for the permanent gig.
  • “I have been doing this a long time and…..” – Another cliche statement. Generally followed by any combination of any of the other statements presented here. The fault in their logic is that with the ever growing capabilities of the internet savvy public, the evolving nature of the national AND global economies, and the nature of technology as a whole, things are changing and so with it goes the means to make money based on what you know. There really isn’t anything to say to this by itself. The only thing I could think of, and this is generally something I would say to somebody when they are rattling on about some shit I care nothing for…”Well that’s cool man” kinda in that Tommy Chong way.
  • “People recognize when contractors are jumping around chasing the money.” – No shit! I did not know this. Has it ever dawned on the ER that sometimes the contract was only for the time allotted? What about prototypes projects, do they extend indefinitely? Who is to say I am not chasing some of those missed opportunity costs? The other fault in their logic is that people are no longer ‘lifers’ at a company. Even the full-time types have something like 3-5 career changes in a lifetime. So I’d expect even more mobility in a contractor or consultant. Best response – “This is generally the nature of contracting especially in the web/IT biz”.
  • “Would you consider going perm after the contract ended (or after a certain time frame)?” – This is the equivalent of the car salesman asking you, “So you like the EX270?, wanna buy it?” before you have test driven the car. Generally the whole temp-perm is thing is like a probationary period. Even most full-time jobs in most industries have some sort of clause in there papers. Its called at-will-employment which I think all states have. But we have strayed from the main point. This question is a fair question, but it is asked at the wrong time. This question should be asked of you after you have worked some time on the contract. Best response – “I would consider it, but I cannot answer with any percentage of certainty or guarantee”. You could also add “…but in making a decision I would be sure to give you sufficient notice” just to be a nice guy.
  • “We’d like to push for more (most likely $) but we don’t want to bother if you are shopping around.” – This comes up generally when you are looking at extending a contract but aren’t sure if you will stick around. Another valid point. Why bother sticking their neck out for you to get, say a pay increase, if you are looking around. I will tell you why. Because it is the nature of the business and it goes back to being a mutually-profitable-relationship. Basically they want to be able to save face. Images are important and having client-agency talks about the kind of dough to shell out for you is a touchy subject. But again, that is why they are in this business. Best resposne – “If I were to get a suitable increase in (whatever) then I would stay around for the length of the extension”. But then you gotta make sure to honor your obligations too.
  • “What kind of salary equivalent would you consider?” - This is really only asked if you are one to consider temp-perm opps or a perm opp. The hard thing to swallow on both ends is that generally salaried positions pay quite a bit less. Why, well because the company is generally paying for govt. crap for taxes and social(ist)-security. Also they might be offering health care, 401K, options, etc. Those are all well and good but do some math real quick. Generally you will have a rep agency right? Ok so then most likely you are working as W2 where they are handling your taxes and SS or as a 1099 you will be. So that doesn’t count. As a contractor you might be able to get your own health care or possibly sign onto your spouse’s. But let’s say you pay out of pocket for it. Let’s give an outrageous figure like COBRA stuff – $500 out-of-pocket for some decent health care. You can invest only up to certain caps on 401K’s (correct me if I am wrong) and that will be applicable to your employer’s matching. Besides a rep agency might have that for too. But let’s say you get some wild number like $10K/yr w/ employer matching on the 401K. So let’s see 500 * 12 = 6000 + 10000 = $16000/yr you have to pay out-of-pocket to match up with some of their offerings. Let’s do some more math now. Say you have been offered $80K/yr for a full-time gig. And let’s say you can get at least $70/hr to do the same shit for 2 consecutive contract terms. The contracting is gonna be about $140K/yr. So now start subtracting what you pay out of pocket. You are still making $124K/yr doing the contract. So how do they explain the $40K gap? Stability? Oh please… They’d be the first to tell you there are no guarantees in life if you were to ask about the likelihood of stability as an employee there. Best response – “I’d be looking for something comparable to my hourly rates.” or better yet for the term-perm folks, “I wouldn’t be able to answer that until I decided that I would be interested in a permanent opportunity.”


Some tips for Consultants & Contractors
Thursday, April 5, 2007, 10:33 pm
Filed under: contracting, development

If you are like me, a Flex/RIA contractor or consultant, and have recently updated your resume and posted to the job sites, then you have probably been inundated with calls and emails from flex-hungry recruiters and employers. There is a huge demand and a very small supply of Flex developers out there. Thus, the Flex-Mania…

That’s good right? Right. But when our skill sets are in high demand, sometimes we become so elated and wrapped up in the fact that we are getting all this attention that we forget some basic questions and concerns when considering a potential opportunity. So here are some tips to use and remember during your job-screening process. Oh, one more thing. Hereinafter all references to Employers/Recruiters will be ER:

  • Keep a journal/log of all conversations with ERs. It is very easy to forget things right after you talk about them. Everyone has heard this, “..nice to meet you. My name is Justin” and then 30 seconds later, you have forgotten the person’s name. So as good as you think your Ginko-Biloba filled memory is, it isn’t that good. Better yet, try taping your conversation. Just make sure to tell the ER that you are doing so.
  • Screen you calls. Recently I just started putting the same disclaimer and link on all the job boards that have my resume: “For information about my employment status/goals and links to my resume please visit….”. This will help you weed out those who are just blanket mailing anybody who matches, “flex, flash, developer” on Moster.com.
  • Don’t waste your time but also take your time (huh?). Time is your most precious commodity. You can waste money and make more, spill milk and buy more, but you can’t make up for lost time. In that same line of thinking, definitely take your time when making decisions. Never rush into something without knowing as much as you can about it. Also don’t waste their time
  • Discuss your expectations up front. I don’t know how many calls I have fielded where because I failed to establish what defines my accepted criteria for consideration up front, I ended up getting guilted into hearing/seeing about something that doesn’t meet those expectations. Not doing so just wastes their time and yours. Tell em what you are looking for.
  • Keep sniffing. What I am about to say might get me on some ER blacklist but oh well. When you are talking to a recruiter, you are talking to a salesman. Their job is to sell you to the client and to sell the requirement to you. You might get the straight-talkin’ no bullshit type or you may get a real slick ass clown who will try to sell you some waterfront property in Arizona. The only way to weed through this is to either possess or acquire a highly attuned sensitivity to bullshit. Of course this is common sense really. If someone tells you what everyone wants to hear, like its the coolest place and the people are great and you will love it, then you should be catching a whiff of something.
  • Don’t deal with the pushy types. There are plenty of the straight-shooters out there to not have to deal with the pushers. I got a whole list of cool ERs that I have dealt with. Being pushy means A) they are desparate B) they are not listening to your needs C) they are only interested in how to fill the req to make their commission or D) all of the above. In this line of thinking make sure you…
  • Assert yourself. Now this is starting to sound like an Anthony Robbins self help tape. Be honest and forward. Don’t be a Milton from Office Space. People respect folks with gumption and a backbone. They don’t respect Miltons. What a schmoe!
  • Burn a bridge or two. Yes I just said it. There is more than one way to cross a river. This is an overrated cliche. I hate it. I don’t advocate going and pissing off your current or previous employers or telling a recruiter to go to hell. That is not what I am saying at all. What I am saying is do what is right for you first. This is a business, not a relationship (yet). If you end up trying to appease some ER because you have gone on a few interviews and expressed a great deal of interest, backed out at the last moment, and then had a heart-to-heart with the ER to get you back in, you will most likely be unhappy with the decision. Then you were guilted into choosing it because someone said some touchy-feely cliche shit to get you to agree to sign on. Anyone who has done the job hunting game (ERs are employees too) will respect and understand that you gotta do what is right for you first. Also any sane ER will not take it personally and see that you are highly marketable and want to try harder to find the right fit for you. Plus the good ones will still be around the next time you are polishing up your resume and the bad ones…. just do some research for recruiting agency turnover rates.
  • Keep you ego in check. Just because it is Flex-Mania doesn’t mean that the tides can’t change. Plus today’s bad ass technology can easily be tomorrow’s Atari. Having an ego is not bad, but having a know-it-all attitude and an ego is. You can always learn something from someone or something.. There is always somebody bigger, badder, smarter, faster, fitter, etc. etc. etc. than you. Be humble but don’t low-ball yourself either. Know when to hold em and know when to fold em and know when to walk away.
  • Learn the art of negotiation. No need for further explanation. Plenty of books out there on this topic.

And now for what I consider some very specific things you need to know when talking about a possible job opp. These are topics that should be address before you ever agree to sign onto the job. They are also very reasonable request that if met with any resistance, should be a red flag.

  • Opportunity Costs. I think this is the most important thing to consider. No one seems to really think about this anymore. Today’s mindset of instant gratification has led our thought processes away from considering the costs involved with making one choice over another. These are not merely monetary costs, but the time, the experience, the possibility to learn, the future choices presented from making one choice over another. I recently turned down a well paying contract because the opportunity costs were just too high. I didn’t want to work in ActionScript 2.0 and Flash 8 because then I was stepping away from being able to forge new ground in the world of Flex development. I may have been making a butt-load of money but I wouldn’t be learning new things on a daily basis about a current technology. Instead I would be working on older technology not learning a whole lot about it. That is not to say I wouldn’t have learned new things, but I felt the risk was too high. Taking 3 months to step away from the battlefield makes it harder to return ready to fight.
  • Assess the non-monetary benefits. This is probably the second most important point in my decision making process. I am not talking about health, dental, 401, etc. Besides those are mainly full-time employment perks. I am saying to look at what you could learn from the opportunity. I always wanted to learn technology A and now I have chance to work in it. Also think about who you are working with. Always strive to work with people smarter than you are. Because then you are learning from them. Of course this means engaging them in conversation. This is why I chose the current contract I am on (sorta). During my in-person interview, these guys actually gave me some development tests and then presented better solutions to my answers. This was not a formal test but more like, “I want to do A, how would you approach this”. If someone gives you a MENSA-like brain teaser in the interview, then you know you are probably dealing with some pretty sharp tacks. Another thing to consider is how the opportunity will progress over time. Do you have a chance to check out other projects or are you going to be doing the same thing every day on the same project for the next 6 months. Some folks like change, some do not.
  • Meet the folks you will be working with in person and visit the location. Work environment is a major factor for me. Am I working with complete idiots, am I looking at a wall in a basement like Milton, am I working in a sweat shop? What about logistics? What is the commute time, the neighborhoods near the job, life style effectors after you go home from work. None of these things can be truly be put into context of your expectations until you have seen and met the place and people. This is even more important if you are considering a job that requires relocation.
  • Ask to see and interact with the project in question. You should be able to see some screenshots or designs at the very least, if not be able to interact with some workable model. Also ask about getting some coding samples, certainly they would ask freely of you. If you might be working with Mr. No-Comments-Spaghetti-Code for the next 6 months, you may think twice about the job opp. Keep in mind you may need to offer to sign a NDA. If someone puts up a stink about this, then you are catching a whiff of… *sniff *sniff… poo.
  • Discuss your rates. No kidding. You wouldn’t agree to buy a car before knowing a final price so why do so for a contract. And if the ER you are talking to says things like, “these people are willing to pay what you are worth.”, “is money the most important thing?”, “it is a little premature to be discussing this at this stage in the game”, well then yes folks, you are smelling the cow pasture real good. The answer to their questioning goes back to time being a commodity. Why waste time interviewing (possibly taking time off from your current engagement) if you can determine if it fits your rate criteria? If you are contracting then most likely money makes the top 3 list for why you are a contractor.You: “I am looking for rates between $x and $y.”
    ER: “They are looking for at most $<x.”
    You: “I’d need to think this through since I have other opps I am considering that are more within my range, I will get back to you.”Or you could say, no thanks. Then you have spent little time in determining that an opportunity meets/doesn’t meet your criteria. There is no shame in saying it. Don’t let anyone make you feel guilty about it either.
  • ONE LAST THOUGHT…. My buddy Colm (who happens to be one straight-talkin’ recruiter and a helluva guitar player) was giving me some advice one day. He gave me this nugget of wisdom and told me to chew on it for a bit: Mutually Profitable Relationship. That is exactly what being employed is. It is a mutually profitable relationship. This is especially true when you are dealing with recruiters. You get paid and generally, they get a cut. You make money, they make money, you make more money, then they make more money. So it behooves (grammar check anybody?) them to go to bat for you. At some point, the interview process turns from being a business engagement to being a relationship. This is where you have to decide what kind of relationship it is and if you wish to continue it.

Anyway, I hope you can learn from some of the things I have experienced. I have dealt with many ERs Even those ERs I have turned offers down from I have a good relationship with because they are the straight-shooters and so am I. If you like, submit a request and I can give some recommendations. Keep in mind I am in Boston, so I most likely won’t know about ABC recruiters in Columbus, Ohio. And of course, post your thoughts, hate mail and death threats here.

[EDIT 2007.04.06]
Added Part 2