Monday, July 23, 2012

I just cannot get along with Apple


Save it. If you are an Apple fanatic, that is. 

And if you are Steve Ballmer, the only remaining Microsoft fan, that is reading this...  “I am probably just going through a phase Mr. Ballmer so you can buzz off too”.

I just cannot get along with Apple.

I think I already said that... and out loud too...  and in a blog post... to be indexed and stored by search engines for ever and probably read by the Apple fans everywhere!

But sometimes you have to get it out of your system.

I recently bought a Macbook which is my first Apple product. I used to use Windows on a Dell before and I still have it.

But, like I said, I am not comfortable with the Mac. I don’t look forward to using it these days. In fact, I find myself wishing my windows booted up faster so I could end up using it.

There are several things which baffle me about the Macbook. You cannot maximize windows! Even after hitting what appears to be a “maximize” button! It just gets annoyed and reluctantly expands to a random size of its own choosing, as if it knows you are probably not looking anyway and thinks that the extra window size is not good for you. Sometimes, it just makes the window taller without doing anything about the width. Give me girth, if you are stingy that way and are only going to expand in one dimension.

I have resorted to try and maximize a window by dragging and resizing it manually. Do you guys ever get the drag and resize of a window right? Where it is fully expanded from left-to-right and top-to-bottom on your screen? I can sometimes, if I have about 10 minutes to spare and have a non-apple-designed magnifying glass at hand.

The scrollbar, in one word, sucks. It’s about 3 pixels wide and I always miss it when I click it just the way it was probably intended by whoever designed it at Apple.

Since I keep maximising the windows manually, I end up leaving a pixel or 2 of space next to the window where the scrollbar is and I always end up clicking on the empty space when I reach for the scrollbar which brings up the application behind it to the top!

Alt+Tab behaves worse. I cannot Alt+Tab between 2 chrome windows. Try it now if you are on a Mac. If you are on Windows, just go buy a Mac and try it now and see for yourself. It’s unbelievable. Try copying some text between 2 chrome windows without using the mouse.

When you open a new application it doesn’t show up on top like it was asked. It just appears clumsily in the background when there are other windows present and you have to now find it and invite it once more into the foreground.

Resizing is not left alone with the level of difficulty already inherent in it as discussed above, but when you do resize, sometimes the entire lower system menu pops up on you and you are now left trying to figure out a way to trick it to not appear when you sneakily approach the now almost invisible “resizable corner” from another angle.

I will put in a word about the system menu now. Simply put, there is no place where you can put the system menu which makes it less annoying. Whether you dock it to the top, bottom, left or right of the screen, it always manages a way to interrupt you when you are clearly reaching out to click something else. In fact, after finishing this article I plan to completely disable it (oh Apple, please tell me I can) and just invoke applications I need using the search option available on the top-right. I mostly have no complaints about the search thingie so far!


Notepad is wonderfully weird. It does not allow you to save documents! How sweet! Instead use the always un-resizable and stupidly named TextEdit. Don’t forget to copy and paste the stuff(which works) you just wrote in notepad.

The close, minimize buttons (are ROUND in shape!) and look too slippery to inspire any confidence and there is no way, I am told, I can increase the size of them, or flatten them or GOD forbid, try to change the colors of the super-corny red, orange and green buttons.

TextEdit acts drunk when fed with too much text. I am yet to find a reliable way to scroll down the document because once you have scrolled down, the moment you start typing, TextEdit proudly sends you back to the beginning of the document. That is pure Genius.

Query: Can I buy extra keys on the keyboard? Was that a part of the plan from the beginning? To sell extra keys as needed? Put me down for a set of “Page up” and “Page down” keys, PLEASE.

And does the Caps Lock key have its own separate booting process? No? Then why the hell does it take that long to change state when I press it?  

There, you would think I am all ranted out by now - but wait... Why doesn’t the delete key DELETE the files? Or is that a property of a separate “delete delete” key that I forgot to buy?

When opening folders, the Enter key does not allow me to ENTER into them. It suddenly decides to behave the way a “Rename” key would behave and offers to rename the file for free. Can I please buy the part of the source code that does this in the Mac and modify it myself?

Now, I would have had good things to say about the inbuilt wireless connector had it ever connected at a range beyond 10 meters from my router. My Dell does way better and does not keep timing out and does not keep asking me for the password that it clearly knows it knows already!

The Apple fans might come after me with “answers” to the above complaints and that’s exactly what is wrong with Apple. It’s just that the fans are so over-the-top and so gaga over the “greatness of Apple” and Steve Jobs that it is all a bit overwhelming and you are never left alone to discover the realistic merits of the products yourself. In fact, you are almost under pressure not to disagree - but these are my ACTUAL experiences and I find that it is simply not very good at even the very basic usage level even after trying very hard to like it. It’s the same annoying feeling I get when people talk about how “great” the Dark Knight movies are and how great “it will be” when the new one is released, but let me leave that to another day.

Friday, March 16, 2012

My attempt to solve the problems in recruiting


Recruitment is plagued by the following issues... 

1. Hiring is almost always done when you are too busy to hire right.
2. The best candidates are too busy for never ending rounds of interviews.
3. Resumes are mostly copy pasted corpus of industry buzzwords.
4. Referrals are the best way to hire but there is no easy way to manage your campaigns.
5. Often deal-breaking pieces of information such as candidate availability, salary expectations are known only at a later stage of the interview process.
6. There is no easy way to involve other stakeholders, especially the team that the candidate will be working with in the decision making process.
7. Candidates get frustrated because recruiters don't update them on the status of the position.

I have been interviewing people for over a decade now and I know it as one of the most frustrating and time consuming activities in my work life. Its also most expensive to you and your company if you do not get it right. Even though I know this, I would end up hiring the wrong people because I was in a hurry. Candidates pull out of interviews all the time and I am not always free. I found that I would ask open ended questions when interviewing them. Questions designed to bring out the best in the candidate not in relation to your world as a manager. Questions the candidate will be glad you asked. Questions where I am fishing for something that the candidate will tell me that will give me tremendous insight and inspire a connection to our company and how we could use him. If I am hiring a PHP programmer for example, I could ask...

What is the most satisfying moment you had while programming? why? 

What new thing have you discovered in the last year about PHP that amazed you?

This may not work with many programmers. Thats the point. You are looking for reasons to hire the person and they are not always technical. 

In a technical interview you know what the answer is and therefore you know the reason why you hired someone even before you hired anyone.

But when you are open ended, the reason for hiring a candidate is not known before hand. The reason comes afterwards. And it presupposes an amazing, inspiring, insightful answer from the candidate. 

Do you hire like this? You should try hiring this way. To help me with this and with a ton of other frustrations in one of the most important parts of management/entrepreneurship, I created FastCandidate.com a solution I genuinely wish someone had built. 

Try it and let me know what you think.


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.