Coding Horror

programming and human factors

Judging Websites

I was invited to judge the Rails Rumble last year, but was too busy to participate. When they extended the offer again this year, I happily accepted.

The Rails Rumble is a distributed programming competition where teams of one to four people, from all over the world, have 48 hours to build an innovative web application, with Ruby on Rails or another Rack-based Ruby web framework. After the 48 hours are up, a panel of expert judges will pick the top ten winners.

I received an email notifying me that judging begins today, so I cracked my knuckles, sat down in front of my three monitors (all the better to judge with!) and … saw that there were around 340 entries.

Rails rumble entries

That's when I started to get a little freaked out about the math. Perhaps we can throw 5% of the entrants out as obviously incomplete or unfinished. That leaves 323 entries to judge. Personally, I'm not comfortable saying I judged a competition unless I actually look at each one of the entries, so at an absolute minimum I have to click through to each webapp. Once I do, I couldn't imagine properly evaluating the webapp without spending at least 30 seconds looking at the homepage.

Let's be generous and say I need 10 seconds to orient myself and account for page load times, and 30 seconds to look at each entry. That totals three and a half hours of my, y'know, infinitely valuable time. In which I could be finding a cure for cancer, or clicking on LOLcats. I still felt guilty about only allocating half a minute per entry; is it fair to the contestants if I make my decision based on 30 seconds of scanning their landing page and maybe a few desultory clicks?

But then I had an epiphany: yes, deciding in 30 seconds is totally completely unfair, but that's also exactly how it works in the real world. Users are going to click through to your web site, look at it for maybe 30 seconds, and either decide that it's worthy, or reach for the almighty back button on their browser and bug out. Thirty seconds might even be a bit generous. In one Canadian study, users made up their mind about websites in under a second.

Researchers led by Dr. Gitte Lindgaard at Carleton University in Ontario wanted to find out how fast people formed first impressions. They tested users by flashing web pages for 500 millseconds and 50 milliseconds onto the screen, and had participants rate the pages on various scales. The results at both time intervals were consistent between participants, although the longer display produced more consistent results. Yet, in as little as 50 milliseconds, participants formed judgments about images they glimpsed. The "halo effect" of that emotional first impression carries over to cognitive judgments of a web site's other characteristics including usability and credibility.

The opportunity cost to switch websites is one tiny little click of the mouse or tap of the finger. What I learned from judging the Rails Rumble most of all is that your website's front page needs to be kind of awesome. It is never the complete story, of course, but do not squander your first opportunity to make an impression on a visitor. It may be the only one you get.

I'm not sure I was learning much about these apps while I judged, and for that I am truly sorry. But along the way I accidentally learned a heck of a lot about what makes a great front page for a web application. So I'd like to share that with you, and all future Rails Rumble entrants:

  1. Load reasonably fast.

    I've talked about performance as a feature before; the sooner the front page of your site loads, the sooner I can decide whether or not I am interested. If you are slow, I will resent you for being slow, and the slower you are the more I will resent you for keeping me from not just finding out about you but also keeping me from moving on to the next thing. I need to be an efficient informavore. That means moving quickly. Above all else, load fast.

  2. What the %#!@^ is this thing?

    The first challenge you have is not coding your app. It is explaining what problem your app solves, and why anyone in the world would possibly care about that. You need an elevator pitch on your front page: can you explain to a complete stranger, in 30 seconds, why your application exists? Yes, writing succinctly and clearly is an art, but keep pounding on that copy, keep explaining it over and over and over until you have your explanation polished to the fine sheen of a diamond. When you're confident you could walk up to any random person on the street, strike up a conversation about what you're working on, and not have their eyes gloss over in boredom and/or fear – that's when you're ready. That's the text you want on your home page.

  3. Show me an example.

    OK, so you're building the ultimate tool for cataloging and sharing Beanie Babies on Facebook. Awesome, let me be an angel investor in your project so I can get me a piece of those sweet, sweet future billions. The idea is sound. But everyone knows that ideas are worthless, whereas execution is everything. I have no clue what the execution of your idea is unless you show it to me. At the very least throw up some screenshots of what it would look like if I used your webapp, with some juicy real world examples. And please, please, please, for the love of God please, do not make me sign up, click through a video, watch a slideshow, or any of that nonsense. Only emperors and princes have that kind of time, man. Show, don't tell.

  4. Give me a clear, barrier-free call to action.

    In the rare cases where the app passes the above three tests with flying colors, I'm invested: I am now willing to spend even more of my time checking it out. What do I do next? Where do I go? Your job is to make this easy for me. I call this "the put a big-ass giant obvious fluorescent lime green button on your home page" rule. You can have more than one, but I'd draw the line at two. And make the text on the button descriptive, like Start sharing your favorite Beanie Babies → or Build your dream furry costume →. If you require login at this point, I strongly urge you to skip that barrier and have a live sample I can view without logging in at all, just to get a taste of how things might work. If you're really, really slick you will make it seamless to go from an unregistered to a registered state without losing anything I've done.

  5. Embrace your audience, even if it means excluding other audiences.

    Even if you nail all the above, you might not fit into my interest zone through absolutely no fault of your own. If you built the world's most innovative and utterly disruptive Web 5.0 Pokédex, there's a lot of people who won't care one iota about it, because they're not really into Pokemon. This is not your fault and it is certainly not their fault. You need to embrace the idea that half of all success is knowing your core audience and not trying to water it down so much that it appeals to "everyone". Don't patronize me by trying to sell me on the idea that everyone should care about babies, or invoicing, or sports, or being a student, or whatever. Only the people who need to care will care, and that's who you are talking to. So have the confidence to act like it.

I realize that Rails Rumble apps only have a mere 48 hours to build an entire app from scratch. I am not expecting a super professional amazing home page on every one of the entries, nor did I judge it that way. But I do know that a basic sketch of a homepage design is the first thing you should work on in any webapp, because it serves as the essential starting design document and vision statement. Unless you start with a basic homepage that meets the above 5 rules, your app won't survive most judges, much less the herds of informavores running wild on the Internet.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion

Building Servers for Fun and Prof... OK, Maybe Just for Fun

In 1998 I briefly worked for FiringSquad, a gaming website founded by Doom and Quake champion Thresh aka Dennis Fong and his brother Lyle. I can trace my long-standing interest in chairs and keyboards to some of the early, groundbreaking articles they wrote. Dennis and Lyle were great guys to work with, and we'd occasionally chat on the phone about geeky hardware hotrodding stuff, like the one time they got so embroiled in PC build one-upmanship that they were actually building rack-mount PCs … for their home.

So I suppose it is inevitable that I'd eventually get around to writing an article about building rack-mount PCs. But not the kind that go in your home. No, that'd be as nuts as the now-discontinued Windows Home Server product.

Mommy, Why is There a Server in the House

Servers belong in their native habitat, the datacenter. Which can be kind of amazing places in their own right.

Facebook-datacenter-1u-racks

The above photo is from Facebook's Open Compute Project, which is about building extremely energy efficient datacenters. And that starts with minimalistic, no-frills 1U server designs, where 1U is the smallest amount of space divisible in a server rack.

I doubt many companies are big enough to even consider building their own datacenter, but if Facebook is building their own custom servers out of commodity x86 parts, couldn't we do it too? In a world of inexpensive, rentable virtual machines, like Amazon EC2, Google Compute Engine, and Azure Cloud, does it really make sense to build your own server and colocate it in a datacenter?

It's kind of tough to tell exactly how much an Amazon EC2 instance will cost you since it varies a lot by usage. But if I use the Amazon Web Services simple monthly calculator and select the Web Application "common customer sample", that provides a figure of $1,414 per month, or $17k/year. If you want to run a typical web app on EC2, that's what you should expect to pay. So let's use that as a baseline.

The instance types included in the Web Application customer sample are 24 small (for the front end), and 12 large (for the database). Here are the current specs on the large instance:

  • 7.5 GB memory
  • 2 virtual cores with 2 EC2 Compute Units each
  • 850 GB instance storage
  • 64-bit platform
  • I/O Performance: High

You might be wondering what the heck a EC2 Compute Unit is; it's Amazon's way of normalizing CPU performance. By their definition, what we get in the large instance is akin to an old 2008 era dual core 2.4 GHz Xeon CPU. Yes, you can pay more and get faster instances, but switching instances from the small to the high-CPU and from the large to the high-MEM more than doubles the bill to $3,302 per month or $40k/year.

Assuming you subscribe to the theory of scaling out versus scaling up, building a bunch of decent bang-for-the-buck commodity servers is what you're supposed to be doing. I avoided directly building servers when we were scaling up Stack Overflow, electing to buy pre-assembled hardware from Lenovo instead. But this time, I decided the state of hardware has advanced sufficiently since 2009 that I'm comfortable cutting out the middleman in 2012 and building the servers myself, from scratch. That's why I just built four servers exactly like this:

(If you are using this as a shopping list, you will also need 4-pin power extensions for the case, and the SuperMicro 1u passive heatsink. The killer feature of SuperMicro motherboards that makes them all server-y in the first place is the built in hardware KVM-over-IP. That's right, unless the server is literally unplugged, you can remote in and install an operating system, tweak the BIOS, power it on and off, and so on. It works. I use it daily.)

Parts for building 1U server

Based on the above specs, this server has comparable memory to the High-Memory Double Extra Large Instance, comparable CPU power to the High-CPU Extra Large Instance, and comparable disk performance to the High I/O Quadruple Extra Large Instance. This is a very, very high end server by EC2 standards. It would be prohibitively expensive to run this hardware in the Amazon cloud. But how much will it cost us to build? Just $2,452. Adding 10% for taxes, shipping, etc let's call it $2,750 per server. One brand new top-of-the-line server costs about as much as two months of EC2 web application hosting.

Of course, that figure doesn't include the cost in time to build and rack the server, the cost of colocating the server, and the ongoing cost of managing and maintaining the server. But I humbly submit that the one-time cost of paying for three of these servers, plus the cost of colocation, plus a bunch of extra money on top to cover provisioning and maintenance and support, will still be significantly less than $17,000 for a single year of EC2 web application hosting. Every year after the first year will be gravy, until the servers are obsolete – which even conservatively has to be at least three years. Perhaps most importantly, these servers will offer vastly better performance than you could get from EC2 to run your web application, at least not without paying astronomical amounts of money for the privilege.

Newly built rackmount 1U server

(If you are concerned about power consumption, don't be. I just measured the power use of the server using my trusty Kill-a-Watt device: 31 watts (0.28 amps) at idle, 87 watts (0.75 amps) under never-gonna-happen artificial 100% CPU load. The three front fans in the SuperMicro case are plugged into the motherboard and only spin up at boot and under extreme load. It's shockingly quiet in typical use for a 1U server.)

I realize that to some extent we're comparing apples and oranges. Either you have a perverse desire to mess around with hardware, or you're more than willing to pay exorbitant amounts of money to have someone else worry about all that stuff (and, to be fair, give you levels of flexibility, bandwidth, and availability that would be impossible to achieve even if you colocate servers at multiple facilities). $51,000 over three years is enough to pay for a lot of colocation and very high end hardware. But maybe the truly precious resource at your organization is people's time, not money, and that $51k is barely a rounding error in your budget.

Anyway, I want to make it clear that building and colocating your own servers isn't (always) crazy, it isn't scary, heck, it isn't even particularly hard. In some situations it can make sense to build and rack your own servers, provided …

  • you want absolute top of the line server performance without paying thousands of dollars per month for the privilege
  • you are willing to invest the time in building, racking, and configuring your servers
  • you have the capital to invest up front
  • you desire total control over the hardware
  • you aren't worried about the flexibility of quickly provisioning new servers to handle unanticipated load
  • you don't need the redundancy, geographical backup, and flexibility that comes with cloud virtualization

Why do I choose to build and colocate servers? Primarily to achieve maximum performance. That's the one thing you consistently just do not get from cloud hosting solutions unless you are willing to pay a massive premium, per month, forever: raw, unbridled performance. I'm happy to spend money on nice dedicated hardware because I know that hardware is cheap, and programmers are expensive.

But to be totally honest with you, mostly I build servers because it's fun.

[advertisement] Stack Overflow Careers matches the best developers (you!) with the best employers. You can search our job listings or create a profile and even let employers find you.
Discussion

Todon't

What do you need to do today? Other than read this blog entry, I mean.

Have you ever noticed that a huge percentage of Lifehacker-like productivity porn site content is a breathless description of the details of Yet Another To-Do Application? There are dozens upon dozens of the things to choose from, on any platform you can name.

At this point it's getting a little ridiculous; per Lifehacker's Law, you'd need a to-do app just to keep track of all the freaking to-do apps.

The to-do appgasm

I've tried to maintain to-do lists at various points in my life. And I've always failed. Utterly and completely. Even turning it into a game, like the cleverly constructed Epic Win app, didn't work for me.

Eventually I realized that the problem wasn't me. All my to-do lists started out as innocuous tools to assist me in my life, but slowly transformed, each and every time, into thankless, soul-draining exercises in reductionism. My to-do list was killing me. Adam Wozniak nails it:

  1. Lists give the illusion of progress.
  2. Lists give the illusion of accomplishment.
  3. Lists make you feel guilty for not achieving these things.
  4. Lists make you feel guilty for continually delaying certain items.
  5. Lists make you feel guilty for not doing things you don't want to be doing anyway.
  6. Lists make you prioritize the wrong things.
  7. Lists are inefficient. (Think of what you could be doing with all the time you spend maintaining your lists!)
  8. Lists suck the enjoyment out of activities, making most things feel like an obligation.
  9. Lists don't actually make you more organized long term.
  10. Lists can close you off to spontaneity and exploration of things you didn't plan for. (Let's face it, it's impossible to really plan some things in life.)

For the things in my life that actually mattered, I've never needed any to-do list to tell me to do them. If I did, then that'd be awfully strong evidence that I have some serious life problems to face before considering the rather trivial matter of which to-do lifehack fits my personality best. As for the things that didn't matter in my life, well, those just tended to pile up endlessly in the old to-do list. And the collective psychic weight of all these minor undone tasks were caught up in my ever-growing to-do katamari ball, where they continually weighed on me, day after day.

Yes, there's that everpresent giant to-do list, hanging right there over your head like a guillotine, growing sharper and heavier every day.

Like a crazy hoarder I mistake the root cause of my growing mountain of incomplete work. The hoarder thinks he has a storage problem when he really has a 'throwing things away problem'. I say I am 'time poor' as if the problem is that poor me is given only 24 hours in a day. It's more accurate to say… what exactly? It seems crazy for a crazy person to use his own crazy reasoning to diagnose his own crazy condition. Maybe I too easily add new projects to my list, or I am too reluctant to exit from unsuccessful projects. Perhaps I am too reluctant to let a task go, to ship what I've done. They're never perfect, never good enough.

And I know I'm not alone in making the easy claim that I am 'time poor'. So many people claim to be time poor, when really we are poor at prioritizing, or poor at decisiveness, or don't know how to say 'no' (…to other people, to our own ideas).

If only I had a hidden store of time, or if only I had magical organisation tools, or if only I could improve my productive throughput, then, only then would I be able to get things done, to consolidate the growing backlogs and todo lists into one clear line of work, and plough through it like an arctic ice breaker carving its way through a sheet of ice.

But are you using the right guillotine? Maybe it'd work better if you tried this newer, shinier guillotine? I'd like to offer you some advice:

  1. There's only one, and exactly one, item anyone should ever need on their to-do list. Everything else is superfluous.
  2. You shouldn't have a to-do list in the first place.
  3. Declare to-do bankruptcy right now. Throw out your to-do list. It's hurting you.
  4. Yes, seriously.
  5. Maybe it is a little scary, but the right choices are always a little scary, so do it anyway.
  6. No, I wasn't kidding.
  7. Isn't Hall and Oates awesome? I know, rhetorical question. But still.
  8. Look, this is becoming counterproductive.
  9. Wait a second, did I just make a list?

Here's my challenge. If you can't wake up every day and, using your 100% original equipment God-given organic brain, come up with the three most important things you need to do that day – then you should seriously work on fixing that. I don't mean install another app, or read more productivity blogs and books. You have to figure out what's important to you and what motivates you; ask yourself why that stuff isn't gnawing at you enough to make you get it done. Fix that.

Tools will come and go, but your brain and your gut will be here with you for the rest of your life. Learn to trust them. And if you can't, do whatever it takes to train them until you can trust them. If it matters, if it really matters, you'll remember to do it. And if you don't, well, maybe you'll get to it one of these days. Or not. And that's cool too.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!
Discussion

The PC is Over

MG Siegler writes:

The PC is over. It will linger, but increasingly as a relic.

I now dread using my computer. I want to use a tablet most of the time. And increasingly, I can. I want to use a smartphone all the rest of the time. And I do.

The value in the desktop web is increasingly an illusion. Given the rate at which these mobile devices are improving, a plunge is rapidly approaching.

Don’t build an app based on your website. Build the app that acts as if websites never existed in the first place. Build the app for the person who has never used a desktop computer. Because they’re coming. Soon.

Realize that MG Siegler is a journalist, and a TechCrunch air-quotes journalist at that, so he's well versed in hyperbole. You might say he's a billion times better at hyperbole than the average blogger. In his own way, he is a creator, I suppose: he creates hype.

But he's not entirely wrong here.

I've noticed the same pattern in my own computing habits. As I wrote in The Last PC Laptop, it's becoming more and more difficult to justify any situation where a traditional laptop is your best choice – even a modern, svelte, fancypants laptop.

Desktops, on the other hand, are perfectly justifiable. That is, if you want three monitors, eight blazingly fast CPU cores, 64 GB of memory, and fire-breathing multi-GPU configurations. If you need absurd, obscene amounts of power, a desktop computer is the way to go. And it's probably cheaper than you think, because desktops are all built from the same interchangeable pool of parts. It's also a lot more fun than laptops, because willingness to tinker combined with lust for ostentatious power is the essence of hot rodding.

And it is freakin' awesome.

Hot-rod

But even as an inveterate PC hot-rodder, I've noticed that in the last few years I've started to lose interest in the upgrade treadmill of ever faster CPUs with more cores, more sophisticated GPUs, more bandwidth, more gigabytes of RAM. Other than solid state drives, which gave us a badly needed order of magnitude improvement in disk speeds, when was the last time you felt you needed to upgrade a powerful desktop or laptop computer? If I dropped a SSD in it, do you honestly think you could tell the difference in real world non-gaming desktop usage between a high end 2009 personal computer and one from today?

Because I'm not sure I could.

Imagine the despair of a hot-rodder who regularly sees the streets awash in boring Chrysler K-Cars and Plymouth minivans with more ponies under the hood than a sweet custom rig he built just two years ago.

I think we're way past the point of satisfying the computing performance needs of the typical user. I'd say we hit that around the time dual CPU cores became mainstream, perhaps 2008 or so. What do you do when you have all the computing performance anyone could ever possibly need, except for the freakish one-percenters, the video editors and programmers? Once you have "enough" computing power, for whatever value of "enough" we can agree to disagree on, the future of computing is, and always has been, to make the computers smaller and cheaper. This is not some new trend that MG Siegler revealed unto the world from his journalistic fortress of solitude.

Mainframe-mini-micro

We've already seen this before in the transition from mainframes that fit in a building, to minicomputers that fit in a room, to microcomputers that fit on your desk. Now we're ready for the next stage: computers that don't just fit in your lap, they fit in your hand. The name of the game is no longer to make computers more powerful, but to radically reduce their size and power consumption without compromising the performance too much.

Laptop-tablet-phone

I mentioned how boring the performance scene has gotten for laptops and desktops. It's so boring that I can't be bothered to dig up representative benchmarks. Let's just assume that, outside of SSDs, there have been at best cost-of-living inflation type improvements in desktop and laptop benchmarks since 2008. Now contrast that with the hyperbolic performance improvement in the iPhone since 2008:

iPhone-performance-2008-2012

In case the graph didn't make it clear, in the last four years of iPhone, we've seen a factor of 20 improvement in Browsermark and a factor of four improvement in GeekBench. In the smartphone world, performance is – in the worst case – almost doubling every year.

Ironically enough, these results were printed in PC magazine. I'd like to draw your attention to two little letters in the title of said magazine. The first one is Pee, and the second one is Cee. That's right, PC Magazine is now in the business of printing the kind of smartphone performance benchmarks that are enough to make any hotrodder drool. What does that have to do with PCs? Well, it has everything to do with PCs, actually.

I have an iPhone 5, and I can personally attest that it is crazy faster than the old iPhone 4 I upgraded from. Once you add in 4G, LTE, and 5 GHz WiFi support, it's so fast that – except for the obvious size limitations of a smaller screen – I find myself not caring that much if I get the "mobile" version of websites any more. Even before the speed, I noticed the dramatically improved display. AnandTech says that if the iPhone 5 display was a desktop monitor, it would be the best one they had ever tested. Our phones are now so damn fast and capable as personal computers that I'm starting to wonder why I don't just use the thing I always have in my pocket as my "laptop", plugging it into a keyboard and display as necessary.

So maybe MG Siegler is right. The PC is over … at least in the form that we knew it. We no longer need giant honking laptop and desktop form factors for computers any more than we need entire rooms and floors of a building to house mainframes and minicomputers.

[advertisement] What's your next career move? Stack Overflow Careers has the best job listings from great companies, whether you're looking for opportunities at a startup or Fortune 500. You can search our job listings or create a profile and let employers find you.
Discussion

Somebody is to Blame for This

This is not a post about programming, or being a geek. In all likelihood, this is not a post you will enjoy reading. Consider yourselves warned.

I don't remember how I found this Moth video of comedian Anthony Griffith.

It is not a fun thing to watch, especially as a parent. Even though I knew that before I went in, I willingly chose to watch this video. Then I watched it again. And again. And again. I watched it five times, ten times. I am all for leaning into the pain, but I started to wonder if maybe I was addicted to the pain. I think my dumb programmer brain was stuck in an endless loop trying to make sense out of what happened here.

But you don't make sense of a tragedy like this. You can't. There are no answers.

My humor is becoming dark, and it's biting, and it's becoming hateful. And the talent coordinator is seeing that there's a problem, because NBC is all about nice, and everything is going to be OK. And we're starting to buck horns because he wants everything light, and I want to be honest and tell life, and I'm hurting, and I want everybody else to hurt. Because somebody is to blame for this!

The unbearable grief demands that someone must be to blame for this unimaginably terrible thing that is happening to you, this deeply, profoundly unfair tragedy. But there's nobody. Just you and this overwhelming burden you've been given. So you keep going, because that's what you're supposed to do. Maybe you get on stage and talk about it. That's about all you can do.

So that's what I'm going to do.

Five weeks ago, I was selected for jury duty in a medical malpractice trial.

This trial was the story of a perfectly healthy man who, in the summer of 2008, was suddenly killed by a massive blood clot that made its way to his heart, after a surgery to repair a broken leg. Like me, he would have been 41 years old today. Like me, he married his wife in the summer of 1999. Like me, he had three children; two girls and a boy. Like me, he had a promising, lucrative career in IT.

I should have known I was in trouble during jury selection. When they called your name, you'd come up from the juror pool – about 50 people by my estimation – and sit in the jury booth while both lawyers asked you some questions to determine if you'd be a fair and impartial juror for this trial. What I hadn't noticed at the time, because she was obscured by a podium, is that the wife was sitting directly in front of the jury. I heard plenty of people get selected and make up some bogus story about how they couldn't possibly be fair and impartial to get out of this five week obligation. And they did, if they stuck to their story. But sitting there myself, in front of the wife of this dead man, I just couldn't do it. I couldn't bring myself to lie when I saw on her face that her desire not to be there was a million times more urgent than mine.

Now, I'm all for civic duty, but five weeks in a jury seemed like a bit more than my fair share. Even worse, I was an alternate juror, which meant all of the responsibility of showing up every day and listening, but none of the actual responsibility of contributing to the eventual verdict. I was expecting crushing boredom, and there was certainly plenty of that.

On day one, during opening remarks, we were treated to multiple, giant projected photographs of the three happy children with their dead father – directly in front of the very much still alive wife. She had to leave the courtroom at one point.

The first person we heard testimony from was this man's father, who was and is a practicing doctor. He was there when his son was rushed to the emergency room. He was allowed to observe as the emergency room personnel worked, so he described to the jury the medical process of treatment, his son thrashing around on the emergency room table being intubated, his heart stopping and being revived. As a doctor, he knows what this means.

On day two, we heard from the brother-in-law, also a doctor, and close friend of the family. He described coming home from the hospital to explain to the children that their father was dead, that he wasn't coming home. The kids were not old enough to understand what death means, so for a year afterward, every time they drove by the hospital, they would ask to visit their dad.

I did not expect to learn what death truly was in a courtroom in Martinez, California, at age 41. But I did. Death is a room full of strangers listening to your loved ones describe, in clinical detail and with tears in their eyes, your last moments. Boredom, I can deal with. This is something else entirely.

As a juror, you're ordered not to discuss the trial with anyone, so that you can form a fair and impartial opinion based on the shared evidence that everyone saw in the courtroom together. So I'm taking all this in and I'm holding it down, like I'm supposed to. But it's hard. I feel like becoming a parent has opened emotional doors in me that I didn't know existed, so it's getting to me.

Sometime later, the wife finally testifies. She explains that on the night of the incident, her husband finally felt well enough after the surgery on his right leg to read a bedtime story to their 4 year old son. So she happily leaves father and son to have their bedtime ritual together. Later, the son comes rushing in and tells her there's something wrong with dad, and the look on his face is enough to let her know that it's dire. She found him collapsed on the floor of her son's room and calls 911.

A week later, I was putting our 4 year old son Henry to bed. I didn't realize it at the time, but this was the first time I had put him to bed since the trial started. Henry isn't quite old enough to have a stable sleep routine, so sometimes bedtime goes well, and sometimes it doesn't. It went well that particular night, so I'm happy lying there with him in the bed waiting for his breathing to become regular so I know he's fully asleep. And then the next thing I know I'm breaking down. Badly. I'm desperately trying to hold it together because I don't want to scare him, and he doesn't need to know about any of this. But I can't stop thinking about what it would feel like for my wife to see pictures of me with our children if I died. I can't stop thinking about what it would feel like to watch Henry die on an emergency room table at age 38. I can't stop thinking about what it would feel like to explain to someone else's children that their father is never coming home again. Most of all, I can't stop thinking about the other 4 year old boy who will never stop blaming himself because he saw his Dad collapse on the floor of his room, and then never saw him again for the rest of his life.

Somebody is to blame for this. Somebody must be to blame for this.

Now I urgently want this trial to be over. I'm struggling to understand the purpose of it all. Nothing we see or do in this courtroom is bringing a husband and father back from the dead. The plaintiff could be home with her children. The parade of doctors and hospital staff making their way through this courtroom could be helping patients. The jurors could be working at their jobs. My God how I would love to be doing my job rather than this, anything in the world other than this. A verdict for either party has immense cost. Nobody is in this courtroom because they want to be here. So why?

I don't know these people. I don't care about these people. I mean, it's in my job description as a juror: I am fair and impartial because I don't care what happens to them. But finally I realized that this trial is part of our ride.

We get on the ride because we know there will be thrills and chills. Nobody gets on a rollercoaster that goes in a straight line. That's what you sign up for when you get on the ride with the rest of us: there will be highs, and there will be lows. And those lows – whether they are, God forbid, your own, or someone else's – are what make the highs so sweet. The ride is what it is because the pain of those valleys teaches us.

Sharing this tragic, horrible, private thing that happened to these poor people is how we cope. Watching this play out in public, among your peers, among other fellow human beings, is what it takes to for all of us to survive and move on. We're here in this courtroom together because we need to be here. It's part of the ride.

I've heard and seen things in that courtroom I think I will remember for the rest of my life. It's been difficult to deal with, though I am sure it is the tiniest reflected fraction of what you and your family went through. I am so, so sorry this happened to you. But I want to thank you for sharing it with me, because I now know that I am to blame. We're all to blame.

That's what makes us human.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion