Pitch the dream, not the job!!

Startup hiring is one of the most interesting and humane part of the whole starting up experience. Not something that companies do very well, though.

I’ve seen startup founders feel very apologetic when discussing career options with an employed person. The discussions go like “We wouldn’t be able to pay your current salary”, etc. etc.

Once you’re apologetic yourself, think of what the other guy thinks of you. I’ve been in such situations myself and can say that they’re not the most comfortable situations to be in.

Let’s change the scene a bit.

Founder pitch:

I can offer you a “life changing experience” which your current job is not capable of.

What I have to offer is the “thrill, dynamism, new identity” which your current job cannot provide.

Think of an environment “non-bureaucratic, filled with energy, enthusiasm, challenge, camaraderie”.. Think of us.

And guess what.. I’m paying you for all this.

I mean.. yeah.. why should you be apologetic about offering a lifetime opportunity..

Sell the dream.. Pitch the prospects.. not just the job.

[Shameless self-promotion]

Wanna join us at Orbis.. Send me a mail at satyan[at]orbismedia.in with details of yourself (less fluff, more code..) Thanks.

Interviews – Two at a time.

One of the factors that you look for in a candidate during interviews is his collaborative skills. How good is a person when it comes to carrying a conversation with a fellow colleague. How about disagreements? Does he respect arguments or gets aggressive..

How do you do that?

Here’s a proposition..

I was once in an interview session, and were short of interviewers. Lot of people showed up and we had limited time. So we decided to have paired-candidate session. This is where two candidates would appear together in an interview session. It was fairly effective and surprisingly pleasant experience. Here’s my observation from the experience..

1. There was a basic comfort during the session.

Since interviews have gone on to become this huge one-sided affairs, its become really difficult to gauge a person’s original nature during the interview. Getting a person into a proper discussion is quite a challenge. There are hardly any constructive arguments or discussions. Just questions and answers which are not a good representation of a person’s capability technically, leave alone his collaborative skills and interpersonal skills.

With another candidate in there, it is more comforting for the candidates and when they discuss, it can be more natural. This also spawns many useful discussions and arguments.

2. Simulate a typical work like setup

At work, you’re faced with similar situations fairly repeatedly. You are always discussing technical solutions with your colleagues. Either looking for support or challenging a solution. However, this situation is not repeated effectively during a interview session.

Two candidates at a time can help simulate a typical work-day, and can help gauge a person’s interpersonal and technical capabilities.

3. Interviewer as a moderator

I’ve always felt that interviewers should be doing more of listening. Just get the candidates talking and listen to them. With one-to-one interviews, mostly the sessions end up becoming a quiz situation. If that is all you want, there are many softwares which might do a better job at it.

With two folks in there, it can be really useful to have a good moderator as an interviewer. One would need to get both of them started in an argument or a discussion and observe how people react to individual points.

Knowing each of the candidates before hand can help a lot in moderation. Look up their details on the web and fit the right candidates together to get opposing views and opinions.

Conclusion:

In all, its a nice session to add to your interview plan. It’ll not only help you gauge the technical abilities but will also assure you of how the person would behave during the actual work. This coupled with initial research about the candidate can be a wonderful combination to add to your plan.

Have you ever conducted a ‘Two at a time interview’.. Please do share your learnings from the experience.

How to find yourself a good programming job

Tricky isn’t it.. especially when you’re a programmer.

Its not about just getting a job anymore, isn’t it. We all need a good job.. a good company to work with. Right set of people to work with. Good environment. Good technology, nice product to work on.. etc. etc. You know all those good things.

But the reality is there are loads of companies out there treating programmers as commodities. You’re put under a manager who comes right from a factory environment.. (actually even the factories are kinda better nowadays). And before you know it, programming is just yet another thing that you do at your job. Probably the least important one too.

Many folks are happy with it. If you are, you are requested to return back from here. Stuff below can lead you in different direction..

So if you’re stuck at such a place, what do you do? How do you make the switch to the kind of workplace that you like.. A place where you’ll be at your menacing best. Thrashing programmatic solutions one after another. Discussing all fantastic tech stuff. Breathing fresh air and coding stuff that you like.. How do you find the right place?

Job Portal (Hmm.. still many programmers are recruited this way)

Job portals are a great way to land yourself in yet another place you want to get out of. I really wonder if companies should even bother looking at them, unless they need posers and half-arsed programmer look-alike in their company.

I mean, look at the process of recruitment.. You enter your resume (one which says nothing about you..) into a site which catches keywords like java, c, etc.. and not your real traits. Then you talk to a recruitment guy, who knows nothing about programming or programmers, except that programmers are a bit odd looking and need to be taught manners.

Then there’s a fantastic interview process. You are made to sit for longer durations, where they check your endurance and frustration limits. This gives them a good idea if that person can bear the frustration that is to ensue once he’s joined the company.  And once the actual discussion starts, its not actually a discussion. Its a one-way street. Questions being fired one after another which has very less to do with actual work that one does.

Its a clear recipe for hiring average folks. One who works for money and has little to no passion for programming as such. One who’s likely to bring all wrong practices into your system. One who’ll never bring an innovative thought, even if his life depended on it.

So you ask what’s the alternative..

Go network with programmers..

Go where good programmers hang out. Talk to them. Know where they work.

Hang out at conferences. Find companies that do good work. Companies that project the right attitude.

Build your personal brand online

Identify a good open-source project that you could relate to and start contributing. Else, start a project of your own and get other contributors to contribute to it.

Get yourself on Twitter, Stackoverflow and earn good reputation in the community.

Earn good referrals.

Earn recommendations and referrals from respected folks in your community. Identify companies that you’d like to work with and earn your way towards meeting their standards of hiring.

These are of course not easy to achieve, but yeah.. are sure going to land you a job which is better than the one you’re currently in.

Try it out..

Target your prospective employees

This is the fourth installment in the Interviewing series. The first three can be viewed here.. Part 1, Part 2, Part 3

How do you target your prospective employees? The answer is.. the way you target your customers.

Go where they are most likely to be..

Are you looking for good programmers to join you? By good programmer, I mean one who can code. No.. not just write code, write code which is readable, maintainable, well tested and easy to change.

Where are you looking?

Job site

If you think job sites would provide you with such people, all I can say is keep trying.. someday you will find them. Its just too much effort to find one good programmer from a herd of resumes. Too painful and not very rewarding. And by the way, good programmers have started to remove their resumes from those sites. Thus your chances of finding one is made even more difficult.

Recruitment Companies

All I can say is.. well.. I can say nothing. They’re supposed to find you a good resume. I’m sure if you close your eyes and pick a resume from a pile, your chances of that being a good one will be equivalent to the ones filtered by these companies. And bonus.. it won’t cost you anything.

Go look at..

1. Technical conferences

2. Programming community (online/real-world)

3. Open source code bases. (github, code.google, and so many)

4. Gaming channels/forums (well.. atleast 50% are into virtual reality)

5. Twitter and stackoverflow. (There are some serious folks out there..)

Once you’ve found a few developers who you would like to have in your organization, what do you do?

1. Torment them with joining calls from your HR/calling staff.

2. Send them endless emails about sending their resume to you.

Well.. enough. You’ve already lost him. Now, let’s try something else

1. Have a chat with him about his interests (in programming and other things..) whenever you meet him.

2. Host a session on programming and invite them for a talk/session. They’ll respond willfully.

3. Host a session that matches their interest (gaming/social networking meet/others..) and invite them to participate.

4. Have an open-office day. Invite people from outside to come and visit your office. Let them have a look at how you work.

5. Constantly seek feedback from them. What do they like about you? What they don’t like about you..

Believe me.. you won’t need a formal interview after all this.

Its not easy. Certainly not. But the chances of finding a good programmer are much better this way. Certainly better alternative to a 1-hour interview session.

Coding. Interview as a Service – Part 2.

[tweetmeme source=”snarayan” only_single=false]

This is a continuation of the Interview as a service series. You can visit the part 1 here, where I talk about some of the common shortcomings in recruitment process of IT organizations.

Well.. to jump directly onto the subject, Coding. How many organizations have coding as a standard practice in their regular interviewing process? To your surprise, not too many. It is absolutely mind-boggling to how one can recruit programmers without actually testing their programming skills.

Programmers are supposed to program. Code. In any language, but Code. That is a absolutely non-negotiable. Any concept, any theory, if it is not demonstrated through code.. it is not correct. It is not good enough if one talks well, is well dressed and knows few technical buzzwords/jargons floating around in the industry. We’ve seen such folks struggle to write even the simplest of programs. And for all the referral process fans here.. these folks have lot of friends like themselves. They will refer everyone. No doubt about it. So you end up having a fantastic team of programmers who can’t program. Not program even if their lives depended on it.

This decision has to be made by the organizations. Do you want such posers in your system? If your answer is we’re fine with it, you can stop reading further. This one is not for you.

Ok. If you’re still here, I believe you understand the importance of recruiting right programmers. One of the important exercises to be done immediately is add 1 or more coding exercise in your recruitment process. Start with a simple problem, one  that requires some of the programming constructs and ask them to write code for it. Not pseudo-code. Actual program. Make sure the problem contains atleast 2-4 constructs like conditional logic, looping, modularization, data structure, etc.. as one sees fit. An example could be, from a list of numbers give me all numbers that are divisible by 3. As simple as that.

Look at how quickly one gets to solve the problem. In my experience, good programmers would be solving this the minute you’ve finished your question. Speed is not necessarily a measure of quality but can be treated as an indicator.

This is fine if you need just programmers. How about requiring good programmers? Do you need them? Yes.. ok lets go about doing it then.

Present a problem that involves more programming constructs and add a bit of design into it. You’d like to see how one goes about arriving at a solution. What are the approaches he takes. What are the approaches he doesn’t take, and reasons why. It can be a really exciting experience when you carry this exercise with a real good programmer.

I’d suggest doing this on premise and actually going through the whole process of arriving at solution. Thats the best way to do it.

One of the other approach I’ve seen is sending the problem to the programmer and ask them to submit the code. After submission, on premise, discuss with them about their choices and practices.

If you go with this approach, I’d rather suggest submitting code katas, screencasts.. This would give a nice idea of how a programmer goes about doing his job. How comfortable is one with his editor. What shortcuts does he use to get the job done. What classes he comes up with, etc..

To summarize, to build a good or even decent software organization, you need to focus on the kind of programmers you let inside. Better the programmers, better the kind of services or products you provide.

How about interviewing as a service? – Part I

[tweetmeme source=”snarayan” only_single=false]

There are many parts of recruitment that are outsourced. Outsourced to people who have little to no knowledge of what kind of people are required for the job.

So the effects are, requirements like this:

1. Do you know Java?

2. We’re looking for a .Net person for this project.

Would a resume which has no such keywords like Java, .net, etc. be even filtered into our recruitment process. Imagine a resume which states things like Object oriented principles like Law Of Demeter, Tell don’t ask principle, Liskov’s substituition, Refined Unit Testing, Test Driven Development, etc. I’m sure 99.9% of such resumes will be filtered out.

In the previous example 0.1% of resumes escaped due to some mistake in the filtering software/process.

You’ve already lost some good programmers. Congratulations.

Next up is the interviewing process..

3/4 companies do not have coding as part of the interviewing exercise. That is fairly irrelevant, isn’t it? You can judge a person from his body language, confidence in his language ability, etc.. right? Right.

There are couple of reasons why this is happening.

1. Already our outsourced business principle has made programming one of the clerical jobs. Programming is a necessary evil you need to go through in your pursuit of becoming a manager.

2. All companies are virtually the same. You can hardly differentiate one from the other.

So interview is done. Wonderful. Our candidate has been hired.

Next up, he refers people similar to him for the job. In this revolutionary referral process, the only motivating factor is money/reward. So you mostly get people referring for reasons other than improving companies culture and stuff..

Well.. we’ve been extremely happy with such process till now. Since the demand has been high, we did not really care.

But for longevity this wouldn’t work. So the process has to be refined to not filter exceptional candidates. Move away from the sub-standard and mediocrity encouraging framework of recruitment.

For companies/people interested in solving this.. I’ll try to touch upon the solutions/theories in a series of articles. Your suggestions/case-studies are also welcome.