Friday, October 25, 2013

6+ Ways to Make Your Company as Great to Work for as Google

This post is for the CEOs and people who have the CEO's ear.

For the last four years, Forbes has named Google the #1 best place to work.  I'm told that Google gets huge numbers eager applicants every year.  Most of the software engineers I know want to work at Google.  As a Google employee, I can confirm that Google is indeed a great place to work.

But Google doesn't have some magic bullet.  Sure, spending money on employee perks are an obvious way to increase employee happiness, but it's not the only way.  And not every company can do what Google does, but most companies that employ a set of skilled professionals--especially software companies--can implement some or all of the features that make Google great.  And by making your company an awesome place to work, you will perfect the art of employee recruitment and retention.

I will list six ways to make your workplace better.  And then I will list some more.  It was getting to be a rather long list, so I tried to boil it down to six essentials.  And then failed.

1. Hire the smartest people
Seems like a no-brainer, but I don't think many companies follow this rule like Google does.  Whereas some companies will hire mediocre engineers because they simply need warm bodies to code, Google (sadly) discards a lot of good candidates because we are so serious about hiring brilliant people.  And while passing on good candidates is definitely a bad thing, Google is full of brilliant people as a result of our rigorous hiring process.  The obvious benefit is that smart people work more efficiently and can tackle difficult problems, but as an added bonus, having lots of smart people at your company helps recruit other smart people.  Ray Kurzweil works at my company!  Maybe I'll get to meet him someday!

Hiring the smartest people is hard to do if your company isn't one of the best places to work for, which is what brings us to #2...

2. Treat your employees well (with pay and perks)
If you ask most people what their employer could do to make them happier, the first thing they'll say is to increase their salary.  Obviously, you should pay your employees the going rate for their respective jobs, if you can afford it.  But money isn't everything.  Giving employees perks is another creative way to spend that extra cash you have on employee happiness.

Google employees get tons of perks, from game rooms, work parties, free meals, free valet, matching 401k contributions, gyms, free meals, beautiful working environments, free meals, and, lastly, free meals.  I'm very big on the free meals.  On-site perks, like the meals, will keep employees at work longer and prevent them from taking 2 hour off-site lunches.  All of which can boost productivity.  The only problems with perks are that they cost money and some people may take advantage of the employer's generosity.  Which brings us to #3...

3. Hire honest, caring people
Honest, caring people care about the company they work for, especially when that company cares for them. They try not to cheat the company by overusing perks. It also can help team dynamics.  But how do you recruit good, honest people?

When people talk about how evil a company Google is, I think it's amazingly hilarious and thoroughly frustrating.  Every single decision by Google that has ever been considered possibly evil by the public has been internally protested and ridiculed repeatedly by Google employees.  That's because the company is full of employees who care about the Google's economic, social, political, and psychological impact on the world and we hate it when a head executive makes a bad decision.  We honestly believe that, overall, we're doing good in the world.

Being good is hard and is often expensive, but it helps recruit and retain honest, caring people.  And it has a side benefit of helping the public image of your company.

5. Use the right tools
Google employees have tons of internal software and hardware tools that help us do our jobs.  Some companies are reluctant to upgrade software engineers' computers until they are too slow to run.  Some companies don't want to shell out money for software that can improve productivity.  Google generally keeps their engineers' hardware up to date, and buys or builds software tools that make our lives easier.  From our version control system, to our cloud code repository software, to our testing infrastructure, to our laptops; Google invests a lot of time, energy, and money into making sure we have the right tools for the job.  I'm not saying all our tools are perfect, but it's usually a question of which tool is best and not whether a manager will shell out money for it.

Good tools make employees productive and happy.

6. Share internal information
Sharing information means two things: managerial transparency and knowledge transfer with efficient, persistent interoffice communication.

Transparency is hard.  I once worked at a defense company where it was legally impossible because of security issues.  But at Google, we have a weekly all-hands meeting where we talk about what's going on in the company to a surprising detail, and low-level employees can ask CEOs and division managers questions.  I think it brings us together as a company and makes employees feel that they have a voice.  The downside is that some employees leak information about upcoming products and services.  These leakers are fired as soon as they are identified, of course, but the leaks are a known issue with our transparency.

Knowledge transfer is the most important part of sharing internal information.  Googlers teach other googlers through technical talks, postmortem talks after failures, coding tutorials for our different internal projects and lots of informal presentations.  I recently learned how to use a new integration test framework at Google.  As soon as I finally got it all working, I was told: "Good, now you can teach us all how to use it."  I strongly believe that the amount of engineer-to-engineer teaching we have at Google is what makes us an intellectual powerhouse.

And even when the teaching is not formal, we have a lot of interoffice communication.  We have online forums (implemented with Google Groups) where we can post any question we have about any tool or project and have it answered quickly by other people who are using the tool.  For internal tools, the person who answers your question will probably be the engineer who wrote the tool.  The great thing about forums is that the information and answers are online forever.

In addition to forums, we use email, chat, and video chat to ask experts how to get things working.  I'm working on a project now with a guy two states over from me.  I've sent and received code reviews from people all over the world.  This interoffice teaching and collaboration is incredibly powerful.

Knowledge transfer is more of a tool to make employees efficient, but I also think it makes Google a great place to work.  It makes our jobs easier, and we can build relationships with people we haven't met face-to-face.

Others
Now that I've detailed 6 excellent ways to make your company a great place to work, I'm going to list a few more that are almost as important:

  • 20% Projects. Googlers will sometimes spend 20% of their time on a side project and 80% on their main task.  This is a win-win for companies because employees are happy to work on something that they think is cool, and the finished project is usually something that improves Google.
  • Reuse Code. A lot of google code is stored in one repository that can be seen on internal websites.  This helps us not reinvent the wheel if we're writing something that's already been done before; and it helps to see different examples of how to implement something, when we're doing something slightly new.
  • Make telecommuting work. Because of my laptop, our excellent videoconferencing software and all our internal websites, I can stay home all day, for days and still be 95% as effective as I am at work.  This also helps with knowledge transfer; being able to attend meetings from home or on the road.
  • Dogfood.  If you have consumer products, use them.  It allows you to find bugs and poorly implemented features before the customer gets them.  It also saves money.  And if your products are cool, your employees will enjoy this.
  • Use free and open source software (FOSS) when possible.  Free means you save money, open source means you can hack it if you don't like it.  This makes your company a better place to work because the money can go elsewhere, like to your employees! The one caveat: only do this when it's right.  Don't use crappy tools just because they are free and open source.

I hope that more companies follow Google's methods.  Who knows, making our workplaces great might improve the human condition!

This article was not requested, sponsored, or endorsed by Google, Inc.

Saturday, October 12, 2013

Chromebook Pixel Review

Chromebook Pixel
The Chromebook Pixel is Google's take on a high-end Chromebook.  The idea seems ludicrous at first: a high-end version of a laptop whose main selling point was its low cost.  If you're going to sell a $1300 laptop, why not get a high-end Windows laptop or mid-tier Macbook?

The Pixel is a niche market for sure.  But to understand its existence, we must acknowledge the other benefits of Chromebooks.  Namely the ease-of-use, the lack of malware, the near-instantaneous startup and shutdown times, and the great battery life.  The Chromebook Pixel's keeps all of these features except one: the battery.

Overall Experience
I've never owned a high-end laptop before, so using the Chromebook Pixel is a special treat for me.  I only use it for work, and 99% of the time on my work laptop, I'm in a browser.  The other 1% of the time, I'm writing quick notes in gedit (a linux text editor) or in the terminal, ssh'ing to another device.  Because of this, the Pixel fits my use case perfectly.  For anyone who fits the use case of Google Chrome OS, it is an awesome device that is a pleasure to use.

Build
Since this is my first high-end laptop, I have little to compare it against, except for the few minutes I've spent using a Macbook Pro or Air.  The build of this laptop meets that Apple-level of quality.  It looks gorgeous, is light at about 3.4 lbs, has a unibody frame, is covered in a lovely anodized aluminum, has a good-looking backlit keyboard (the font is like a Macbook--or really, any high-end laptop nowadays), with the best touchpad I've touched.

I've touched Macbook touchpads and, truly, they are great.  I often think of them when I'm using my crappy Lenovo laptop touchpad, wishing a PC manufacturer--any PC manufacturer--could figure out how to make that touchpad and put it in a laptop that runs Windows.  While the Pixel doesn't run Windows, it seems to have the quality and responsiveness of a multitouch Mac touchpad, plus a glorious texture that I would compare to the tip of a pencil eraser.  It feels the lightest touch, and handles gestures with up to three fingers (if there are any four-finger gestures, I don't know what they are).  Admittedly, the Pixel would be improved with a right-click button, but using Alt + mouseclick or a two-fingered mouseclick does the same job.

The monitor swings open and closed with ease, but feels sturdy.  The keyboard feels as sturdy as a desktop keyboard.  The multicolor light on the back of the monitor is a delightful icing on the cake.  I've never felt this on a smartphone: it feels both simultaneously expensive and durable.  Like it costs a lot of money, but I could drop it a short distance and it would survive.

This laptop is damned sexy.

Hardware/Performance
The hardware seems excellent.  It's difficult to accurately test how much a Chromebook can handle because of the limitations of Chrome OS (how do you load Crysis on it?), but it never lags.

The specs are not super impressive, it's just an Intel Core i5 with 64 GB of storage, and 4 GB of RAM, but the OS puts those to awesome use.  Really, the 32 GB version would have been sufficient, since I don't store anything locally.  But I the SSD aspect helps out with the speed of the Pixel and perhaps its battery use.

Other notes:
  • The 720p webcamera is sufficient.  People will be able to see what you look like in Google Hangouts.
  • There is LTE included on this version, but I don't use it.
  • The laptop does get pretty hot after some use, but not crotch-scorchingly so.
  • There are two USB ports, but you're not going to use more than one, if that.

High resolution text. This is the same picture
from above, just zoomed in.
Display
The display is pretty much perfect.  The decision to make it 3:2 instead of the standard 16:9 was an odd one, but it works out.  I spend much more time reading documents than I do watching video (again, it's my work laptop), so 3:2 is perfect for that and other activities that involve horizontal movement.

The resolution at 2560 × 1700 is heart-stopping.  I don't know why they made the Pixel's screen so high-res.  There are only two times when I use it: when watching the hi-res video that came preloaded, and when looking at my super high-resolution desktop wallpaper.  It's nice to see that wallpaper every time I start the computer, but then I launch Chrome and look at stuff that would look just fine in a lower resolution.  I guess it also makes the fonts look nicer, but I don't have an issue reading text on lower resolution screens.

It's hard to say whether or not the touchscreen is a gimmick.  I find myself using it often, but that's probably just to justify its existence.  The screen is multitouch, so that's nice, although there is no pinch to zoom.  If you're not typing much, like if you're showing some webpage to someone sitting next to you, I can see using the touchscreen aspect a lot.  The screen is also very responsive to touch.

The viewing angles are so wide they jumped up in the air and got stuck.  But seriously, you can see the screen from any angle. Also, the IPS screen gets very bright.

Battery
Battery is the only hardware aspect that could've been improved.  Regular (cheap) Chromebooks can get 6 hours and more out of the battery because of their skimpy hardware.  The Pixel gets around 4 hours, which is slightly better than a high-end Windows laptop (they seem to be around 3 and less), but still not as much as you feel you deserve for such a lightweight operating system.

Operating System
The operating system is what makes the performance of this laptop excellent.  I've never been very impressed with the concept of Chrome OS.  I often find myself with slow or nonexistent Internet and am a big fan of local storage.  To enjoy any Chromebook you need to give yourself entirely to the cloud.  That doesn't necessarily mean using Google services like Drive, Docs and Play, but it does mean you have to use some online service, like Dropbox or SkyDrive.  For my work, this is easy.  The few times I'd use gedit for notes, I use Google Docs instead.  Whenever I'd use the terminal to ssh into work, I use Chrome's Secure Shell extension instead.  The OS meets 100% of my work use cases.  But I cannot use the Pixel for a home computer.  For home computing I need to be able to save things locally, use VLC to play mkv files, and other things like that.

However, for those of us who spend most of the time in a browser, the OS is fantastic.  Mostly the speed is what stands out.  This laptop starts up to the login screen in about 10 seconds (6 seconds when trying it now).  Another 5 seconds to log in--mostly because of my slow typing--and then you're in.  Unlike Windows, there's no waiting another 10 minutes for your computer to slowly become responsive.  It's at full speed from the moment you log in.

And when you log in, Chrome OS remembers all your tabs.  You don't have to worry about remembering which tabs are up and in what order because it saves everything.  It's a bit like if Windows' sleep mode, except no power is used.

Just like other Chromebooks, the Pixel is as easy-to-use as the Chrome browser and is impervious to viruses, trojans and worms.  The only aspect that is difficult to use with the Pixel is the keyboard.  There is no Caps Lock button, you have to use Alt+Search for Caps Lock.  Other keys like Page Up, Page Down, and Delete are achieved by key combinations.  Luckily, you can find all these combinations with Ctrl+Alt+/.

Conclusion
"Everyone should want a Chromebook Pixel--I certainly do. But almost no one should buy one." -The Verge.

"Google hammered one phrase home when asked who the Pixel was for: 'the power cloud user.' [...] If you're a busy executive whose work requires you to be online and on the go, [...] you should seriously consider the Pixel." -Mashable

I'm not sure even a busy exec should get this.  Even if you just need a basic computer to access the web, enjoy quality laptops and have no idea how to avoid viruses, the Chromebook Pixel is a hard sell at either $1300, or $1450 for the 64GB, LTE version.  A low-end Macbook Pro or Air would look and feel just as nice, and also cost cheaper.  There are a couple of Windows ultrabooks that would beat this in functionality and price.  A Windows Surface might be a good alternative.  The unique and peerless touchscreen and the instant startup time can't beat the functionality of a full-featured OS like Windows or OS X.

Basically, you should only get this if you require a simple, virus-free machine... and you can't stand Apple products.

Typed on my Chromebook Pixel.