Featured Posts
August 5 2009

The Dream Job

by Hang

The Dream Job is so simple I’m wondering why I’ve never heard anyone propose it before.

I’m going to start off describing The Dream Job by the most inconsequential and most easily changed details because, well… you’ll see.

The Dream Job pays one million dollars per year and only one is offered every year. Every application for The Dream Job must be made public. Once you’re hired, the only power the employer has over you is firing you. That’s it, those are the only overt constraint for The Dream Job, everything else flows from there.

You don’t apply for The Dream Job by sending in a resume. Well… you could but you’re not likely to get it. There’s only 1 Dream Job a year, you need to dazzle. The Dream Job is only for people who first of all love that company very very much but that love is tinged with a deep channel of ambivalence. It’s for people who are driven with the desire that this company, while great, could be so much greater if they could only fix this one thing and you are the right person to fix it.

I would be deeply, deeply tempted if Newegg offered The Dream Job (There are a half dozen other companies with which I would apply for a Dream Job without hesitation but I’m holding those closer to the chest as they’re related to stuff I’m actually working on). Classic usability isn’t even my field anymore but The UI behind online computer buying has essentially remained static since the mid 90’s and every time I want to purchase a computer online, it makes me deeply angry that the user experience is still so poor from a pure usability standpoint. I have so many ideas bursting in my about how you could revolutionize the user interface to make it orders of magnitude more productive and fitting with the tasks that people have. Give me a week to prepare and an hour to present to Newegg and I’m utterly confident I could convince them hiring me at a million dollars a year would be a bargain. Here’s a simple idea Newegg: Build a braindead reliable text parser so that I can paste the shopping cart from any other web store and you can tell me how much identical or similar items would cost at Newegg. Why should price comparing systems be a laborious half hour of hunting for equivilant components on multiple sites when some simple engineering could reduce it down to seconds?I managed to come up with 8 other ideas inside of an hour before I got bored at how easy it was.

The Dream Job is not for everybody. The freedom offered by it sounds alluring but when you consider the full implications of it, can also be slightly terrifying. Once you get in, you can do literally whatever the hell you want but that also means not a single person will actually know what you do until you sell them on it. By definition, you’re hired to do something at that company that’s never been considered before so you’re starting off with nobody obligated to give you the time of day. It’s up to you to build up the support within the company and selling people on your vision or your mission is dead before it’s even born. There’s a reason why a company full of otherwise smart people hasn’t been able to see a problem that’s so obvious to you and it most probably stems from a complete difference in cultures. You need to be not only a visionary but also an anthropologist and a translator. On top of that, you need to constantly justify your $1 million dollar expense or you will be swiftly canned. The Dream Job requires not only brilliance and passion but also deft people skills and the ability to work around showstopper obstacles.

So, given all this, why one million dollars? Simply because, even in this day and age, one million dollars still means something. It still has that allure when those crisp syllables roll off your tounge. The actual number is meaningless, mostly symbolic, and the bargain of the century to boot. Anyone that brilliant willing to work for one million dollars a year is clearly not in it for the money. Instead, the requirements for The Dream Job are simply the natural result of the observation that hiring only for the skills you know you need is a rather stupid way of doing things.

The conventional way of hiring is you first figure out what resources you need, how much you want to pay them, where they slot in the org chart and then you search for a candidate. This was great when your grandparents were busy climbing the corporate ladder but why don’t we shake it up a bit. How the hell is a company supposed to know what it needs anymore? If you’re a process nerd, then you’re going to hire a bunch of other process nerds and build a great process nerd company culture but how can you ever know what you really need is a deep design aesthetic as well? Similarly, if you’re a design person, how are you going to find out how an obsessive A/B tester can transform how you build? The simple answer is that you never will with a conventional hiring model. Instead, you need them to tell you how they want to do their job.

Everything about The Dream Job stems from transferring the onus of responsibility of defining your job from the employer to the employee. The limit of one a year is what gives it the specialness, the prestige and the cache neccesary to attract the rare people who could handle such responsibility. The million dollars and the enforced hands off approach is what gives them the confidence that The Dream Job is something the company is taking seriously and is committed to integrating as a core part of how they do business. The requirement that applications be public is a filter that screens out the chuckleheads and leaves only those who have a credible chance of deserving it. The requirements are not carved into stone, they’re simply my interpretation of what would be the minimum required for The Dream Job to even work.

 The Dream Job is so stunningly obvious that it must be wrong. I can’t possibly have been the first person to have come up with this. But if it’s wrong, it’s probably at least going to be wrong in an interesting way. If you’re in a position to, do you have the balls to offer a Dream Job? If so, you better hurry because I know the first chance I get to scrape a million spare dollars together, this is what I’m doing.

August 4 2009

Jobs I could do in an alternate life

by Hang
  • Professional corporate ladder climber: If I had an alternate 30 years, I’d love to start from the mailroom at some gigantic company and try to work my way up to CEO. The key to playing the corporate ladder game is that you not only have to be confident but also willing to play office politics and so many people are not only bad at office politics, they actively disdain it which I don’t understand at all. There’s something immensely fun to me about figuring out how to effectively neutralize your enemies from within  your organization and move up the ladder.
  • Operations research person: The goal of operations research is to streamline your manufacturing process to make it just a little bit smoother and quicker and more efficient every single day. There’s something zen about that devout focus to the small details which I find relaxing.
  • Clinical psychologist: Clinical psychology contains some of the most fascinating issues of epistemology that you have to grapple with on a day to day basis. How do you effectively deal with someone’s self-sabotage when their self-sabotage is sabotaging their ability to deal with their self-sabotage for example?
  • Professional chef: I’m a pretty decent cook and people ask me all the time if I’d ever considered doing it professionally. I’d always answered no because professional cheffing is nothing like cooking at home but if I had an alternate 30 years, it’d be fun to see if I could really perform at the highest levels.

the ego dilemma

by Hang

The Ego Dilemma

I love meeting engaged people when I’m drunk because it allows me to ask my most drunkly assholish question ever:

“So, are you guys going to sign a pre-nup?”

Roughly two thirds of the time, they give some version of an acceptable answer:

  • Yes
  • No because we have no assets
  • No because, while it minimizes the fallout from a divorce, we feel it increases the chance of one by starting the marriage off on a wrong footing so we’d rather not risk it.

But about one third of the time, I get my absolutely most favorite answer of all which is

  • No because we don’t believe it’s likely we’ll get divorced.

It’s my most favorite answer of all because, after many years of experience, I’ve found that it’s the best way to force people to actually grapple with the ego dilemma.

The ego dilemma goes something like this:

“So, why don’t you think you’re going to get a divorce? Nobody enters a marriage expecting a divorce yet many of them do”

“Well, sure, other people get divorces but we have X & Y and that makes our marriage special”

“Well, yeah, but there were plenty of people who thought they were also X & Y at the start of their marriage but they eventually found out that didn’t help them much in the end”

“OK, but did those people have Z-which-is-so-uniquely-rare-only-we-have-it?”

“You’re right, they didn’t have Z, but when asked a similar line of questioning, they had the same reaction except they put in Z* which was unique only to their marriage, it didn’t help them much”

“Look… we’re just SPECIAL, OK?”

It’s the “Look, we’re just SPECIAL” which is the hallmark of the ego dilemma, it might not ever be as blatantly obvious as that but it’s always hidden in there somewhere.

The ego dilemma is the belief, against reasonable evidence, that there is something unique contained in your ego that challenges previous historical experience. In short, the ego dilemma would be a perfectly reasonable assumption if you lived in a movie where you were the main character but a deeply tricky one in the real world.

Other example ego dilemmas include believing you’re of significantly above average intelligence, setting aside your life so that you can “make it” as a famous actor/musician/sports star/writer, thinking you WILL get the girl with that desperately creepy romantic gesture or, if you’re coming here from Hacker News, assuming that your startup has a reasonable chance of success commensurate with the effort you’re putting into it.

The truly frustrating thing about the ego dilemma is that it tells you nothing of any value. Recognizing that you’re caught in an ego dilemma doesn’t mean that you’re wrong. You could, after all, be the next Mark Zuckerberg. Someone has to be after all. But also likely is that you’re a clueless idiot who’s utterly convinced at your own fallacious arguments. We know this intellectually because we’ve all experienced the ego dilemma from the outside, you’re trying to convince someone that they’re just plain wrong but they keep on returning back to what makes them SPECIAL. And if you’re experienced it from the outside, it’s meant that someone’s experienced it from the outside at you.

When confronted with the ego dilemma, there are two wrong reactions and one right reaction.

The first wrong reaction is to aggressively try and deflect yourself away from an ego dilemma: “Oh, yeah, I probably SUCK at programming but I just don’t know it yet”. STFU: That you can even concieve that you suck at programming is proof positive that you’re above average and your sanctimonious faux-modest attitude isn’t fooling anyone, including yourself. Deep inside, you still think you’re an awesome programmer and so you still have an ego dilemma.

The second wrong reaction is to instantly assume the question is futile and throw your hands up in the air. “Who can ever KNOW if I’m smart or not?”. Obviously, you don’t live in a world where you believe that to be true. You still think and act like a person who believes they are smart.

Unfortunately, the right way to deal with the ego dilemma is tricky and complex and deserves an entire post of it’s own. It really involves revamping your entire belief structure into something deeply probabilistic with a much finer and more nuanced representation of ignorance which I promise to write at a later date when I’ve fully processed what I’m actually doing.

But the absolutly most fascinating thing about the ego dilemma, and the reason why I so love torturing the almost married is that, even if you fully agree with and accept the argument and logic behind the ego dilemma, even if you’re an otherwise intelligent and reasonable person who doesn’t commit the obvious errors against rationality, when confronted with an actual ego dilemma from the inside, knowledge of the ego dilemma helps you barely at all.

The ego dilemma is what I call an unthinkable thought, you can almost see it slip around people’s head, evading capture. It’s so fascinating to me watching otherwise intelligent people utterly unable and unwilling to grapple with the ego dilemma set in front of them.

Back to our married couple:

“So you understand what an ego dilemma is now?”

“Yes, it all seems very logical and well thought out”

“So you see how it applies to you signing a pre-nup?”

“Oh? No, that doesn’t count, our pre-nup is special”

“What? But saying it’s special is how you RECOGNIZE it’s an ego dilemma”

“It is… but this is a special exception to the ego dilemma because of…”

“ARGH”

July 30 2009

Usability Bitchings: Chrome & Ctrl+K

by Michael

As a consumer in the age of the iPhone, I encounter frustrating user interfaces on a daily basis, whether it is with said iPhone, a poorly designed doorhandle, or otherwise. Often, with little tweaks, these could be remedied. Expect this to be a regular feature, as there is always more assclownery about.

Google Chrome

The Ctrl+K shortcut

Background: Chrome has brilliantly mixed the search bar with the URL bar. Using small, custom keywords, I can quickly point my browser precisely where I need to. For example, if I type “wiki cow,” I’ll soon be reading about domesticated ungulates.

Problem: Let’s say I’m done looking at cows, and want to look up sheep instead. I could press Ctrl+T, open a new tab, then type “wiki sheep.” However, if I don’t want to open a new tab, I need to get a cursor in the URL bar. I could take my hands off the keyboard and click. Chrome, however, has a shortcut: Ctrl+K. Ctrl+K automatically clears the URL bar, and sticks the cursor there so the user can navigate. However, Chrome also sticks a question mark in there.

....why?!

…WHY?

Ctrl+K is brilliant! I love being able to quickly bounce around the nets without a mouse. Ctrl+K lets me do so… but not without deleting the mysterious question mark that jumps in my way for no apparent reason. Who the hell put that in there in the first place?

The Fix: It’s beyond my reach to modify Chrome code, but I can’t imagine it would be a difficult fix on their end.

Irritation Level: 3 of 5

Extra point for the problem being so obvious and basic.

July 23 2009

What the Chrome OS could be

by Hang

Google’s ChromeOS is heavy on vaporware and light on details at the moment which leaves fertile room for random speculation. Most of the guesses I’ve been reading are really kind of boring so I’m going to sketch out what I think a truly exciting ChromeOS cold be.

I’m extrapolating my guess from three pieces of data:

1) The Chrome moniker is deliberate
2) It’s targeting netbooks for a reason
3) Google has in it’s DNA, the instinct to play David to Microsoft’s Goliath (cf. Google Docs)

Netbooks are great in theory but as soon as you buy one, you run into all of the classical frustrations of owning more than one PC, namely: trying to keep all of your various files, bookmarks & settings synchronized. Sure, you can get your files synchronized and there’s probably a firefox plugin to synchronize bookmarks and probably another one to keep your open tabs in sync and… blargh, who could keep up with all that? My hypothetical ChromeOS solves this by simply saying all your netbook is is a portable browser window. You won’t be able to run photoshop, notepad or even a command prompt. Instead, the only thing running will be Chrome.

But, at a stroke, synchronization is no longer something you have to think about. ChromeOS won’t be an OS in the traditional sense. It’ll just *be* the Chrome browser window you have running on your desktop. Open a new tab on your desktop Chrome, a new tab will appear on your netbook Chrome, half compose an email, go sit in a park and you’ll magically have that half email for you to resume work on, get halfway through a game of Bejewelled and go finish the rest while you’re on the throne. For the first time, you’ll be able to stop in the middle of something, move to a completely different machine and be confident that you can resume exactly where you left off.

What would be so brilliant about this move is that it enters into a space that Microsoft can’t replicate. ChromeOS works, not by doing more than Windows, but by doing less. ChromeOS correctly recognizes the tradeoffs inherent in netbooks. Would you like to run photoshop on a netbook? Maybe once in a while. But what you would really like much more is never having that pit of the stomach feeling when you realize that presentation file is on your home desktop and you’re in Iowa with the work laptop.

Will the real ChromeOS be anything like what I’ve sketched out? Well, here’s hoping…

Anything you think is either unoriginal, wrong or both

by Hang

I first discovered this obviously wrong truth when I was doing my honors thesis. Time and again, I would come up with a novel idea or a neat algorithmic trick. Some of them, I would discover had already been invented 3, 5, sometimes 10 years before I came up with it. But the ones I was absolutely sure nobody had published before because I had scoured the literature and covered every approach. Well, all of those original ideas turned out to have some hidden, unforeseen flaw that rendered them either trivial or actively stupid. This lead me to formulate the belief that “anything you think is either unoriginal, wrong or both“. Like all obviously wrong truths, it has the paradoxical property of being obviously wrong and also true.

The premise for the statement comes from the simple observation that good ideas survive and bad ideas die. This means there exists an entire class of awful ideas that people come up with time and again only to eventually discover their wrongness and then abandon them. Every person who discovers them believes themselves to be wholly original since nothing of the sort exists in the world and each of them is met with disappointment, sometimes after many years of sweat and toil. But because failures are almost invisible, they leave no warning signs to future generations that this is an awful idea that should be avoided*.

Anything you think is either unoriginal, wrong or both” is an acknowledgment of your own stupidity. Your first instinct, when you come up with a new idea, should be to try and find out if anyone else has done it before. Your second instinct should be to try and find out if anyone’s done it before. Your third, forth and fifth instincts are to ask how come everyone else figured out this was a dumb idea and I haven’t? If you’ve gotten this far and you still haven’t discovered anything useful, you should start feeling a little bit uneasy, it probably means you weren’t smart enough to discover how wrong you are.

If you have discovered the prior art or the fatal flaw, then breathe a small sigh of relief. Unoriginal ideas are GOOD, wrong ideas are GOOD. An unoriginal but right idea is still valuable to all the other people who’ve never heard of it and chances are, if you’ve never heard of it, there will be a significant fraction of the population to which bringing this idea contributes value. Wrong ideas do more to teach you more about the world than right ideas because they teach you about some discrepancy between your expectations and the world, The corrective force of wrong ideas is what allows you to deftly cut to the core of any issue and tease out just where assumptions are weak and likely to fail.

But if you’re lucky, over the course of your life, you’re going to stumble across many ideas which are both original and right, in which case it’s still better to treat them as unoriginal and wrong. Believing an idea is unoriginal and wrong makes that idea do more work. You attack it more fiercely and from more angles. You keep on asking people if the idea sounds familiar and you’re eager to seek feedback because you’re so damn curious to discover why it could be so wrong yet elude you for so long. In doing so, you disassociate the idea from your ego so that you can take criticism about it calmly and dispassionately. Eventually, that drive of curiosity will force you to action, just to finally prove how this idea is flawed. Treating an idea as unoriginal and wrong means that the only standard you’re willing to accept is success. This brings a clarity or purpose that cuts through the confusion when executing upon that idea. Other people may be willing to make excuses or caveats that salve their ego but, as far as you’re concerned, if an idea is not successful, it’s not right**.

Anything you think is either unoriginal, wrong or both” is an idea that also applies to itself. I’ve been slowly chewing over this idea for almost four years now and it’s been frustrating to me that so far, I haven’t been able to find someone else that’s expressed it as a similar sentiment which by de facto, makes it wrong. I’m putting this out there to invite the embarrassment of someone pointing out the obvious source or the obvious flaw that I’ve managed to miss for so long. Please, tell me how I’m stupid, it would be a welcome relief.

*Some people, when first discovering this problem, come up with elaborate schemes of recording all of these common awful ideas so that future generations can avoid them. This, unfortunately, is a common awful idea.

** not right and wrong are different concepts in the same way that not being a millionaire is different from being homeless.

The killer app for iPhone 3GS

by Hang

You heard it here first folks, the killer app for the iPhone 3GS will be augmented reality. Two features in the new release makes the iPhone 3GS the perfect augmented reality platform. First, the inclusion of an onboard compass and second, the opening up of the API to full camera controls.

Almost everyone except developers were unaware of this but the iPhone 3G SDK painfully crippled the camera by forcing you to use the provided Apple API to take pictures (this meant no real time computer vision could run on it except when Apple conveniently didn’t notice you bypassing their allowed APIs). Now that the APIs are open, expect to see a bunch of innovative computer vision apps (face detection, object detection, tracking).

But the second breakthrough is that the compass finally provides a braindead 6 Degree of Freedom (DOF) estimation. Any rigid object in space can be defined by 6 parameters. 3 spatial ones and 3 rotational ones. The iPhone 3G could estimate 5 of those 6 parameters acceptable well with GPS providing rough spatial data, the acceleromter providing fine spatial data as well as the direction of gravity. The compass provides the final, missing degree of freedom that allows for complete pose estimation.

Augmented Reality needs to know two things: Where is the sensor and where is everything else. Once you know that, you can do all sorts of really cool shit. I have no idea what will eventually come out, that’s one of the exciting things about bringing this technology to a mainstream audience, but I can point to some interesting research directions that seem plausible:

  • Instant 3D modelling of everything: Wave your iPhone around an object and it’ll figure out how to create a crude 3D model of it in memory.
  • Interactive furniture arranging: Go to the store, scan a bunch of furniture you want to buy, go home, drag and drop virtual pieces of furniture in your living room to figure out which piece should go where.
  • Interactive tour guide: You’re walking through New York, you see a cool building, take a photo of it and all of a sudden you know it’s the flatiron building and you’re reading a wikipedia article about it.
  • Photosynth the entire damn world: nuff said.
  • AR Quake: nuff said.
  • History view: Point to a space and if there’s a security camera pointed at it, be able to review what happened at that spot at any point in time.
  • Invisible Ink: Leave messages on walls which only your friends can see. Send them on an easter egg hunt.
  • Virtual Ping Pong on the phone: Use the phone screen to see a virtual ping pong table and then swing the phone to make a hit
  • Physical, virtual avatar conferencing: Replicate the real world cocktail party acoustics in a virtual physical space. Cocktail parties are great because they allow the spontaneous formation of ad-hoc small conversation clusters within a larger conversation. Online tools do a poor job of replicating that dynamic but if we could bring physicality back into it, we might be able to bring some of this dynamism back into online conversation.
  • A million goddamn screens: This was a project I personally worked on that unfortunately, never got to far but has a dear place in my heart. Conventional computing is predicated on screens being expensive but if you stick a tracking marker onto a piece of paper, you can turn it into a screen. What would computing be like if you could produce screens out of some cardboard and a laser printer that could be any form factor and would cost 10 cents a pop? How would this help with information overload? Imagine you have a screen in the corner that represents the pile of unread emails. If you want to read an email, drag it onto a new screen. Important emails that you need to reply to each get their own seperate screen which you keep neat and tidy by arranging them in a pile. If you want to send a file to your coworker sitting next to you, you can drag it onto a screen and then physically hand him the screen. You can have a screen for each individual participant in an IM/voice/video conferencing and pulling the screen closer means you want to be alerted but pushing it away means you want to ignore them. What could you do if you had access to a million goddamn screens over the course of your lifetime?

Are some of these examples wildly unrealistic and totally unable to work in real life? Of course, they come from research inspirations. But they demonstrate the enormous power of augmented reality which is about to be unlocked within these next few years as developers grapple with just what’s possible with Augemented Reality.

June 10 2009

social inviting

by Hang

Social networks rely on invite mechanisms to generate a bunch of their traffic but social proof says that the likelyhood of a person participating in an activity scales non-linearly to the number of their peers doing it. One person inviting you may lead to a 3% chance of action but two people may lead to 15% and 3 people might be 30%. Would a group invite mechanism help social adoption? The way I’m envisioning it, there would be a pointman who’s really, really passionate about someone else getting onto the tool. But what they could do is send out an invite for other people to be part of the invite. So what the user would see in the end is:

“John, Paul & Mary all want you to join facebook”.

Of course, once you join, you would automatically become friends with all of them and thus, be well on your way to a compelling user experience.

Similarly, on that vein, filling out voluminous profiles is a major disincentive for someone to join something. Why not let other people collaboratively pre-fill out parts of your profile so all you have to do is essentially add in your password and you have a fully functioning social presence.

May 12 2009

Missing the point of interviews

by Hang

I don’t know if two makes trend but I’m too impatient to wait for a 3rd example so I’m going to rail against the geek trend of being cleverly literal when attempting to answer interview questions. This practice strikes me as about as original and amusing as pointing out that silenced guns in movies don’t sound like they do in real life and there’s no sound in space. Like film, interviews have their own set of conventions and rituals and exposing the inherently unreality of the form doesn’t mark you out as clever, just ignorant.

In primary school, you were probably given a series of largely banal word puzzles in your math class because some educational bureaucrat decided that stories were more “relatable” than numbers. Now, if you had an absolutely stellar textbook author, they would have taken to the medium with a gusto and crafted an entirely different pedagogy centered around stories as an expressive medium. But chances are, you didn’t. Chances are, the author took the bog standard approach of first coming up with number questions and then pasting on a thin veneer of wording to get the job done.

“3 + 5, Jane had 3 apples, Chris had 5 apples, how many apples do they have together?”

> 8 apples

“Correct, 18 – 2, Reginald has 18 cookies but he eats two, how many cookies does Reginald have left?”

> 16 cookies

“Correct, 10 + 10, Heathcliff has 10 gallons of water, Shaniqua has 10 gallons of ethanol, how many gallons would they have if they combined it?”

> 19.2 gallons

“Corr… Wait, what?”

> Mixing equal volumes of ethanol and water results in only 1.92 volumes of mixture.

Congratulations, you discovered a leaky abstraction but you also kind of missed the point.

The purpose of a programming question in an interview is not to simulate a real life job decision, it’s simply a very basic skill test with a thin veneer of story pasted over the top of it to make it seem relatable. If you persist on treating it that way, don’t blame me when I give you full marks for cleverness and then zero marks for getting the point.

April 28 2009

Lean software development really isn’t lean

by Hang

For anyone manufacturing physical products on a large scale, Lean Manufacturing has been the hot new thing for quite some time. The Lean Software Development movement packages up a set of generally useful guidelines but it’s connection to lean manufacturing is tenuous at best and fundamentally misunderstands the software process.

It’s been a persistant mistake of management to treat the production of software as a manufacturing task and apply the same manufacturing methodologies that work well for physical products. But as Jack Reeves points out in his classic essay “What is Software Design”:

There is one consequence of considering code as software design that completely overwhelms all others. It is so important and so obvious that it is a total blind spot for most software organizations. This is the fact that software is cheap to build. It does not qualify as inexpensive; it is so cheap it is almost free. If source code is a software design, then actually building software is done by compilers and linkers.

The actual manufacture of software is done purely by the compiler and, as such, software development can be considered the first discipline to have completely solved the manufacturing problem. Lean manufacturing says that we should aspire to six sigma of defect quality, well, software developers can do better than that. Every time we hit the compile button, we are confident that not a bit will be out of place.

Software development is closer to the research & development phase of manufacturing and the few attempts to bring a lean process into those domains have ended in abject failure.

It’s not that lean software development is a bad methodology, it’s not. For the most part, it sounds like a sensible set of guidelines. But to pretend that it has much of anything to do with lean manufacturing is a mistake.

Copyright ©2009 BumblebeeLabs — Theme designed by Michael Amini