Monday, November 28, 2011

In This World - 17

"The true leadership is not given, it should be earned and consistently demonstrated."

"A true leader creates more leaders and feared ones create blind followers"

Friday, November 18, 2011

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!



Saturday, November 12, 2011

Openness with Free Web Fonts

If you want to design a webpage with stylish font. There are few important things to consider before using graphical text images.
  • If you prefer search engines bring traffic to your web page, it has to be Search engine friendly, as of  now crawling engine ignore text written in images. (BTW, can search engines improve to extract text from image and index? like Quick Quest does ;)
  • The font should be rendered and displayed consistent across multiple browsers.
  • When viewed through mobile browser, it should wrap (as normal text do) to fit the small screen.

Its now old fashion to choose the most common font (either Times New Roman or Arial, that are for sure exist in users computer) and design the page accordingly to stay safe.

Things have changed, so the approaches.

To respect above points, HTML font embedding became essential need to design impressive web page (SrushtiSoft.com home page is using font embedding. Its live now!).

Back in 1997, Microsoft released Web Embedding Fonts Tool (WEFT) which allows to create font objects (.eot) file from our favorite True Type Font (TTF) and refer it in CSS. That's all! Any page viewed in Internet Explorer started rendering our favorite font even if it is not present in user's computer.

That's really cool.

As usual, Microsoft restricted this openness only to IE browsers and that made many web developers to ignore this effort silently. (However, Microsoft is still active on WEFT initiative and anytime may strike back)

So there comes Google with free open source Web Fonts! http://www.google.com/webfonts.

As of now there are 291 free open source fonts for embedding. With each font, Google provide a quick guidelines on how to use in a web page.

Your jaw drops when you see Google giving just 2 lines to integrate web fonts!

SrushtiSoft home page uses one very decent font out of 291 Google web fonts. We tested it over 100+ browsers on Linux, Windows and Android platforms and very few browsers failed to render.

I sense strong future of web fonts as they make web pages to render without mandating users to install required font. For a web developer, there is so much of relaxing factor in it. :)