Thursday, February 23, 2012

The Github profile as a resume mentality


I have created more than 50 personal products on the web and mobile space and none of them are open source. 

I am not for or against open source. I just haven't thought about it. Period.

There is a big debate raging on Hacker News and elsewhere where I learnt that people are increasingly favoring candidates' Github profiles over resumes.

Now, I could learn about how open source works and the philosophy behind it, but for the sake of this debate I don't want to (relax, I am sure it is noble) as I feel that's missing the point.

I want to question how a personal belief could somehow become a dangerous fad.

As a recruiter I might decide to look at the candidate's code quality OR look at actual working end products the code has produced.  Looking at code is in some ways putting the cart before the horse.

This takes us to another concept that some programmers are in love with... beautiful code. What? How about a beautiful product? That's all that matters. If the product is beautiful(useful, is the right word), that's the end of discussion. 

The focus is somehow heavily on the code not product. The focus is biased towards a very fashionable belief system - Open source software.

You might as well say, to judge your personality and character, I will look at how frequently you visited the church or temple in the last month. What about atheists? or agnostics? 

Let's also chill a little bit. If a candidate offers me his Github "resume" I might even look at it. It just opens a ton of questions for me, tough. But in the end, a working end product he/she has created is the absolute real measure of programming skills. 

Agree?

Don't.

The end product being important is MY belief. I subconsciously fall prey to it all the time. Not all code needs to turn into a product. People could love writing algorithms or components that are not visual in nature. They might be good at creating tools that help themselves. I once wrote a scraper that could easily extract content from a webpage without using complicated RegEx. By the way, there was guy in my office who believed that writing RegEx code was the true test of a programmer. I begged to differ and wrote a wrapper around it so anyone could write pattern matching web scrapers! I use my wrapper to this day. I haven't open sourced it. Why? I just haven't thought about it.

Personally, I don't focus too much on skill and during interviews I try to ask open ended questions where I fish and find my way into the candidate's psyche. The questions I ask are extremely open-ended like the following...

"What is the most impressive thing that you have built or achieved?"
"What do you understand about your job that other people in it just don't get?"

When I ask these questions I am hoping for a great answer or a revealing insight about the candidate. In fact, I am presupposing that the candidate has an amazing answer to provide. It might fail with most candidates. That's the point. I have no idea what the questions might reveal. The reason comes afterwards. Y Combinator's application form is a great example of brilliantly designed questions. It is this thinking that led me to design a service for recruiters at FastCandidate.com.

Let me end with this. 

You are NOT a true programmer if... 
  • You love one programming language over another.
  • Are constantly getting into heated debates over Linux vs Windows.. Bill Gates vs Steve Jobs on internet forums.
  • Believe everything should be "open source" and free.
  • Are obsessed about writing "beautiful code".
  • Spend more time reading about coding than writing it.
  • The more difficult and complicated the construct you work in, the better the programmer you think you are.
  • Have rigid rules about how code should be written.
  • Look down upon "other" programming languages/programmers.
  • Call yourself a [insert programming language here] programmer while introducing yourself. 

There I go again... Don't take me seriously. Those are just MY beliefs at this moment in time. They are subject to change.

Thursday, January 19, 2012

The STOP SOPA ribbon

Look to the top right.

I thought it would be great if a lot of my hacker friends could put up a "stop SOPA" ribbon on their websites to spread awareness. Imagine if a million small websites did this!

As luck would have it, I was working on a JS based distribution technique for FastCandidate.com and so it was easy to put this up with that code.

An example is visible on this blog and to get it just add the following script anywhere in the body section of your webpage

<script src='http://stopsopabar.appspot.com/js/sopawidget.js' type='text/javascript'></script>

that should do it.

I hosted the code on Google App Engine so it should scale easily to millions of visits per day. If any of your friends run websites please tell them about it. Here is the holding website.








Thursday, December 29, 2011

Rejection therapy for entrepreneurs

Selling is a big part of entrepreneurship. So is launching products based on crazy ideas.
Most of the time we fear failure because we fear rejection.  We want proof that people would accept our products the day we launch as we cannot bear to be rejected. So sometimes we dont even attempt to do what we really want to do because we are just so conscious of what people think of us.
This is so sub-conscious that we convince ourselves that we are perfectionists and have very high standards. Perfectionism is a multiplayer game. You cannot be a perfectionist all by yourself. If you were to develop products only you would use(and nobody would ever se you using it), you would make something that just about works.

One of the ways to overcome the fear of rejection is by de-sensitizing yourself to it. By bringing it on to yourself deliberately and, if needed, in a safe, inconsequential setting. A while back I heard of rejection therapy, which is an online group, which helps you with this process. Ever since I read their literature, I adopted my own(slightly dishonest) version of it and practiced it and got some great results.

here is the link 




Thursday, July 21, 2011

Re-post: Packaged Philosophy - my take on "The Matrix"

This is a re-post of a review I wrote a while ago on my earlier blog.



Honestly, as far as I have seen, there are people who enjoy the matrix and people who do not.

And people who enjoy it, do so because they understand it or simply like the ’’special’’ special effects.

What can you say?.. As a viewer, matrix does demand certain pre-requisites. one of them is a mind that is open to possibilities. Just the way some bollywood movies demand a mind open to impossibilities ;-).

Matrix is like a mis-placed phone call into the future. It is a not-so-colorful glimpse at what CAN happen as a logical progression of the present, in the future.
In a way, it is creativity ’’inside’’ a box. a paradigm shift. and that's what makes it compelling for so many people to repeatedly list it as one of the best movies they have watched in their life.

The movie intellectually engages you, stunning you on more than one occasion, while still managing to press the right buttons of entertainment value and outstanding special effects.

The moviemakers’ imagination is so sublime that unwittingly they seem to have put the movie out of the reach of many people’s comprehension levels.

The funny thing is, even though the quality of the special effects in this movie is now easily replicable, it needs a story platform that is as convincing as the matrix to be justifiably used.

Though a lot of disciplines (like philosophy, science, psychology) come together beautifully in this movie, the fundamental premise of the movie is that the human brain is more or less like a computer and therefore it can be controlled and programmed to ’’experience’’ things by sending the same signals to the brain as the five senses do.

At the end, the writing on the wall is that, even if someone can fake your "experience’’ of life for you, the reaction to it or the choices you make are your own and Neo the central character is a symbolic representation of that fact.
Morpheus shows that belief is what makes reality and the makers of the film seem to have gone through a real test of their beliefs too.

The script must have been a challenging one for them to execute and just the fact that it took 3 parts to cover the story is a telling fact of the ground-breaking thought and passion that must have gone into this project.

Thursday, July 14, 2011

Webinar: Customer development for startups

A discussion we webcast at Techgig about customer development. Its based entirely on the book, The 4 steps to the Epiphany by Steve Blank, which I am also trying to adopt in my ventures.

TechGig.com Webinar: From Product Development to Customer Development from techgig on Vimeo.

Friday, July 8, 2011

Screen scraping for non-programmers

One of my favorite tools I made for myself is now located at http://netreputation.co.uk/extractor/

I dont believe in coding in complex Regex every time I have to scrape something off of a web page somewhere. So when I got tired of it I saw a pattern in my detection of patterns and coded myself a simple tool to make life easier. I also wanted it to be such that I could ask anybody to get patterns for a website.

This is for programmers who are not well versed in Regex or even non-programmers who want to get some rudimentary scraping done. Mind you, it is also a lot easier to read than Regex as most of the HTML is preserved in the pattern.

The learning curve is very small. Here's how to use it:

Step 1:  Lets say you want to make an rss feed out of this site http://news.ycombinator.com/

Step 2: Click on View Source in your browser

Step 3: If you look at the source you will see that the "titles" we want is nestled in this piece of HTML

<td class="title"><a href="http://blog.pinboard.in/2011/07/two_years_of_pinboard/">Two Years of Pinboard</a><span class="comhead"> (blog.pinboard.in) </span></td>
Step 4. Replace the "content" part  of the HTML with variables like this. (Since we want an RSS feed we will use the standard {title}, {link} and {description} as variables)

<td class="title"><a href="{link}">{title}</a><span class="comhead">{description}</span></td>
 Step 5. Click on make RSS feed. and now you can use the resultant URL in your RSS reader.

Note: If it does not work, it could be that the browser you are using gets HTML thats different than the one on my web server. On the web server I simulate Internet Explorer as most sites are customized for it. So try getting HTML out of IE instead.

If you don't want a variable's content in your resultant xml just use the word dummy in any part of the variable like this {dummy123}. This is especially useful for making RSS feeds where it would accept anything other than the standard node names.

Monday, July 4, 2011

Webinar: Web 3.0 - The possibilities for developers

I did a webinar recently at Techgig.com a Times Group concern where I provide consultation.
Its about an hour long


TechGig.com Webinar: Web 3.0 and The possibilities for developers from techgig on Vimeo.