I had the exact same thought when I was transitioning into an employee and have been wanting to write this post for a long a time. I hope to share more details in a few follow up posts soon.
Author of the post here. Yes, AI did help me frame it because I am an average write at best. I have never been a good writer while I have a few experiences to share. I never shared anything earlier exactly because of that reason. AI helps me put my thoughts into a coherent structure.
I, mostly, figure out the best use-case for the project and then translate it into some other language to get a cool name.
For example, I am currently working on a 2 way synchronization system which will mostly be used as a queuing system, so, I translated 'Queue' to 'Qatar', which is Hindi for queue :)
Sometimes, I like to get the closest match in any other industry (Communications in this case). We recently named a notification system 'satellite', and similar names for publishers and subscribers.
There's one tool I've always wanted - An analysis tool for my database queries. Something which directly injects into my framework (Django/RoR etc) and gives me detailed analysis of the time and memory used by the queries.
AFAIK, New Relic provides one such tool but I think there's still a long way to go.
I have been deep in programming for the better part of my student days/professional career but now want to focus product and marketing.
Working on my startup now, hence, have a lot of opportunities! :)
> How is a small team of programmers to know that you will be able to collaborate with them effectively within the space of an interview ?
Isn't my github profile enough proof to show that I can collaborate with people?
Also, as I pointed out in my recent comment: Eran Hammer, (creator of OAuth and Hawk) presents a new way to hire engineers. He suggests the concept of a 'Homework' wherein prospective employees are presented with a problem/bug that they are actually facing in their product.
One of my acquaintance from Mozilla also pointed out that he was hired in a similar way.
> 2. What exactly do you mean by "competitive problems" or "puzzles"? What is off-limits?
For me, competitive problems are the kind problems for which interviewstreet/codechef etc are known for. At times, they involve the kind of problems which a developer is not likely to face during his time at the company.
For example, being a web developer, I don't think that there will be a time when I need to write a string matching program from scratch. Wouldn't questions related to scalability/databases/some selected data structures make more sense for such a profile?
Don't take me wrong, I am not against questions involving string matching/sorting/kernel concepts, all I am saying is that they should be asked from those who are really going to face such problems while working.
The point of 'Homework' really intrigues me. It actually ensures that a candidate has the skills to contribute to your product. IMO, it is a far better way to judge than programming puzzles.
> Also I see that your GH page lists that you're from India? Many companies may find it difficult bringing on a candidate from overseas (HN's audience is predominantly US), although with the right company, remote work would be possible - however, remote work is probably difficult to pull off unless the company is absolutely confident in you as it is.
I am not a fan of remote work either.
However, I am willing (in fact want to) to relocate if I am satisfied with the profile offered!
P.S. This post was supposed to be a reality check for me(and others like me) and not a shameless plug for getting a job :-)