Tuesday, October 23, 2012

Three Tips for Recruiters

The longer I work in the software development community, the more recognition I get from recruiters as someone who can help them find candidates and the more colleagues that approach me asking for career advice. I love helping good people on both sides of the equation, but there are a few things I expect from recruiters.

Be Candid

When I speak with a recruiter who is unwilling to share information about the client for fear they will be circumvented or will not provide a general range for the salary/rate, it says to me that they do not trust their own value and consider the candidate an adversary.

Experienced recruiters bring more to the table than a job description. They, or someone they work with, have a relationship with the client company and a reputation of bringing them solid candidates. A resume presented by such a recruiter may be given more credibility and often goes to the top of the interview list.

In my experience, providing a general range of possible compensation for a position is a win-win. It gives a potential candidate the information they need to decide if the opportunity is worth pursuing and keeps from wasting anyone's time.

Avoid Random Referral Solicitation

I can't count how many times some random recruiter has asked me to help them expand their network by recommending them to my colleagues or, even worse, asked for me to give them contact information for possible candidates. There is a short list of recruiters which I provide when someone I know is looking for a gig and these are people who I've known for years and have a solid reputation for taking care of their candidates. It baffles me that someone would expect me to recommend them when I cannot vouch for their character and abilities.

That said, I encourage recruiters to email me job openings that fit my niche as I may come across someone who would be a good fit. While I appreciate having these on hand in case a colleague expresses a need, I do not actively seek candidates for these positions unless there is significant motivation for me to do so. Motivation comes in many forms, but the most straightforward is a referral fee. If a recruiter who I do not have a relationship with expects someone else to spend time and energy helping them fill a position, they should expect to offer compensation in the same way that I would share part of my billable rate should I need help from another software developer who is not getting paid for the work.

Get Involved

Having served as Treasurer, Vice President, President and now Board Member for the Nashville .NET User Group, I often encourage others to drop by and find a way to participate in the community. It can be an important tool for software developers, but is absolutely vital for a recruiter.

Imagine taking all the juiciest most healthy fish in a lake and putting them in a swimming pool. Wouldn't that be a great opportunity for a fisherman to make a great catch? User group meetings are where the best and brightest gather and recruiters are welcome at most of them, so long as they respect the meeting and are not overbearing. Even if the recruiter doesn't speak to anyone about opportunities during the meeting, they have a connection to reference next time they call.

Attending community events is not just about networking. The bulk of a technical presentation might be over a recruiter's head, but over time they can pick up meaning behind the buzz words and witness individual and group reactions. Understanding these reactions can help identify the right candidates for a position and what motivations particular candidates might respond to.

There's a wealth of non-technical education that takes place as well. By watching how people interact one can learn quickly who people in the community respect and how they interact. Seeing how someone interacts with their peers can be a great indicator for how they might fit into a team.

Chances are, any recruiters who are taking the time to read this article are already on the right path. Hopefully these tips will help provide direction to someone I will, one day, have the pleasure of working with.

If you have any additional tips or thoughts on this topic, please feel free to leave a comment below.

Monday, October 8, 2012

Bank of America's $888,888.88 Surprise

If you have a Bank of America checking account, you could find yourself nearly a million dollars in debt as a result of depositing a check that bounces.

I've been a Bank of America customer since 1998 and have never had a problem with my checking account until last week when I noticed an $888,888.88 withdrawal appear. As a software developer, my first thought was some sort of system error so I searched the internet to see how many other people had experienced similar glitches, but I seemed to be the only one. Then I started to worry that it was fraud so I contacted customer support. They transferred me to Sheldon Walker in the Global Fraud Prevention department where I was informed that they had applied this charge to prevent me from using my account. Their justification was that a check from my renter had bounced leaving insufficient funds, so to ensure that the bounced check was re-payed they deducted nearly a million dollars from my checking account. Sheldon gave me his direct number (626-397-6029) and told me he would have to be contacted to remove the hold once my account had sufficient funds to cover the bounced check.

I knew my client's next invoice was being processed Thursday night so I waited until the funds were deposited and called Sheldon first thing Friday morning. I left a voice mail message that the funds had been added and I needed the fake charge removed. With the weekend fast approaching I called back every hour leaving a new message, but Sheldon never returned my call. 

I've never heard of a bank purposefully creating fake withdrawals of arbitrary amounts and can't fathom why they didn't place a hold for the amount of the bounced check. It all seems quite unprofessional and makes me think I need to find a bank that will take better care of their account holders.

Apparently I'm not alone. Here are others who have gone through the same nightmare including a TV news story:


UPDATE 10/09/2012:
I received an email notification this morning that my Savings account balance had dropped to $0. When I logged into online banking I found that Bank of America had drained my savings account as "OVERDRAFT TRANSFER HOLD". I tried one last time to reach Sheldon Walker, the employee to whom I first spoke with regarding the hold, but my call went to voicemail so I decided to try another route.

I then called BoA Risk Management (877-240-6886 option 2) and was transferred to someone who was able to remove the -$888,888.88 entry. They were very apologetic and, after a few minutes on hold, informed me that they had removed the extra fees that had been added as a result of the hold. I can verify that my account now shows no trace of the $888k entry and I'm back to black. The savings transfer hold and overdraft fees still show up, but I'll give those a while to clear before calling back.

FINAL THOUGHTS:
I'm happy to have my account back, however this whole experience has shaken any faith I had in Bank of America as a safe place for my money. Because one deposited check bounced, I lost access to my account for nearly a week and watched my savings siphoned off into a black hole of fake transactions. If not for my own persistence, this would have surely gone on much longer as nobody from Bank of America ever initiated contact with me. I had to investigate the cause for the mysterious charge and hunt down someone who could rectify the situation. There's no excuse for a bank hanging a customer out to dry like that with no indication of the cause or what needs to be done.

Time after time, Bank of America makes it clear that the customer is NOT their priority so I'll be moving my personal checking, savings, and business accounts as soon as I can decide on a new home for my money.

Friday, September 28, 2012

Conference Survival Guide

The fine folks running Bar Camp Nashville asked me to write a short guide to help attendees get the most out of their un-conference experience.

General Tips
  • Plan Your Schedule - Note which sessions you want to attend in advance. Choose backup sessions in case your first choice gets rescheduled or canceled.
  • Dress Comfortably - It's hard to concentrate on the speaker if your feet are hurting.
  • Bring a Bag - The conference might provide one, but then it's going to look just like everyone else's and you run the risk of losing it.
  • Take Breaks - All those sessions can get overwhelming. Don't be afraid to take a break to digest and discuss what you've heard with others.
  • Don't Be a Loner - Meals are great networking opportunities and you can usually find at least one other person who is hungry and would enjoy the company.
  • Be a Loner - Don't spend the whole conference around the same people, especially coworkers or friends who you see regularly. By striking out on your own you may meet people you otherwise wouldn't.
  • Eat Left Handed - There's no telling what kind of germs you've accumulated by shaking hands, not to mention all the door knobs and railings. Wash your hands regularly, use sanitizer and try not to touch your face or handle food with your dominant hand.
  • Use Twitter - Even if you never post a single tweet, Twitter is a great way to find out what's going on and connect with people. Search for the conference name, hash tag or influencers to see what people are up to.
  • Write on Business Cards - When handing out or receiving a business card, flip it over and write a short note on the back to help later with recalling what was being discussed.
  • Follow Up with Contacts - Don't just throw all those business cards in a drawer when you get home. Take a moment to write follow-up emails and enter their contact information into your address book.
Session Tips
  • Taking Notes - Write down reminders for yourself when you hear/see something you want to look at more closely later. Ask if the presenter will be posting their slides. If not, use your phone's camera to take snapshots of important slides. If so, then there's no need to copy them down and you can focus on what the presenter is saying.
  • Ask Questions - Unless the presenter has asked to hold questions until then end, don't be afraid to speak up. Chances are, someone else in that room has the same question and is afraid to ask.
  • Use the Two Foot Rule - If you're not getting something out of the presentation, don't be afraid to use your two feet and walk out to try another session or just socialize.
  • Following Up - Most presenters will share their email address or twitter handle as a way of contacting them with questions. Take advantage of their offer to start a dialog.
  • Do Something - Find a way to use what you've learned in the session. Teaching it to others is a great way to be sure you understand and will retain your new-found knowledge.

Monday, September 24, 2012

Memphis .NET User Group (MNUG)

Last week I mentioned that I'll be speaking at the NE Arkansas .NET User Group on the 27th. Since then, we've arranged for that presentation to be broadcast via Live Meeting and the Memphis .NET User Group will be joining us live. Someone local will monitor the meeting chat room and relay any questions or comments from the online participants.

UPDATE:
If you attended this talk and would like to provide feedback, you can do so at SpeakerRate.com.

Thursday, September 20, 2012

New Talk - Going Solo

I'm working on a new talk for Bar Camp Nashville and have never had so much fun putting together a presentation. The title of my talk is, "Going Solo - How to Train Your Wookiee" and am going with a Star Wars theme. Here's what I've got so far:

Description: When you started you were but the learner, now you are the master. You can make the Kessel Run in less than twelve parsecs, but you're getting tired of Greedo and Jabba demanding a cut. If you dream of being your own man, join us in discussing how to choose and outfit your ship to embark on the quest for freedom.

Topics:
  • Opening Introduction - "I'm Gaines Kergosien, I'm here to rescue you."
  • Getting Rich - “Wealth...more than you can imagine.”, “I don’t know. I can imagine quite a bit.”
  • Possible Pitfalls - "I've got a bad feeling about this."
  • You Can Do It - "I find your lack of faith disturbing."
  • Marketing Yourself - "The Force is strong with this one."
  • Creating a Company - "Aren't you a little short for a stormtrooper?"
  • Contractor Agreements - "Let’s just say we’d like to avoid any imperial entanglements."
  • Managing Finances - "Into the garbage chute, flyboy!"
  • Paying Taxes - "The Phantom Menace"
  • Tax Deductions - "These aren't the taxes you're looking for."
  • Working Remotely - "You're all clear, kid! Now lets blow this thing and go home!"
  • Subcontractors - "Help me Obi-Wan Kenobi. You’re my only hope."

Special thanks to Scott Walters and Philip Wilson for helping brainstorm ideas for the talk.

UPDATE:
The schedule has been finalized and we'll be in the Cadillac Ranch Poker room at 3:45pm on October 20th.

UPDATE 2:
Here's a quick preview of a few title slides from the presentation:

UPDATE 3:
We'll be streaming live at http://www.livestream.com/barcampnashville5

Tuesday, September 18, 2012

.NET Testing Frameworks

Most of my testing experience has been with MSTest, NUnit and Selenium and I feel this is an area I need to explore in more depth, so I thought I'd put the question to my colleagues and readers: What testing frameworks do you prefer and why? Below are a few lists of some .NET oriented frameworks with some notes on what sets each of them apart from others. I welcome comments confirming, challenging or correcting these notes as well as suggestions of others I may have missed.

Unit Testing
  • MSUnit - Included with VS, Easy to implement
  • NUnit - Most common third party framework
  • xUnit - Extensible, lends itself to TDD/BDD
  • MbUnit - RowTest for parameterized testing

Acceptance Testing (web)
  • Selenium - Relies on CSS ID and class selectors
  • WatiN - Works best with IE

Tools

Mocking