people who've worked at other places for a few years tend to be a mixed bag. For some, this is the first stability they've seen after a few failed startups. For others, this is the company that represents a "better" way to run a company than the company they worked at before. Either way, for these folks to succeed at Google they have to drink the cool-aid and duke it out with the college kids because Google doesn't place any value on previous industry experience. (It puts tremendous value on degrees, especially Stanford ones).
Emphasis added. From an alleged Microsoft internal email comparing working at Google to working at Microsoft.
Microsoft, Google, nVidia and many other companies put candidates for software engineering jobs through an interview process that consists of hours of solving programming problems on a white board. If these companies where honest with themselves and with the people who are interviewing for these jobs they would use the following description for their software engineering positions:
Software engineering opening. This job requires a computer science degree and a bright person who can think on their feet. No experience required.
The interview process used by Microsoft and Google selects bright people who can solve programming problems in less than an hour. Some of these people may also be able to design and build large complex software systems that take months to implement, but this is an accidental outcome. In evaluating the future performance of a candidate for a software engineering job, these companies adopt the same caveat that is seen at the end of mutual fund advertisements: Past performance is not indicative of future results. Microsoft, Google and companies like them are staking a claim to the idea that future performance is demonstrated by the cleverness that someone shows in solving puzzles or programming problems during the interview.
I have been fortunate to have had the opportunity to work on a number of challenging software projects. I have been part of a small team that designed and developed a dataflow parallel processor. At MasPar Computer Corp. I worked on compilers for MasPar's massively parallel processor. I was a project lead and core developer for a Verilog hardware design language compiler that generated native code and FPGA logic to support VLSI test bench simulation. Currently my work involves the design and implementation of a query language for graph structured databases. I have written a book (on a now dead programming language called Modula-2) and several research papers. I have authored a Lawrence Livermore Technical Report that describes some of my query language work.
A software engineer with experience on a number of challenging and demanding projects was a sought after employee before 2000. Job interviews usually focused on the projects you worked on, your part in the project and how you dealt with challenging problems. In these interviews your past experience was important and was an important factor in whether or not you were offered a job. These interviews were based on the idea that past performance is a predictor of future performance.
The "dot-com bust" in 2000 changed many things in the technology community. For the first time unemployment among engineers was actually higher than the general unemployment level. The drive to save money created by the "dot-com" bust accelerated the outsourcing of software engineering jobs to India and other low wage countries. Starting in 2000 the Microsoft style of interviewing job candidates seemed to spread. I am not sure what caused this. Perhaps other companies were impressed by the high quality of Microsoft software and decided that what Microsoft did, they should do as well. Or perhaps there is a trend in hiring younger, cheaper software engineers.
I've had several interviewers tell me that they don't ask about past experience because they are worried that they will fall victim to people who can talk a slick line and have not actually done what they have claimed. The real dynamic that is behind the reluctance to ask in depth questions is laziness and ineptitude when it comes to talking to another person. Rather than asking in depth questions that will illuminate the candidate's experience, the interviewer asks the candidate to solve a set of canned programming problems.
I've written about puzzle and programming problem interviews before on my web page Calculating Permutations and Job Interview Questions. When I wrote this web page the implications of this interview style had not occurred to me. The implication is this: experience doesn't matter. All of the leading edge projects I have worked on, the work that I have done that no one else has done before, does not matter. In the puzzle and programming problem interview, I am placed on the same level as a bright software engineer fresh out of school who has not accomplished a fraction of what I have. With the spread of the puzzle interview I worry that I am becoming unemployable, despite all that I have accomplished. I am grateful that I have a challenging job that I really enjoy.
There seems to be a natural order in life that the young compete to displace their elders. Young lions challenge older lions for domination of the pride. The domination of an older alpha lion will eventually succumb to superior strength and stamina of a younger lion.
Generational conflict is a familiar theme human societies as well. Young people naturally try to take their place among their elders. Questioning, innovation and the overthrow of the establishment by the young is as much a pattern in human societies as a young lion challenging the older lion.
Since humans have emerged from hunter gatherer societies, societal domination has not simply depended on strength and speed. The greater physical power of the young has been balanced by the experience of their elders.
The microprocessor has fueled a revolution that continues to this day. The heart of this revolution has been the San Francisco Bay Area. The companies that have become the pillars of this revolution have been, almost universally, founded by people who have been under forty years of age. Still, in the past the people who provided venture capital frequently wanted to see experienced management and engineers. Before the dot-com boom in the late 1990s a company managed by graduate school dropouts had little chance of getting venture funding.
The most recent generation of technology companies have, in many cases, been founded by people who dropped out of graduate school to start the companies. Before starting these companies, the founders usually had no experience outside of academia. Some of these start-ups, like Google and Yahoo, have grown into multi-billion dollar companies. Lured by the success of companies like Google, companies founded by people with little knowledge outside of the technologies they worked on in school have attracted tens of millions of dollars in start-up funding. These companies place little value on experience compared to raw intelligence (a quantity that is notoriously difficult to measure).
The founders of the Internet generation companies are starting to be replaced by managers with decades of industry experience. At the end of 2008, Carol Bartz replaced Jerry Yang at Yahoo. Google hired Eric Schmidt, who had been an executive at Sun Microsystems and Novell, as the CEO of Google. In most cases these executives have not changed the culture of the companies they run. Experience, especially when it comes to software design and engineering, is not valued. White board questions reign in interviews. In some cases the lack of respect for experience becomes overt age discrimination
I first heard Brian Reid's name when I was working at MasPar Computer Corporation. A number of people at MasPar, including the company CEO, came from Digital Equipment Corporation. At that time Brian Reid was at the Digital Equipment Corporation research lab and had a reputation as a brilliant computer scientist (see his biographical profile on Wikipedia). Brian Reid later went to work for Google. The company fired him a few days before their IPO and Reid sued Google for age discrimination.
According to court papers, Reid's Google colleagues frequently to him as "old man," "old guy," and "old fuddy-duddy" during his time with the search giant. His boss, then 38-year-old Urs Hoelzle, also made age-related remarks about his performance every few weeks, dismissed his opinions and ideas as "obsolete" and "too old to matter," and called him "fuzzy," "lethargic," and other energy-lacking descriptors, the court filings said.
'Old fuddy-duddy' can continue age discrimination suit against Google, CNet News, October 5, 2007
Although Brian Reid's apparent treatment by Google seems to be more egregious, his experience is not entirely unique. Engineers and other professionals over forty have a much higher rate of unemployment.
The history of large software projects is also the history of many spectacular failures. Recent failures include:
The FBI Virtual Case Management System which burned through $100 million dollars without delivering a working product. The project was canceled and the FBI had to start over from the beginning.
The Denver Airport Automated Baggage Handling System which was $2 billion dollars over budget.
Software is pervasive in our society. Complex software systems control civilian and military airplanes. Modern banking would be impossible without massive computer networks and software.
Given the huge cost of failed software systems one might assume that companies would try to hire experienced software engineers. Yet as I have noted, at least in the case of Google, Microsoft and other companies, experience does not matter. At least in some cases the reasons for this many have something to do with the corporate culture.
Historically Microsoft hired young software engineers, frequently right out of college or graduate school. In the past Microsoft offered many of these engineers a chance to become wealthy through Microsoft stock options. These engineers had little experience outside of academia and gained their experience working at Microsoft. Microsoft's corporate model has been to "grow their own" experience, rather than hiring experience from outside the company.
In the case of Google we also see a culture that is primarily composed of young software engineers with little experience. Google was, after all, founded by two Stanford graduate students who themselves had little experience.
The puzzle interview has spread to many other companies, some of which may actually need to hire experienced software engineers. The computer industry has a long history of following fads and some of these companies may have adopted an interview style simply because companies like Microsoft and Google use it.
The process of evolution is rapid in the computer industry. In a period of about five years (1995 to 2000) the World Wide Web went from being a network that connected a few research sites to changing the world in ways we are still trying to understand. Software failures have destroyed a few companies and have come close to bankrupting others. As a software engineer with over a quarter century of experience designing and developing large software systems I have to hope that experience will once again come to be valued.
Created on: May 5, 2007
Last modified: April 13, 2009