Skip to main content

Hiring a Super Programmer?

When it comes to programming, I noticed most of the super programmers share similar attitude and thought process. I started identifying similarities whenever I took interviews.

After meeting 3000+  potential candidates (thanks to all my previous companies choosing me as interviewer), I dared to have a quick points to spot a 'Super Programmer' from the pool of programmers.

When I shared these points with my colleagues, they found it useful during their interviews.

Please note

  • These points are strictly valid for 'Rock Star Programmers' only. If you apply these observations to a good programmer, you may loose him. 
  • I always don't follow these points very strictly in interviews as there will be many other aspects to consider, However these can just be used as indicative pointers if you feel good. 

So here it goes,
  • They may be little nervous in the beginning. When you ask them about their interesting project, their eyes glow and for a moment they just forget where they are and completely immerse in explaining the problem, how much they were amazed, their explorations and implementations.
  • They have habit of knowing all latest happenings in their interested technical area. That means they are closely following beta and release candidates as well.
  • They read lot of blog posts, tech articles and most of the time own a technical blog. They have good bunch of posts on technical articles or pointers in their blog.
  • Even if they don't know the answer, they logically think and almost get through the problem. Their hands don't shiver when writing code. No matter even if the syntax is wrong.
  • They always try to generalize the approach and try to make it reusable.
  • They are fanatic about browsing the project code-base and finding out what is best in it. If something is badly designed or written, it disturbs them and try to revamp/fix it if permitted. They will be proactive in doing it (provided such an opportunity is given).
  • They have earned good reputation points in technical forums. That is more important than having bunch of certifications.
  • Their resume contains bunch of memory profiling, performance profiling, code review tools and many popular open source frameworks used (like Caliburn..etc) in their project and few of those is introduced in their company projects because of them.
  • Ask which piece of code in their previous projects liked a lot and which was not. It indirectly tells us their level of understanding about technology.
  • Observe your conversation with them. As you know, the developers conversation context is bit different. Are they catching it quickly? your such conversation should go with them smoothly. For example, I usually ask what version of Dotnet you are using and many reply, its 2010 or 2008! First point, They are best Visual Studio.Net IDE users than Dotnet programmers. Second, they are not understanding the context. I have asked the version of Dotnet framework not the IDE. If you are explaining too many things during the discussion, then there is a problem.
  • When you give them a paper and pen and ask to write a program, check how much space they waste. 2 things to notice,
  1. If they fill A4 sheet page to write 2 small programs (reverse a string and looping through ArrayList having different type of objects) maintaining bigger inline space, then they can't think more on efficient usage of computing resources also. Even if they think, it may be their simple programming habit but not something coming out from geeky mind. This is more inspired from 'you will work the way you really are'.
  2. With minimum inline spacing, even if they fill A4 sheet writing lot of code (without striking unused ones) then, they are dangerous programmers. They can explain the logic on the same day it is written and anytime in future you need to pray for God to know about the hidden logic.
  3. Why there should be a 3rd point when I said only 2.
  • Ask them very basic questions (If you have to implement AJAX response/request what objects do you use in Javascript) and see how detailed and thoughtful answer they give. Whats more interesting is how deep they delve and present different aspects of it.
  • They have either contributed to one of open source projects (on CodePlex, SourceForge,gitHub..etc) or have hosted their own.
  • They have published some articles on technical article sites (like CodeProject...etc)
  • Majority of their posts on twitter or facebook speaks about their serious technical explorations than 'I ate this', 'been here..' or sharing funny cat videos.
  • They have list of achievements in the resume and may not be a certified professional. 
No matter even if candidate don't stand true for all above points. Most of the time we believe our senses and take the decision (and that is usually proved right.)

Well, this is my list. Do you have some quick points? Feel free to share here.

Thanks for reading!


vikas hebbar said…
The blogs and help given are nice.Keep posting.All the best
Thanks Vikas. Glad that you enjoyed reading.
Great strategy to differentiate between programmers, moreover this I am glad to see that someone is there who cares about all other parameters as well to be a rockstar programmers. Loved this part of first point it is so real :

"When you ask them about their interesting project, their eyes glow and for a moment they just forget where they are and completely immerse in explaining the problem, how much they were amazed, their explorations and implementations"

Popular posts from this blog

Windows forgets visual effects settings on log-out or reboot for non-administrator account

Steps given here worked for me with Windows 7 SP1. Hope you may find it useful.

Start -> Run-> cmd (press enter) -> type SystemPropertiesPerformance.exeThis gets you the "System Properties" window, go to  Advanced tab -> Performance Settings -> Visual Effects tab and choose "Adjust for best performance" and click OK. Note: While doing all these UAC doesn't show-up as all changes you are doing will be saved in your logged-in profile account.

Reference material used:

Feel free to comment your findings.

Why Akbar was Great?

I have fanatical interest to be acquainted with what made Indian emperors take influential decisions during their reign. Few great kings’ valuable decisions created a remarkable history.

When Akbar accepts the marriage proposal of Hindu King (Bharmal of Amer), he wishes to make an attempt to set an example for two culture and religions and convey the message of peace. Later, destiny takes him to the critical path of life having most depraved political and family oriented problems. Being a true great emperor, Akbar learns and conclude challenges by demonstrating his exceptional leadership qualities. With his verdicts, Akbar stands as an incomparable king of all time. “Jodha Akbar” – brings 16th-century incidents to life and shows beginning part of Akbar’s married life which was, in fact, a deal for political gain. This decision slowly unleashes Akbar’s loving life, internal dreadful politics, painfully desirous people around him and betraying family members.

Jalaluddin Mohammad Akbar is…

Windows Service or Windows Task Scheduler?

Are you planning to create long running background process (in C#) and thinking to build a Windows service?

Then wait for a moment!

Windows Task scheduler (Start->Programs->Accessories-> System Tools-> Task Scheduler) can also be a decent choice!

"Windows Vista and higher windows (server) operating systems are offering matured Task scheduler with many advancements like Triggers, Actions, Conditions, failure recovery, email notifications, security and much more."
Its obvious that many programmers think Windows Service is easy to maintain and what it can do, task scheduler can’t. But now, it’s time to look at Windows Task Scheduler [also at Microsoft white paper] and see what great features it is offering.

When to go for Windows Service?
Okay, let me try to answer this popular question in one line. 

Windows Service is suitable for receiving service request 'anytime' and process 'instantly'.

Just think of anti-virus scanner, network port activity tracker…