Even at unhappy companies like Yahoo, engineering management usually gets a free pass, mainly because critics, both inhouse and external, don't feel qualified to judge. It's easier to focus on the lack of strategic direction, as Brad Garlinghouse did in his "peanut butter" memo, or lackluster leadership from Yahoo's CEO, Terry Semel. But, Yahoo's CTO, Farzad Nazem — a board member known by familiars as Zod, close to Yahoo's founders, strengthened, if anything, in Yahoo's latest reorganization — shares the blame for the internet company's woes, according to one anonymous insider.
The engineering department has huge problems, mostly because of Zod's lack of leadership and lack of any action for that matter. I am an engineer at Yahoo! for many years. And throughout those years, Zod has not done anything and there has never been any vision or any direction in engineering. The reason why Yahoo! was doing so well early on was largely because Yahoo! engineers were very good. And he really had nothing to do with it. The engineering quality has declined very much because of the blind hiring spree last year, and this drove out a lot of engineers that are actually good. And let me tell you this. Yahoo! is now rotten from the inside out. Here's my take of how to fix Yahoo!'s engineering: 1) Fire Terry, and fire Zod. 2) Revamp the platform group. The reason why Yahoo! is duplicating so many things is because we have a very weak platform group that is lazy and arrogant and only knows how to support "yinst". 3) The platform group needs to study the architecture of all Yahoo! software and figure out what components are duplicates and build teams that develop real platforms (possibly taking parts of existing components) to replace those duplicates and mandate everyone to migrate to the new platform. 4) Slowly port all Yahoo! software to linux and phase out FreeBSD. Start supporting and encouraging multi-threading programming. I bet Google is laughing their asses off at us because we are still stuck with FreeBSD, gcc-2.95 and single process model. 5) Slowly get rid of all Yahoo-specialized open source software. Why do we have "YApache" (based on Apache 1.3), and why do we have the dreaded yut/ycore++ libraries when we can use STL and boost? And why do we have YPAN when we can just use CPAN??? The platform group is doing the wrong job supporting this dead-end infrastructure. [Comment on Breakout Performance]