A little bit of this and a little bit of that.

Just another WordPress.com weblog

Archive for the ‘Technology’ Category

Yahoo Music on Search

Posted by amitbehere on September 19, 2008

I usually don’t talk about work on my blog because I work 8 hours a day as it is. This bog is my release. But we really rocked today. I was a very small part of the team that did the following.

CNET
Yahoo adds full-length music tracks to search results | Webware : Cool Web apps for everyone
http://news.cnet.com/8301-17939_109-10045466-2.html?tag=newsLatestHeadlinesArea

TechCrunch
Yahoo And Rhapsody Team Up For Full Song Playback In Search Results
www.techcrunch.com/2008/09/18/yahoo-and-rhapsody-team-up-for-full-song-playback

And my favorite online gossip mag, Valleywag :) which never has good things to say about Yahoo! Even this time, it was sort-of a complement, not a full one.
http://valleywag.com/5051762/the-ad-yahoo-ought-to-air

It is nice to know that what you do is consumed by hundreds of thousands of people, if not millions. It is also a little scary that if you fuck up, there are going to be a lot of not-so-happy campers. But that is what makes it exciting and challenging and fun and all the good stuff.

Also, although I know not too many people read my blog, I want to acknowledge all the people who were on the project and worked as hard (or harder) than any of us but will not get full credit because they aren’t with Yahoo! anymore. And no, they weren’t laid off or nething. They are among the smartest people I know and are doing their own things, very cool ones I might add. I usually don’t name names on my blog (without permission) because it doesn’t seem right but am going to make an exception this time. Lucas, Mike D, Ian, Lino, Doug: As they say at Yahoo! Mad Props !!

Posted in My stuff, Technology | Leave a Comment »

A little bit of coding

Posted by amitbehere on April 11, 2008

I have been super busy coding for the last few days. We are in the middle of re-architecting the Yahoo! Media Player. I consider myself an average coder but a very persistent and decent debugger. It means I can find errors quickly and easily.

My personal experience of programming has been as follows:

1. As a very new, raw programmer I used to write code and BE SURE that it was going to fail. And ofcourse, it would always fail. I would fix the first error,  but the code failed again at the 2nd one. This iterative approach meant that it took about 4-6 passes to be code complete depending on complexity.

2. As an intermediate programmer, I used to write code and look it over a few times to make sure it was right. I would think, maybe it will work, maybe it will fail. It almost always failed. However, when I fixed the error, I would also be proactively looking for more errors down the line. This approach allowed me to write decent working code in about 2-3 passes.

3. As a resonably decent programmer now I write test cases, put try- catch blocks and review every line of code carefully before moving on. My style has improved and every once in a while I will write a fairly big piece of code that just works. It is beautiful however the frequency is about 1 in 5.

There are very good coders I know who never err. I am not sure I can be as good but I do not think that it is NECESSARY that I be that good. However I could definitely be better than what I am right now. I want to eventually be able to write solid, maintainable code that people after me will understand. Some people, actually a lot of people, write very efficient and optimized code that is unnecessarily complex and hard to understand. That is not good code. Being a good coder involves doing a lot more than writing fast, optimized code. It involves putting more thought in design, architecture and documentation.

To summarize:

1. Design and design review (VERY IMPORTANT). Even before you write code.

2. Code and code review with peers.

3. Include atleast rudimentary documentation on first pass (never leave big chunks of code undocumented)

4. Most functions or pieces of codes are step-wise. Include comments like /* Step 1: Check the input */ /* Step 2: put input into code buckets */ /* Step 3: Inspect code bucket one */ and so on and so forth.

5. Accept that you will never write perfect code. Code is a living being. It grows from infancy and gains strength over time. However if you over-code, it will get old quickly and die.

And finally, the most important lesson I have learnt as a software programmer

A lot of people may review your code badly and point to book examples or traditional coding methodologies to support their point. If they are right, fix your code. However if you still truly believe you are right, follow your heart and DO NOT CHANGE. If you are responsible for a piece of code, you have the right to decide how it is going to be. No matter how senior the reviewer, he or she can only advise, NOT order. As with everything in life, trust your gut.

HAPPY CODING!!

Posted in My stuff, Technology | 1 Comment »

A little bit of technology

Posted by amitbehere on March 26, 2008

Starting today, I am going to work hard to make myself even smarter, especially in the field that pays my bills i.e. computers.  That should be a realatively easy task considering I am not too smart to begin with, so improving on that ought to be relatively simple.

There is a lot of cool stuff that happens in our field and actually a lot of smart people already blog about it. My blog posts regarding technology will be pointers to other blogs and/or a synthesis of the stuff I have learnt. The synthesis part should be most interesting in my own opinion.

I have also decided I need a web-hosting server of my own.

Posted in My stuff, Technology | 1 Comment »

A little bit of mergers and little bit of acquisitions

Posted by amitbehere on February 20, 2008

Considering my business card says “Technical Yahoo!” my blog has been very technology free. Today I am going to break that trend post my views about mergers and acquisitions.

Important notice: This post is not specific to Yahoo! which I personally think is one of the better run corporations in the US. Please do not lay me off :)

I am not a fan of Corporate America, and that is a huge understatement. I could write a whole book on why I am such a rabid opponent. But since I might actually end up writing such a book, I am saving that material for later. Today I am only going to talk about mergers and acquisitions which is my 2nd pet hate in Corporate America, the 1st being inept CEO s who make millions for under-performance.

A merger or an acquisition is when a company buys out or merges with another independent company or a business to create single entity. This happens very often in the technology arena. Here are the top reasons why I am so against mergers and acquisitions.

1. Statistically, M&A’s almost always fail which should be a good enough reason enough to avoid them all-together. For every successful M&A (which is very rare), I can give 100 examples of the ones that failed.

2. M&A’s indicate laziness and lack of effort on the part of the management of the company that buys another company. It is like they say, “Fuck, why did we not think of that before? It is so great for our business. Well, since we didn’t think of this and these guys have built a decent business let us just buy them for a gazillion dollars. Who gives a shit if we overpay and cost our shareholders millions of dollars.”

3. The 3rd and the biggest reason why technology M&A’s fail is that it is very very hard to estimate the net worth of a technology company. And it is impossible to predict what the value of a business will be after 3 years. Things change way too fast. Deciding the value of a technology company for an acquisition is a crap shoot. Companies *routinely* overpay for acquisitions to the tune of 100s of millions of dollars.

4. Once a small company is bought out for a ridiculous price, there is very little incentive for the management and top talent of that company to stick around since they make tons of money on stock options. This means that in the best case they will quit right away and in the worst case they will stick around scratching their ass and working on their pet projects until they are laid off with a nice severance package. In either case, the buyer is screwed.

5. When companies with different cultures merge, achieving synergy becomes a HELL of a job. A lot of time that can be spent innovating is spent integrating. And even then, it is never perfect.

So here is my advice for the corporate management of any technology firm:

1. Get rid of your M&A division. Spend that budget on spying, literally spying for new idea. In a technology world, ideas are hard, implementations are usually easy.

2. Focus on innovation first, business later. Learn from Google.

3. The only time you should even consider an acquisition is when a company is in really early stages and can be bought cheaply (1-50 million range)

4. Focus on your core business. For everything else, partner and move on. For God’s sake, don’t fuckin’ buy stuff. Do not venture into areas that are not your expertise. Partner and move on. Write this down a a 100 times.

Posted in Finance, Technology | Leave a Comment »