Archive for the ‘Career’ Category

On Leaving Google

Sunday, April 13th, 2008

As some of you may know, I have decided to leave Google and go back into the startup world. Friday was my last day at Google, and even though I normally don’t blog much about my job, I figured I was due for an update.

First off, Google is an amazing company. Especially for a company of this size (and impact), it is highly impressive that they have managed to maintain this kind of work environment, company culture, and integrity. On the most basic level, there are all the perks, from great health benefits to free food (there are about 15 cafeterias on the Mountain View campus alone, many of which offer breakfast, lunch, and dinner), micro-kitchens with free snacks (including fresh fruit or fresh cut carrots and celery), on-campus gyms and a beach volleyball field, and more. Another great thing are the many tech talks (usually there are at least a couple every day), which feature both internal and external speakers. There are also many opportunities for training. In the one year that I have worked at Google, I had the opportunity to take a one-day class on Agile Estimating and Planning, as well as an excellent four-day workshop on Design Patterns and Refactoring, and numerous Google and product specific classes. Then there are the various off-sites and team building events, which probably take up another good week each year. Not many companies send their employees to Disneyland for three days… And of course there’s Google itself, with its various products that have become so ubiquitous and synonymous with the web that life would be difficult to imagine without them. Anybody remember the web before Google Search came along? Let me give you a hint: it sucked! But even newer products like Gmail, Google Reader, or Calendar have caught on quickly and become established as best-of-breed applications, and I definitely felt proud to work at the company that has built all of these applications. And speaking of work, the actual work environment is also nice in many ways: Every engineer gets either two 24″ or one 30″ monitor, as well as a company laptop (either MacBook Pro or Thinkpad). Depending on which project you work on, you might get to work with innovative internal tools and frameworks (such as BigTable), and I have definitely developed an entirely different perspective on scale, which humbles any project I’ve worked on before. Then there’s the community. In general, Googlers are a great bunch, and very smart. There are internal mailing lists on pretty much any subject, and you can pretty much guarantee that you will be able to get a solid answer to whatever question you might have (work or non-work related). In fact, this reminded me quite a bit of Usenet, back when it was still popular and usable, and not totally overrun with idiots. Of course, keeping up with all of this can become quite a time sink as well… Google is highly engineering-driven, and engineers enjoy a lot of trust and power, which is a very different and refreshing experience from working at a more product-driven company.

So if everything is so great at Google, why am I stupid enough to leave? And part of me does indeed feel a bit guilty about not being able to fully appreciate and enjoy working at Google — after all, there are many people out there in the world that have dreary and monotonous minimum-wage jobs, without any benefits or perks to speak of. But in the end, I have realized that I am just much more of a startup person than a big-company person. Perks and everything are great, but this is ultimately not what motivates me. At an early stage startup, every single individual has a tremendous impact on the company (good or bad…), along with a much broader set of responsibilities (everybody has to wear many hats). Then, there’s the pioneering spirit, which is extremely energizing and contagious. These days, it seems like a lot of the true innovations are made at small startups, which have the benefit of being orders of magnitude times more agile and efficient than a large company will ever be. Sure, many ideas don’t go anywhere, but every once in a while, something new comes along that leaves a big footprint (and let’s not forget that even Google started out like this). Last not least, there is of course a significantly bigger upside to working at a startup. Of course the harsh truth is that most startups fail, but at least there is that 1 in a 10 chance of being tremendously successful (and the sense of actually being able to contribute to this chance). As a recent Google employee, I would have never gotten rich there, even if the stock had doubled or tripled in price.

There are a few other Google-specific problems I should mention as well. For one thing, it is unlikely to initially be able to work in an area that one is passionate about. Many of the Google products are exciting, but unfortunately I was unable to be passionate about my particular product area. That is not to say that there weren’t any interesting aspects about it, and I do have a lot of respect for the team I worked with. Overall this is less of a problem later, as it is generally encouraged to switch projects every 1-2 years, but this first year makes a big difference, particularly for experienced engineers that have a good understanding of what kind of things they enjoy working on (or perhaps more importantly, don’t enjoy working on) or what kind of environments are a good match. I feel that the hiring process should be improved to better take this into consideration, although this is admittedly a difficult logistical problem at Google’s scale. Another scale-related problem: Due to the sheer size of the code base and the vast number of Google-specific tools and frameworks, it also takes a very long time to learn how to actually become productive at Google, which can be frustrating at times.

But overall, I feel privileged that I had the chance to work at Google. I’m sure they will still be around for a long time, and 20 years from now I will be able to tell my grandchildren “Oh, Google, yes, I worked there once…”. I will certainly miss the Google campus, which had the vibrant feel of a University campus. I will also miss many things about the Google culture, and hopefully be able to take many of these inspirations with me into my future career.

Which brings me to my new job, which I am enormously excited about starting this Monday. I can’t say too much, as the company is just getting founded and still in stealth mode, but I am going to be a co-founder of a brand-new startup in the Social Networking / Mobile space, two areas I am very interested in. I have worked at small startups, but so far I’ve never had the opportunity to come in on the ground floor like this, so this should be a great adventure. My role is going to be that of Director of Engineering, but I expect to be wearing a lot of hats, ranging from architecture and implementation to being involved in the product direction, taking care of hosting and other IT stuff, and ultimately building a great team and helping define the company culture (although we will initially be a small core team). We will be working with some exciting technologies, including Ruby and a sprinkling of Ruby on Rails, which I am strongly looking forward to as well. Besides using a bit of Ruby at my previous job, I have mostly played with Ruby in my spare time, and I am glad about being able to finally use it again at my day job as well (though we will be pragmatic and use whatever tool makes most sense for the job at hand). I think I am officially done with Java at this point (but never say never… I am pretty sure I will at least use it again as a platform at some point in the future).

Well, this blog post turned out a bit longer than expected. But don’t worry, I am sure I will be busy enough at my startup that I won’t have a chance to bug you with any additional long posts for a while. ;)

Side Projects and Passion

Monday, February 18th, 2008

Earlier today, Alex Payne blogged about side projects, which prompted me to write down my own thoughts on this matter, as I had been planning a blog post on this subject for a while. Alex states some of the benefits of having a side project, such as keeping you learning, dealing with different types of problems than during the day job, having fun, making new friends, and potentially even being profitable (all of which I completely agree with). Alex also mentions that side projects are a way of showing that you care and that they ask candidates about this in their job interviews at Twitter.

I tend to ask the same question when interviewing engineering candidates, and it’s definitely a big plus when a candidate starts to excitedly talk about a side project they’re working on. However, I would tend to generalize this a bit further. Ultimately, I am looking for a strong sign of passion, but there are several equally relevant things that a developer might be passionate about:

  • Coding, which might manifest itself in a side project (either a project of their own, or contributing to another project, perhaps open source).
  • Technology. Perhaps they like to examine the latest web or desktop application frameworks, testing tools, or programming languages. They might not be working on a concrete project in their spare time, but they clearly like to follow what’s going on in the software development arena. They probably get their actual coding fix at work, but being aware of the technologies out there will broaden their horizon and help them in making informed decisions.
  • Software Engineering, i.e. things like best practices, process (such as Agile Development), or design patterns. They might not be interested in working on an actual spare time project (or lacking the time to do so due to family obligations), but they love to keep up with the software engineering discipline by reading books and blogs, discussing these subjects with their peers, etc.
  • A Domain relevant to the job. For example, my previous job was at a mobile games company, and being able to convey passion (and ideally knowledge) about either the mobile industry or gaming was definitely an advantage.

Personally, I tend to go through phases. I always have ideas about various potential projects, and I maintain a personal wiki that allows me to capture and flesh out these ideas at any time. Sometimes an idea from this list seems exciting enough (either immediately or after maturing for a while) that I start playing with it by writing some code, although admittedly very few of these projects end up seeing the light of day. At other times, I spend more time exploring various tools and frameworks, or perhaps learning a new programming language. Granted, this is often triggered by a concrete project, but I often end up embarking on a mission to try out various new web or desktop frameworks, etc., and the concrete project gets left by the wayside for a while. Yet other times (for example during times in the past were I had very little spare time due to a long commute and a newborn daughter) I have spent very little time in front of the computer and a lot of time reading software engineering books instead. But a domain that I can relate to and get excited about is generally something I look for in all my jobs. Life is too short to work on boring applications…

It can be difficult during the short time frame of an interview or even a phone screen, but it’s worth trying to figure out what makes a candidate tick. An actual side project is a huge plus in my opinion. If they don’t have a side project (or at least a good idea for a spare time project that they would work on if they had the time), and they don’t manage to convey any enthusiasm for technology or the domain of the position they’re interviewing for, that’s definitely a big red flag. I am always surprised when I come across such a candidate, but it happens way more often than I would expect…

Get paid to interview for jobs?

Tuesday, January 22nd, 2008

Today, TechCrunch posted an article about a stealth job site that makes companies pay candidates to interview with them. NotchUp is currently in beta and invitation-only, but apparently the site will allow candidates to set their own price (although a calculator is provided that suggests a price based on experience, current salary, etc.), in an attempt to lure the kind of passive job seekers that many companies would be interested in finding.

This is certainly innovative, trying to solve a real problem, and I like the idea, but ultimately I have a hard time imagining this working. I don’t doubt at all that potential job seekers (even ones that are not actively looking for a job) will be tempted to put their resume up on NotchUp. But how are companies supposed to tell the true, previously passive rock-star candidates from the legions of mediocre candidates or even worse, candidates out to make a quick buck by exploiting the NotchUp system? It sounds like they are going to implement some sort of ratings system to prevent abuse, but I remain skeptical. I am also curious about the logistics. Most companies perform a phone screen before inviting candidates for an in-person interview. Do candidates get paid if they don’t pass the phone screen? The full amount or just a fraction? Or do only in-person interviews count (which would be open for abuse on the employer’s side by subjecting candidates to a longer and more thorough phone screen)?

If all these obstacles can be avoided, this might turn out to be interesting from the employers’ perspectives, although I still wonder if small startups would be willing to pay $600 per candidate (especially given that presumably only 10-25% of interview candidates actually end up getting a job offer, depending on the quality and rigidity of the resume and phone screens). Then again, paying 10 times $600 for 10 interview candidates is likely still a lot cheaper than paying a recruiter.

Oh, it seems like the site is still having some stability issues: Somebody posted the NochUp beta username / password on TechCrunch, and now the website keeps timing out. But I guess that’s why it’s supposed to be a private beta, so perhaps we should cut them some slack… ;)

Anyway, it will be interesting to keep an eye on how this shapes up.