Tuesday, September 15, 2009

Please Drive Your Kids to School

The article in Sunday's Times about driving your kids to school has generated a lot of discussion. I just posted a mini-rant in Reader about this, and figured it was worth re-posting here.

As a parent and a computer scientist, to me this comes down to basic probability theory. The idea of the "only 115 abductions a year" stat is to make it sound as though the chances are so low that it's not worth protecting against.

As we all remember from discrete math, though, you don't care about the probability, you care about the expected value. As a parent, the cost of losing a child is, for all practical purposes, infinite. So any "lose my child" event with non-zero probability becomes worth preventing against. The cost of driving a kid to school each day is astonishingly low; there's no point in NOT doing it.

The author is basically appealling to the sentiment of "why aren't things the same as when I was a I kid?" To them I say: the world changes, get over yourself.

This is not meant to be an argument for protecting kids against all possible dangers, but driving your kids to school is pretty much a no brainer. It's right up there with "should I buy my kid a car seat or not?"

By the way, most states these days have much stricter car seat and seat belt laws for children than when we were kids. My kids will never know the joy of bouncing around, unrestrained, in the way back of an '85 Oldsmobile wagon. That's life.


Friday, July 24, 2009

Using Puzzles in Interviews

Albert Wenger has a great post up on Continuations about Using Puzzles in Interviews. He makes a number of good points, most importantly:

1. Puzzles should be just one of many different parts of the interview.

2. Try to find a set of puzzles that works for you and use the same puzzles with many candidates to get better comparability.

3. Focus primarily on approach and behavior and only secondarily on outcome.

4. Unless the position specifically calls for ability to think under stress (e.g. certain ops positions), try to put the candidate at ease. Being in an interview is stressful for many folks.

5. Ask for a vocalization or visualization of the thought process.
I agree with most of this approach, but I still feel that everyone needs to be very cautious about using puzzles that are basically brain-teasers. In the first comment on Albert's post, one of the readers made part of my point for me - they posted a potential puzzle, and it was immediately pointed out that is well known amongst the brain-teaser set. I posted a fairly lengthy response on Albert's blog, but I figured I might as well cross-post it here.

At the core, the most important distinction is between coding/algorithm puzzles and brain-teaser puzzles.

E.g., one of the best interview questions I've ever been asked basically boiled down to performing bipartite graph matching - it required deep understanding of algorithms and how to match them to real-world problems, and then being able to implement the code behind them - pure awesome.

On the other hand, some of the worst interview questions I've encountered are the form of "N pirates have to divide X gold among themselves" or "You're blindfolded in a room wearing a hat..."

Brain-teaser questions tend to have the drawback that they are very uneven - for people who love brain-teasers, many brain-teasers are well-known or simple variations on existing problems, but for people who don't, they're starting without the benefit of any of the background.

In addition, in my time at Google I saw heavy anecdotal evidence that brain-teaser aptitude correlates negatively with overall effectiveness as a developer. Sometimes the developer who searches too hard for clever solutions winds up missing the simple solutions.

Thursday, July 09, 2009

ImportError: No module named django.core (fun with Windows)

I just spent 45 minutes tracking this down, hopefully if I post a trace here, others will be able to resolve the issue more quickly in the future.

So I am building a little django app at work, but my latest installed version of django is pre-1.0, so why not upgrade, right?

After getting everything downloaded and running setup.py, I did the standard thing to start a new project:

C:\Users\jtb\Documents\Clickable\src>django-admin.py startproject myproject
Traceback (most recent call last):
File "C:\Python25\Scripts\django-admin.py", line 2, in
from django.core import management
ImportError: No module named django.core

All the search results on that error pointed to issues with my PYTHONPATH, but no amount of tinkering with it would make django actually run.

The real problem was that, due to a recent installation of Python 2.6, my PATH and my PYTHONPATH had fallen out of sync. My PATH was pointing to the Python 2.5 directories, while my PYTHONPATH was pointing to the 2.6 directories. It seems the Python installer I used knows how to update PYTHONPATH but not PATH. Which makes sense.

If you found this post through a web search and it helped you debug a similar issue, please post a comment.

Friday, September 19, 2008

Xoogler Tip: What happens to your email after you leave?

For all you Xooglers out there, here's a little tip to smooth the transition outside of the 'plex.

When you leave Google, your existing mail account becomes a black hole - all mail sent to the address silently goes away.  There's no bouncing or auto-responder.  No big deal, right?  Anyone at Google can probably get your new address off go/epitaph.

BUT: If, like me, you worked with anyone outside of Google (for example, patent attorneys), they might not know about your departure, and they can haplessly send email into the black hole for months without discovering that you're not there any more.  I found this out recently when a lawyer who had been trying to reach me all summer finally found out that I had left the company.  

Simple fix: before you leave, you can file a ticket to have an auto-responder set up.  If you've already left, your HR Business Partner can help you out.

Friday, May 30, 2008

Happy Anniversary to Me!

I've been awfully silent for the past little while, and for no good reason, really. But today is my 1-month anniversary at my new company, Clickable, and I thought I'd take this chance to share a little about this transition.

Clickable is an exciting place; we are building a software-as-a-service offering for people who want to manage their online advertising in a single, simple interface. So if you are advertising with Google, Yahoo, and MSN, you can learn all of those products and spend time in all three of them managing and optimizing your accounts, or you can just log in to Clickable and do all your work in one spot. The team at Clickable is immensely talented, and the product has real customers who find our product to be a big advantage over the services offered from the ad networks.

I'm proud to say I have definitely found what I was looking for by leaving Google for a startup: tons of responsibility, the opportunity to have a major impact on a company, and the chance to learn a lot of new skills. It's given me an enthusiasm for my work that was sorely lacking towards the end of my time at Google.

I'm working as a semi-specialized engineering jack-of-all-trades. My main focus is our optimization engine, which tells customers how to tweak their accounts for the best advertising results. But I'm also working on a broad swath of other tasks, such as setting product direction, production firefighting, integration testing, customer analytics, and even a dash of business development. Most importantly of all, I am hiring for talented engineers. If you think the startup life is worth a try, leave a comment or shoot me an email.

Friday, May 02, 2008

What am I doing wrong with Reader off-line mode?

I'm temporarily commuting with a laptop that has no WLAN device, so I've been using Google Reader's off-line mode for the last couple days, and I've noticed the following oddness.

I start out with a giant backlog of unread feeds, a la:


(Sorry for the quality of the screenshots in this post; if you click through to the original image on any of these, you should be able to see the folder counts clearly).


I synchronize to go off-line:



Once that's complete, all my folders show fewer unread items than before, such that my total unread drops from "1000+" to 580:



Such rapid progress! Until I go back on-line again:



And now I'm back to "1000+".

Anyone on the Reader team care to comment on this one?

Friday, April 11, 2008

Today is my last day at Google

After nearly five years at Google, I am leaving the company, effective at the end of the day today. My time at Google afforded a tremendous number of opportunities; I was able to take part in growing the company's first remote engineering office from 5 engineers in 2003 to nearly 450 today, I was able to conduct blue-sky exploration of applying Google's data and computing infrastructure to web information extraction, and, more recently, I was able to help build an all-star team that just shipped Google Ad Manager.

Contrary to what glowing articles in Fortune or Fast Company might tell you, the best part of working at Google has nothing to do with the free meals, subsidized massages, or even the stock options. The best part of working at Google has been the chance to collaborate, to innovate, and to explore with the most talented collection of people I could ever imagine. Missing those people every day is the hardest part of leaving this company.

I don't know yet what my next challenge will be, but I hope to go somewhere very small and take part in building a company from the ground up. Wish me luck!