Author Archives: dbrady

The Job Replacement Guide: Why I Have To Write This Book

I have to write a book. This is the story of why.

I’ve never told this story–the “before” part, anyway–except in parts here and there to my closest friends. If you don’t care about stories, but you are interested in a book with a completely unorthodox approach to jobhunting, sign up for the mailing list.

See, I’ve helped thousands of people jobhunt over the years. I tune resumes. I coach interviewees. I help people find out who’s hiring and how to get in touch with them. I’ve never charged or anything, it’s just something I do to help friends.

And I am really, really good at this.

I wasn’t born this way, though, and the way I am now is the happy, helpful, “after” part of the story.

I’ll tell you right now, the way I learned was not pleasant. Trigger words: divorce, chronic illness, depression. You’ve been warned.

For me, it’s all in the distant past, and I’m fine now. I like to fantasize that this is sort of my “Superhero Origin Story”, only with me ending up with a freakish personnel management skill instead of a superpower.

But yeah. This is a story I’ve never told all at once before, but now I need to–for the same reason I need to write this book: Some of you out there need it right now in the worst way, and most of us will need it in the next year or two. So… I guess this is for you. Here you go.

Act I: In Which The Hero Is Kind Of Whiny And Pitiful

In my early 20’s, I was… well, I was a mess. I had a positive attitude, a ton of self-entitlement, and absolutely no clue how the real world worked. I was newly married, freshly dropped out of college, and rocking a pretty severe case of undiagnosed ADHD. I wasn’t really sure how I was going to make ends meet, get back into school and graduate, or just keep things from falling apart generally. But I had unsinkable optimism and a can-do attitude, and I just knew that if I worked hard enough everything would be okay.

And then I got sick.

I got so sick I couldn’t work, and I lost my job. I went to the doctor, got a prescription, rested up, got feeling a little better, and went out and got myself a new job.

And then I got sick again.

I saw the doctor again, got another prescription, rested up, got feeling better, and went out and got a new job.

And then I got sick again. And again. And again. I had a chronic illness that wasn’t well-understood at the time.

I switched doctors. We tried antibiotics, then antivirals. I switched doctors again. We tried radical dietary changes: no artificial food colors, no additives, no gluten, no corn. The next doctor suggested it was in my head, and could I just try not being sick? When I tried just going to work and pushing through it, and became even sicker, he suggested I go the other way and take it easy. I took a month off to REALLY rest up and get better. To be fair, it helped: I lasted maybe an extra week at the next job. I tried chiropractic and megavitamins and massage therapy. I was desperate to find anything that worked. Nothing ever did. One doctor literally told me that the only thing left to try was divine intervention. He suggested that I talk to my church leader and get an ecclesiastical blessing.

I had already talked to him and gotten a blessing. Divine intervention seemed to be in agreement with medical science: No cures, no fixes. The only thing that could help me was lots and lots of rest, and then only for a little while.

It seems odd in retrospect, but the one thing that never occurred to me or my wife or any of my doctors this entire time was that I was, in fact, very sick. I secretly wondered if I was just lazy or somehow unfit to be a grownup. All we really knew was that I couldn’t hold down a job for more than 2 or 3 weeks at a time… and whenever I felt too physically ill to work, I was tormented by the guilt that I wasn’t supporting my wife like a husband should.

Over the next 18 months I worked at, and lost, 24 jobs.

My illness got worse. Our finances became unbearable. The combination of money, health problems and other stresses became too much for my wife. When she left me I was devastated. We had an amicable divorce because we couldn’t afford any other kind. There was nothing to split up but our debt.

I moved back in with my parents and spiraled into a deep, dark depression.

Act II: In Which The Hero Goes Off To A Monastery And Learns Kung-Fu

Technically this is true, if by “a monastery” you understand me to mean “my parents’ house”, and by “learns kung-fu” you understand me to mean “sits around moping and feeling sorry for himself, but at least has plenty of time on his hands to read and think and stuff”.

I did a lot of soul-searching, in every way I knew how. I read self-help books, I meditated, I saw a therapist, I took antidepressants, I sought spiritual counseling, I fasted and prayed to my God, and above all I spent a lot of time just thinking. I really felt like I was one of God’s “special screwups”, and that the only thing I was really good for was to serve as a bad example to other people. Any time I wished I could move back out on my own, I’d realize that I needed a job, and I’d remember that I’d lost more jobs than I was years old.

Transition: That Moment When The Hero Takes A Long Walk In The Rain Alone

One day I happened across a quote by Patrick Overton:

“When you walk to the edge of all the light you have and take that first step into the darkness of the unknown, you must believe that one of two things will happen. There will be something solid for you to stand upon or you will be taught to fly.”

Something about that quote resonated with me, which is why I still remember it. I felt like I had no light at all, and that any step in any direction was into the darkness. But I felt very strongly that if this quote was true then it should be true of any kind of the darkness; I should be able step in any direction and find solid ground–or a pair of wings.

I remember thinking about my job history, and laughing ruefully at myself, and saying aloud, “24 jobs in 18 months. That’s not solid ground. So how is that going to teach me how to fly?”

And that’s when it hit me:

In order to lose 24 jobs in 18 months, I had to search for, find, interview for, and get hired for 24 jobs! Even at the end, when I had to explain to interviewers why I had had dozens of jobs before them, I had no trouble convincing them to hire me. What on Earth was I doing to get these people to hire me? I had no clue. I didn’t know what I was doing; all I knew was that I could.

Act III: When The Hero Decides To Confront His Nemesis

I decided to move out of my parents’ house, and put my life back together. They say that when the student is ready the master will appear, that fortune favors the bold, and that the whole world steps aside for the man who knows where he’s going. There must be a good reason for these sayings to exist, because as soon as I started moving, miracles started happening.

Some friends from the city called me and said they felt inspired to ask if there was anything–anything–they could do to help me. I took them at their word: “Um, actually… yes. Can I come live in your basement for a year or two?” They didn’t even hesitate before saying “Yes.”

So I moved back to the city. With no rent, I was free to work when I could and not worry about eviction when I needed the rest. I got a job working the electronics counter at a big box store. I decided to take charge of my health proactively, and sought out a doctor while I was still healthy. I described my health history, and the doctor blinked in astonishment. He had just heard about my peculiar combination of symptoms. The treatment was simple and life-changing.

On the way to work one day I heard about some symptoms affecting millions of people called Attention Deficit Disorder. It described me to a T. Two weeks later I had an official diagnosis and a prescription that I still take today. I love to joke around about it, but honestly the best way to describe it is like my brain is now able to put on glasses when it needs to see more clearly. More importantly, I learned that I was not learning disabled, but rather had some specific constraints to my learning style. I stopped trying to get back into school and started buying textbooks to read on my own for fun. You know, as one does.

I began programming again in my spare time. Three months after I’d started working again, I heard about a company hiring not-quite-entry-level tech support people. Turns out that just dropping out of a top-ranked CS program was enough of a qualification to land the job.

I worked continuously for a straight year. I started dating again, and got engaged. The day the company announced they were closing their Utah offices in a month, I felt the strangest thing: absolutely nothing. My coworkers began scrambling frantically to find new jobs, but I didn’t. They thought I was crazy, and I thanked them for their concern, but I just shrugged and said I wanted to stay focused on my current job until they locked the doors. Later, my manager would give me a glowing review for my professional behavior in the last days of our team. On our last day I walked out into the bright afternoon sun.

I was getting married in three months. I had to find an apartment and pay first and last months’ rent. I had furniture to buy. I still had debt to pay off from my previous marriage. But above all, I had to show my fiancee (now my sweet wife of 17 years and counting) that I could support her financially without the slightest trace of worry.

I inhaled the warm summer air, and smiled. I had no job, no leads, and no idea where my next paycheck would come from.

And I knew exactly what to do.

Epilogue: In Which The Hero Realizes He Should Write This Stuff Down

It’s been eighteen years, now. I’ve always had work whenever I wanted it. I’ve been laid off, I’ve quit, I’ve been outright fired. Through it all, I’ve never missed a mortgage payment and I’ve never missed a meal. I’ve also never missed a wink of sleep wondering if I should quit my job.

All those years ago, back when I was a complete mess, I stumbled on an approach to jobhunting that makes the whole process simple, obvious, and easy. Maybe it’s the sort of thing I should save for the book, but I feel like I need to get it out there. I can’t explain it in one or two paragraphs, though, so you’ll have to wait for my next blog post on Monday.

There are three reasons I’m going to explain the whole thing on my blog. The first is that, even though it’s a simple idea, almost everyone looks right at it and doesn’t see it. (It took me several years to figure out what the actual idea itself was, even though I was acting it out unconsciously.) The second is that the reason people look right at it and don’t see it is because they’re afraid. And I can’t stand that anymore.

They’re afraid because they’ve just been fired or caught in a layoff. Or they’ve got a job but they’re afraid of losing it. Sometimes I even see people hate their jobs so much they wish they’d get fired, but they don’t quit… because they’re afraid.

Last year, a weird coincidence happened to me that made me sick to my very soul. I saw hundreds of people change jobs, no different than any other year, really. But just out of coincidence, four different people said the exact same sentence to me, and it’s a sentence that stabs my heart with ice:

“I just don’t know what I’m gonna do.”

I can’t stand leaving that question lying around unanswered, and I’m writing a whole book to answer it: Here’s what you’re gonna do. What I’m going to explain in the next post is the core principle, the why of what you’re gonna do. That’ll be here waiting for you on Monday.

The third reason I’m willing to explain the whole thing is that it’s taken me 18 years of applying that core principle to learn all the tricks I’m putting in the book. A few of them are original, but most of them are tips and tricks I’ve picked up from others along the way. Things that I’ve read or seen and thought, “Yes, that matches my core principle of how to do this.” But you don’t need the book if you’re willing to read my next post and then be me for twenty-odd years.

So… I’m writing all those tricks down. I love helping people with their careers, to take risks at work and learn and grow. But that’s hard to do if you are terrified of being let go.

That fear, that terror. That’s why I have to write this book. Not just the despair you feel when you’re out of work and laying awake worrying about feeding your family. I’m talking when you’re at work and that brief flutter in your stomach stops you from telling your boss that bad news she really needs to know about. Or that qualm that keeps you from speaking up in a meeting because the CEO might not like your suggestion. Or that seeping dread that makes you say, no matter how bad your boss is, you should be grateful to have work.

That fear. That terror. THAT is why I have to write this book. I hope you love it when it’s done and that you and a million friends all buy it. But even if it only sells one copy (thanks, Mom!), I can’t let this book live silently in my head any longer.

So, yeah. Coming Soon:

jrg_cover_small

The Job Replacement Guide

Learn how to replace your job with a better one in record time. Whether you’re unemployed, hate your job, or just wonder what you could accomplish at work if you were utterly fearless, this guide will give you the confidence that comes from being “unemployment-proof”.

Coming Soon!
Click here to sign up for the mailing list to get updates, advance content, and a discount on launch day.

New Candidate For Most Surreal Email I Have Ever Written

Before you read this, some necessary background.

First, This may come as a surprise to some of you who read my blog, especially those of you with particularly low reading comprehension, but I like to joke around, and tease people in a good-natured way and generally have a good time.

Second, lately I’ve been having a series of Very Serious conversations with a good friend, and one of the things that came up is that I use self-hypnosis to explore my subconscious and understand myself better. She replied that she had tried hypnosis but it just didn’t work for her; she felt like she was imagining everything instead of letting go and letting things happen.

Third, this is a perfectly normal place for many people to start with hypnosis, and all it takes to get through it is the ability to listen to your body’s physical sensations.

Fourth, because our conversations were Very Serious I have changed her real name. Let’s call her Jen instead.

Fifth, as I wrote this, I started to make a silly joke… and it sort of spiraled out of control. However, in comedy there is such a thing as commitment to the joke, so I stayed with it, all the way down into the ground. In flames. On an orphanage.

And Sixth, FOR THE RECORD, AGAIN FOR YOU FOLKS WITH POOR READING COMPREHENSION, Jen is a wonderful friend and I would never say anything to hurt her. This email was a joke, and she took it the right way, and she laughed.

Oh, and Seventh: Trigger Warning: This post contains ascii-art drawings of penises and making fun of quadriplegics. And ninjas. I mean it has ninjas in it, not that I’m making fun of them. Just the quadriplegics. They don’t fight back as much.

On 11/14/2013 05:23 PM, Jen wrote:
OK, we totally need to find some time to hang out so I can pick your
brain about how you discover these things.

This sounds really interesting.

Absolutely! You’ll be happy to hear that it all started where you’re at now: with me being unable to make hypnosis work, and when I did, it felt like I was just making everything up.

The bad news is that I’ve been working at it for over 20 years.

The good news is that I didn’t know how to really practice at things until this year, and I STILL don’t know how to practice at THIS.

The first time you do it, it will either shock you or completely underwhelm you, because there’s nothing to it–you’re already doing it, all the time. And I mean ALL the time. It’s like breathing, or nervously bouncing your foot. If you have a functioning Peripheral Nervous System, you can do this. It’s either happening to you right this second or you’ve had a sudden attack of quadriplegia.

JEN! IF YOU HAVE HAD A SUDDEN ATTACK OF QUADRIPLEGIA, TRY TO ROLL YOUR FACE OVER TO THE REPLY BUTTON! IT WILL SEND ME A BLANK EMAIL BUT I’LL KNOW YOU ARE SIGNALING ME TO oh what am I doing, you’re face down in the keyboard you can’t see the screen it’s not like typing at you in caps is going to help. I mean how stupid am I feeling right now, right? I’m all “TRY TO ROLL YOUR FACE” and you’re just lying there with one eyeball on the P key and your nose mashing the space bar. Geez I feel so dumb.

So… now what. Um.

Huh. This is suddenly kind of awkward.

Okay, so. I am wracking my brain right now trying to think what combination of pixels I could type up that would shine on the top of your head and help you with whatever is going on, but to be honest I don’t even really know what’s going on. I don’t know if you’re having a stroke, or an extremely rapid onset of Friedrich’s ataxia, if you’re just having the world’s calmest epileptic fit. I’m going to level with you, some of this is speculation, I don’t have a lot of information to work with here.

OOH! It could be ninjas! One shuto-uchi (“knife hand”) strike to the C2 vertebra and down you’d go, plus you’d never have seen it coming, because ninjas. This would also explain why you were just sitting there reading this email before it happened, instead of preparing for–I know, I know, “don’t blame the victim” and all that, but there’s a reason I try to teach people to maintain a minimum level of situational awareness. Oh man, I shouldn’t have said that, you’re probably already blaming yourself anyway. It’s probably hard for you to accept this right now, but, if it WAS ninjas, there’s nothing you could have done. I know you’re probably kicking yourself right now. Well, I mean you WOULD be if you could move your legs–aw geez that was probably insensitive of me. Wait, can I say “insensitive” or is that too close to “insensate”? GAH it’s like a spiderweb of tripwires with you and your political correctness! I don’t even know how to talk to you anymore, Jen–again presuming, falsely, that we’re talking and you’re not just lying there blowing snot bubbles into that little groove at the bottom of the space bar–it’s like you’re a complete stranger now, and ALL I AM TRYING TO DO HERE IS HELP YOU, WHY CAN’T YOU SEE THIS aside from the fact that you cannot, in fact, see any of this, as previously stated in an earlier interjective clause in this very sentence. I don’t even remember where I was going with this.

OH! Ninjas! That was it. Here’s the thing: it’s probably just ONE ninja. They don’t actually travel in packs or anything, except at like anime conventions, and even then they’re not actual real ninjas, they’re just dorky teenagers dressing up like, I don’t know, Scorpion or Sub-Zero from Mortal Kombat and stuff. Actually, now that I think about it, the chances of your ninja being a REAL ninja are statistically pretty minimal–except wait, C2 vertebra fracture.

Crap.

Okay. Jen, I know you can’t see this, but try to be brave. I don’t want to alarm you any more than you already are, but… it’s probably a real ninja.

All right, look–crap, I did it again, sorry. You’re getting a big ol’ eyeful of that P key and I’m telling you to “look”. Geesh. I don’t–wait, don’t you wear contacts? Oh MAN that has gotta suck! I mean, you suddenly lose sensation to 95% of your entire body all at once and the part that can still feel has to start hurting? Ha! Sorry, sorry, I shouldn’t laugh. It’s just that I’ve never really been sure what the actual definition of irony was, and I was just thinking that this is probably pretty close, and–

Sorry, I’m sorry. Appropriate conversation, I get it. I’m pontificating about wordplay and you’re lying there, terrified, with a probably-real ninja assassin in your apartment and spit puddling around your cheek. It’s not like you’re wondering if AppleCare covers the damage if the trackpad shorts out from your saliva. It doesn’t, by the way. Cover the damage, I mean. Just in case you WERE wondering. Which would be pretty odd, actually. And not just a little hypocritical, given the whole “appropriateness” discussion, if you ask me. Which you didn’t, given the whole “keyboard face” thing–sorry to keep bringing that up but it’s really sort of the elephant in the room here–and anyway now I’m starting to wonder why I can’t seem to go more than two paragraphs without it feeling like we’re having an argument. Am I projecting? I feel like I could be projecting. It’s possible. I am going through some issues right now. Okay, tell you what: let’s assume that yes, I *AM* projecting. Let’s just go on that, from here, clean slate, start over. Okay? Okay. Starting over. I’ll go first.

I forgive you.

Well what else am I going to start with, it’s not like we can pretend that words haven’t been said here! I’m just trying to make you see–and YES I realize that was an inappropriate word, but that’s starting to become just a bit too convenient a deflection, young lady, we ALL KNOW that you’re face down in your laptop, we GET IT, the whole paralysis thing, it was big news when we first heard about it but at some point you are just going to have to pick yourself up, sorry, haul yourself up by your bootstraps, again sorry, though maybe you’ve got a friend who would go boot shopping for you and put them on your feet for you so you would have actual, literal bootstraps, and then I guess maybe your friend could sort of tug on them for you, because maybe you gave her a head-nod or an eye-blink or whatever, I don’t know how this stuff works, she’s your friend so I’m sure you could work out some kind of signal given time, but my point is that sooner or later you are going to have to stand on your own two feet. Sorry.

Look (sorry) these are just figures of speech, it’s not like I’m standing (sorry) around trying to think up inappropriate knee-slappers (sorry) to say to my suddenly-and-inexplicably quadriplegic friend to be hurtful! It’s not like I am TRYING to cut you down (sorry) or kick (sorry) you in the teeth (sorr–wait, that one would actually work), if you could just meet me halfway on this, I would try to do better, I really would, Jen, I would try so hard.

But nothing is ever good enough for you, is it? Is it? You don’t have to say anything. We both know I’m right. Well here’s something you DON’T know: I have HAD IT. I am DONE. I tried to give you my friendship and you sure took it, but you couldn’t give back, could you. You just had to go and make everything about you, you, YOU. Well HERE’S something that’s about me, me, ME: ALL MY FINGERS STILL WORK YOU AWFUL HARPY! I HOPE YOU ENJOY STARING AT YOUR KEYBOARD AND I HOPE YOUR TRACKPAD TASTES LIKE GROSS SWEATY PALMS! Look at me! My legs both work! I’m not the one drooling into my keyboard! I’m not the one who is going to be discovered by EMTs tomorrow morning with my laptop open, AND I’M NOT THE ONE WHO’S GOING TO HAVE TO EXPLAIN TO THEM WHY I’M LOOKING AT AN EMAIL FULL OF ASCII-ART PENISES!!!

8=D
8=========D
8=========D
8===D
8==========D
8======D
8=========D
8======D
8==========D
8====D
8======D
8=======D
8==========D
8=========D
8=====D
8===D
8=====D
8====D
8=======D
8====D
8========D
8=D
8=======D
8=D
8====D
8==========D
8========D
8=D
8===D
8===D

HAH! ENJOY YOUR FEEDING TUBE YOU FOUL HARRIDAN

David

P.S. If you are not in fact paralyzed from the neck down please stop reading 17 paragraphs ago

P.P.S. The penises count as one paragraph

Final note for you blog readers: If you use Ruby, you can generate your own page full of ascii-art penises with the ‘dicks’ gem. Just type ‘gem install dicks’ and then ‘dicks -n 30’ and bam, your face will be full of cocks. As it were.

Loyalty and Daring

On November 7, 2013, user “Stromm sarnac” replied to Loyalty and Layoffs with a pretty strong comment about keeping my head down and my mouth shut. I started to reply, but it got so long that I’ve decided to post this as an open letter. Because I’m doing this, and because Stromm’s stance is pretty strong, I want to emphasize that I am grateful for his comment and I am not posting this as a reply troll, but rather I am replying with total transparency and sincerity. More importantly, since my message is that “no, I absolutely should not keep my mouth shut, and neither should you or anyone else”, I’m publishing it here for general consumption. Part of daring to open your mouth is owning the consequences, and sometimes that means owning “getting yelled at”. While we are certainly within our rights to retaliate if the scolding is harsh–and this is a very human thing to do–we may also have a brief window of engagement if the person doing the yelling is also coming from a place of sincerity.

I feel like I’m setting you up for a scathing swearfest here, but to be honest, Stromm’s reply isn’t really that harsh. If it had been, I’d just have deleted it and moved on. No need to engage when there’s no chance of connection. I found his reply pointed, but at the end of it I found myself realizing that he is exactly the kind of audience I am trying to reach right now. I’m adding all this preamble so that nobody reads this open letter and thinks I’m trying use my forum to publicly shame this user.

Stromm, if you’re still out there, this one’s for you.

“It didn’t really hit me for about a week that I’d just been screwed out of the best job I’d ever”

You weren’t screwed out of a job. You had no right to that job or any other, same as the rest of us.

You were let to because the numbers didn’t work. Same as almost all of us who have been let go like that.

Instead of burning bridges and showing future employers that they shouldn’t trust you either, you should have kept your mouth (fingers really) shut.

Thank you for this comment. I mean that sincerely. I found your post challenging at first–as I’m sure you intended–but then I found it interesting, so sure, I’ll take a moment to reply. First, let me say that this post was absolutely intended for you. You were–you are–my target audience. Secondly, yes, I wrote that post in anger, and though I don’t regret it I do recognize that I made a key error: I failed to clarify the difference between loyalty and trust, and this has led to a lot of reactions similar to yours. If I haven’t permanently lost you as a reader I hope you’ll take a moment to read Loyalty and Trust, but if you’re done with me and my last communication to you will be the email notification of this reply, let me say that I agree with you completely, and that we should show loyalty to our employers, but we should not trust them with our careers, because–as you say–nobody has a right to a job or any other.

I appreciate that you want to look out for me and my career, but you’ve missed some key points along the way. What you have taken away from my post tells me that you are conflating loyalty and trust, which is my fault. But your fear of burning bridges also tells me that you, sir, are not curating your own career properly. You think I should be afraid of something I have faced and whipped so many times that I almost don’t remember it even exists. And the reason you have this fear, and I don’t, all comes down to owning your own career.

But you wanted to make this about me. Maybe you’re a jerk–nothing personal; the internet’s full of them and I’m just saying it’s a possibility. But then again, maybe you deflected the issue back to me because it feels safer for you, and I’m fine with that–and again, I mean that. I’m not challenging you, and I’m not trolling you. I am trying to meet you with openness and sincerity here. We feel angry when somebody breaks a rule that we think should be in place, and many of our rules come from decisions we make about our fears. You missed the point I was trying to make, and that’s okay. The fact that you felt engaged by it enough to comment means maybe I still have a chance. You are rejecting your interpretation of my message, and I want you to hear my true message, or at least understand it enough to agree that it’s not for you. I’d rather you reject my actual point rather than your misunderstanding of it. So let’s talk about your reply for a minute.

Let me start by saying that you are right about every single thing you said, right up until the last sentence, where you tried to slip in a whole lot of implicit assumptions under the radar in order to arrive at the exact opposite conclusion that my logic–based on different assumptions–should have dictated. Let’s start with where you’re right.

Did anyone owe me a job? Certainly not. I agree with you. Life doesn’t owe me anything. Life is totally unfair. It has to be; otherwise winning wouldn’t be any fun.

You’re also right that I lost my job because the numbers didn’t work. You’re not wrong, but I want to point out a subtle nuance that you may have overlooked: the numbers didn’t work because somebody else was incompetent. I did everything right–better than right, really. And somebody else screwed up, and kept their job, and I lost mine. Is that fair? No! Did I have a right to that job? No! Do I have the right to feel betrayed about it? N–well, actually yes! My feelings are my own and I have the right to feel whatever the hell I want. You not only don’t have the right to vote on my feelings, you don’t even have the right to have an opinion out loud about them. Well, actually you do, because free country and stuff, but the point is I don’t have to listen or care. But since I also opened my blog for comments, I did give you a place to sound off about my feelings, so I’m not scolding you. Right now I choose to be transparent about my feeling process, but I wanted to point out that this is my whim, and not your right. Anyway, the process is this: I have a rule in my head that says my actions affect other people, and another rule that says I am responsible for my actions. Now I don’t have a rule that says I am responsible for other people, but I definitely do feel that I have a responsibility to other people. As it happened, some people very high up in that organization were consistently making bad choices, choices not based on reality or understanding of the market, but choices based on ego and shame and fear of looking bad to the board of investors. Rather than choose to examine their profits and losses and invest where costs were low and potential was high, they chose to sink vast sums of money into projects whose glory days had faded in the hopes of making the world somehow go back in time. In order to pay for that folly, staggering amounts of intellectual property was abandoned and projects with genuine promise were first bled dry and then discarded. In order to make the numbers work on those doomed projects, those men and women, who had responsibility for the company, and to me–because their actions had an effect on me–made choices that caused the numbers to not work where I was concerned.

They screwed up, but I had to pay for it. Did I feel wronged? You bet! Was I angry? Yep! Did I stay angry? Nah. It wasn’t really a useful emotion. I had no ability to take any action that would have any effect on them, and besides, I don’t know that I could have run the company any better. Even if I could have forced them to make a different decision, the company was spread too far at that time, and had to contract to stay alive. All I would have done differently is choose to unemploy the engineers on that big, fat, doomed project instead of mine. How is that any better?

But even still, at the end of all that, you are right: in order to arrive at that feeling of betrayal, I had to have some assumptions about my career that were out of whack. No employee should ever feel betrayed by an employer upon being let go. Especially when it’s an impersonal mass-layoff like I went through. You’re absolutely right.

But here’s the thing: I did feel betrayed, and I know countless other people who also have felt this sense of betrayal. I shouldn’t have, but the fact that I did isn’t going to stop being a true thing anytime soon.

Some people, like yourself, have observed this feeling and responded with a sort of self-oriented “tough love”. You tell yourselves “nobody owes you anything, sweetheart” when life gets crappy. That’s okay. I’m fine with that; it’s actually a rather useful attitude.

But there’s two ways to take this attitude: with hope, or with hopelessness.

Hope says “nobody else owes you anything, so if you want something you gotta haul yourself up by the bootstraps and go get it.”

Hopelessness says “nobody owes you anything… and there’s nothing you can do about it. So you’d better keep your head down and keep quiet, because if you complain you might never get anything again, or if you do have something they might hear you and come take it away.”

This is exactly the recipe for learned helplessness. It is a message you can send your brain and, if repeated often enough, will actually change your brain chemistry from healthy resilience to clinical depression. Ask me how I know. No wait, I’ll just tell you: I’ve been there, and I’ve done that. And then I learned a whole lot of stuff about it from some very smart doctors who happened to be experts in that particular field, and I learned to stop doing that, and that’s why I can say been there instead of am still there.

So that’s where you’re right.

I wrote that post because ten years ago, I felt betrayed, and even though it felt absolutely horrible, that turned out to be a useless attitude. So I decided to haul myself up by my bootstraps. I turned the betrayal into anger and the anger into action and the action into a resolution to never let it happen again. I learned that in order to do that, I had to learn to stick my head up. I had to learn to open my mouth. Sure, I’ve spent the last ten years getting smacked on the head and punched in the mouth (figuratively speaking). But I’ve also spent the past ten years watching other people try to get by by keeping their heads down and their mouths shut. And I’ve watched them toil away miserably, choose to stay in bad places because they fear losing their job, and then get laid off with no warning (which is, as you say, a fact of life) and no preparation (which is, as I say, inexcusable).

You and I are, in fact, in violent agreement. I said loyalty in that post, but as I clarified in my followup, what I really meant was trust: Trusting a corporation to take care of you is sick. Why? Because you have no right to your job. Forgoing improving yourself today, in order to help the company succeed today, because you believe the company will reward you for it–or even just be there at all–tomorrow, is foolish.

And the most interesting thing about that foolishness is this: if you forsake that foolishness, and build yourself, suddenly you realize that the job market is absolutely heaving with abundance. At least it is for people who build themselves and invest in themselves and stay at the top of their game. 14% unemployment is only terrifying if you’re at the 15th percentile. If you’re at the 90% percentile, the only way unemployment will catch you is by anonymous actions such as “the numbers didn’t work”. When unemployment is high, employers can afford to pick and choose the very best. And you know what that means? It means if you are on top of your game, you can switch jobs in the middle of a recession just by parking in a different lot.

I’m not trying to brag. I’m not the best developer in the world; some days I wonder if I’m even a good one. My head is full of outdated ideas that have worked in the past and never been reexamined. But I’ve learned how to get things done well enough that I feel confident in my skills, and I’ve learned I can back up my promises–if only because I know what promises I shouldn’t make. I have utterly no fear of unexpected employment. Not because I think it won’t happen to me, but because after I became a freelancer, I had to go through it so many times that I just don’t even think it’s special anymore.

Thank you again for this comment. I really do appreciate it and I hope that, if you don’t think I’m right, you at least think I care enough to reach out to you in good faith.

I’ll close with this thought: there are countless thousands of employers who want–who need–people who dare. People who speak up. People who not only poke their head up, but stick their neck out. Those are my peeps. I seek them out, and they’re everywhere. And they are desperate not just for me, but for hundreds more just like me. There are also countless employers out there who are afraid of people who dare. People who rock the boat. People who upset the balance. Those might be your peeps; I don’t know. There are people who are happy working at organizations like that. I still think they should still be curating their careers, in case someday the “numbers don’t work out”, but I certainly recognize that people can choose to be happy in those places.

I am not one of them.

Between me and that type of employer lies a vast chasm, spanned by a rickety wooden bridge, tinder dry, covered in pitch. Burning it will cut me off from many opportunities, it is true. But when that bridge goes up, it will send up a flare to all the other employers: startups, small companies, innovators–the ones looking for good people who understand and accept the risks and dangers and are willing to take a stand, even if it means cutting themselves off from some people.

I’m not burning a bridge. I’m advertising a self-selection process.

Tell me honestly: If you were me, would you really not light the match?

Announcement: Challenge Failed

Hi Gang,

So, my plan this week was to blog every day, and today I planned to post the final post in the Loyalty and Layoffs followup series. Life got increasingly out of hand this week and I’m not ready to post the finale. I could jam something out over lunch, but I wouldn’t be happy with the result.

I wouldn’t normally post a “No Post Today” announcement. Don’t point out your mistakes, right? However, I did promise you a post each day this week, and based on my web traffic stats, some of you have been showing up every day to read those posts. I am grateful for that trust, and I don’t want to leave you hanging.

I’ll be back Monday with the followup, and it’ll get the attention it deserves over the weekend.

Thanks!

Parentheses in Ruby

I’ve been doing a lot of “heart” and “mind” posts lately, and “code” is starting to feel neglected. If you’re not a programmer, feel free to give this one a miss.

I put off writing this post til the last minute because I want to talk about parentheses in Ruby, and I’d like to give you a definitive “do this” answer, but the reality is I just don’t know, so I’m gonna throw out some thoughts and let you guys tell me what you think.

Ruby Makes Parentheses Optional

Okay, that’s not news. But a lot of people come to Ruby from languages where parens are required, and they see that they’re optional in Ruby, and so they keep them in out of habit. And then they complain that Ruby is dumb for not having first-class functions.

What is often overlooked here is that optional parens are important. Matz chose to sacrifice first-class functions just so he could make parentheses optional. So when I started programming in Ruby, I made an effort to eschew them when possible. Now, “optional” means optional–it doesn’t mean banned and it doesn’t mean required. So there’s room for wiggle here.

Some Strong Styles Have Emerged

There are some very strong idioms that have emerged, however. Well, mainly just one: Never use empty parens. This is actually two rules: never put parens at the end of a method definition if the method takes no arguments, and never use parens when sending a message that takes no arguments. There’s a lot of really good reasons for doing this, and I won’t go into them here.

Generally Favoring Parens

I know some smart programmers who favor parens in ruby. Their general argument is simply “it makes the code more readable”.

My experience has been that this argument is indistinguishable from “it makes the code look like the other languages I’ve spent years learning to read”. This is not necessarily wrong. I think both styles have tradeoffs, and there’s a mental cost to be paid to learn to read a new style. Since this cost has to be paid up front, the tradeoff is really imbalanced in the short-term. But is this a false economy in the long run? I’m asking because I don’t know.

Generally Eschewing Parens

On the far other side of the spectrum lies “Seattle.rb style”. Josh Susser originally coined the term “Seatttle style” to mean “not using parens in method definitions”, but Ryan Davis and Seattle.rb have taken it and run with it to mean “never use parentheses unless the compiler requires it”.

I spent a couple weeks experimenting with this style. It definitely had an effect on my code. I never did get to where I like omitting parens from method definitions, and maybe I am subject to my own argument above about embracing the tradeoff. One thing I did find, however, was that trying to avoid parens everywhere else had a profoundly rewarding effect on how I felt about my code. The original argument from Matz about making parens optional was that parens are often just noise, and getting rid of this noise is important.

Parens and Readability

When I talked about this with the rest of the Ruby Rogues, I quickly found myself in a 3-against-1 battle (Katrina wasn’t available). Josh made the argument that omitting parens decreases readability. You have to read this entire line of code to know when the first method call is actually done:

puts array.delete hash.fetch :foo

And I have to agree. That line of code is horrible.

But… it’s not the lack of parens that make it horrible. That line of code is horrible all by itself. I don’t think this is really any better:

puts array.delete(hash.fetch(:foo))

(Another strong convention in Ruby is to never use parens with calls to puts; otherwise another layer of parens could be added, but they would be gratuitous.)

Now, some programmers will find that line of code more readable. My point is that this is a problem. The line looks a bit more comforting, but you still actually have to read the whole line to know what’s happening. This line is doing two manipulations on unrelated primitives followed by a side effect call to puts. This line desperately needs some intention-revealing variable, methods, and selectors.

I see code like this all the time in parenful code. It sort of gets a pass with the parens stuck on. We say “yeah, this could be refactored, but it’s readable enough for now.”

But scroll back up to the version without parens. That line is unforgiveable. It has to go.

How valuable is that? I’m asking; I feel like it’s a lot, but I had to spend a few weeks learning to read a whole new style before I got that value. So I don’t know the answer. I don’t if it’s worth it. What I do know is that by eschewing parens, I never ever write lines like the above. The code just won’t let me. It bugs me, and I refactor it, and then my code feels better to look at, and the whole program becomes much more readable. That’s immensely valuable to me. But I don’t know how to communicate that it’s worth the trouble–or even if it’s worth it at the end of the day.

Readability For Other Developers

Another good question is if one developer hasn’t learned this style, and another one has, should parens be the default to maximize readability? I grind my teeth whenever people start making “lowest common denominator” arguments because it’s really hard sometimes to see the line between “this is overcomplicated” and “let’s do something more stupid because it’s easier”.

So part of the experiment this week has been paying attention to how my coworkers react to my code. It’s hardly been a scientifically rigorous study, but given a sample size of one week and two code reviews, I have one data point. It comes from a coworker who strongly favors parentheses, but has been tolerant of my style. His exact words were:

“Your code is a pleasure to read.”

I am confident that he was not talking about my parenthesis usage, but rather about the clean, refactored, expressive code that resulted from me not liking the way some lines of code looked without parens stuck on.

It’s hardly a conclusive argument, but it’s one that encourages me to continue researching. I’m not ready to stand up and proclaim that parentheses are nothing but noise that covers up code smells, but I am giving serious thought to secretly believing it. 🙂

Weirich-Style Kung Fu

A hybrid style is emerging from these discussions, and it’s structurally based on “The Weirich Rule”, which is about blocks rather than parentheses, but the similarities are definitely there and I find the analogy appealing. In Ruby you can write blocks with braces or with do…end; the Weirich Rule states that if the block returns a value, using braces signals that intent to the reader. If the block exists for its side effects, using do…end signals this intent.

A Weirich-inspired rule for parentheses, then, look like this:

If you care about the return value, send the message using parens.

The people who have I have talked to–well, listened to–about this rule are passionate about it and convinced that it increases readability and communicates intent. I want to get behind this rule, I really do. it’s a clear, bright-line rule for when to use parentheses or not. It’s the sort of rule that might get included in a book about ruby, for example.

But…

But I still have a problem with this style: when I went full-on no-parens mode, I was forced by the ugliness of my code to refactor it to be simpler and cleaner. When I use this paren style, I can feel that pressure evaporate. I’ve tried this rule for a week, and and I can feel my code quality suffering. I’m not convinced it’s a good rule.

Maybe I just need more engineering discipline. On the other hand, however, I have found that coding styles that require more discipline tend to embarrass me when I don’t step up. I gravitate much more strongly to coding styles that encourage and support me in having more engineering discipline, because they result in me writing better code.

But that brings me back to square one, which is trying to convince everyone to try giving up parentheses all over the place, and I don’t know if I have enough tin foil hats.

So that’s where I’m at. Thoughts?

Loyalty and Trust

This post is part two of a three-part followup to Loyalty and Layoffs. Part one, Loyalty And Your Professional Network was posted Monday. I’ll post Part Three on Friday.

Betrayal is a recurring theme of my loyalty posts. I’ve talked about work like it’s a sinking ship, a burning theater, or a hike through tiger-infested grass. It’s pretty depressing stuff, isn’t it? Don’t you wish you could just do fulfilling work and not have to worry about all this treachery? Wouldn’t it be great if you could just be happy at your job without being paranoid? How would it feel to like your company and not have all this mistrust floating around?

Would it surprise you to find out that I am happy at my job, that I do fulfilling work, and actually like my employer? And that I am not, in point of fact, certifiably insane?

I said I was going to wait to talk about “good loyalty” versus “bad loyalty” until after I finished this series, but I realize now that I can’t put it off any longer. All this treachery and mistrust business is coming from getting our terms mixed up. We need to talk about what loyalty actually means. And then we need to see how it fits into a larger cycle of vulnerability and trust.

Loyalty

Let’s start with loyalty:

Loyal
Giving or showing firm and constant support or allegiance to a person or institution.

I want to make this clear: Yes, you should be this kind of loyal to your company. I’m not happy with everything every employer or client of mine has done, but I don’t badmouth them during or after my engagements with them. Once I’m hired, I am hired. If I’m cashing a client’s paycheck, then I am very focused on helping them succeed. I don’t care about office drama. I want to get the product built and shipped and into the customer’s hands. I’ve worked W-2 jobs and 1099 jobs over the years, and my definition of loyalty doesn’t have to change. Firm and constant support.

I try to give that to the company, and I also try to give it to my coworkers. But when I do that, something very different happens.

Vulnerability and Trust

When two humans share loyalty, an interesting cycle begins.

  1. I open up a little bit and share a little bit of vulnerability with you.
  2. You respect that vulnerability by showing support and respect–loyalty.
  3. I feel I can trust you more, and open up a little bit more.

While I’m doing this, you are doing the same in return. It is in our shared moments of vulnerability and compassion that we find our truest happiness. This is part of being human. We need this. I show you vulnerability, loyalty and trust; you show me the same in return. All three emotions go in both directions.

Of course, sometimes we share too much, before trust has been earned, or the other person doesn’t honor the vulnerability that we’ve entrusted them with. When that happens, we feel shame and betrayal. I’m not telling you anything new here… at least not yet. But now try this: run that sequence backwards. If you’re feeling betrayed, it is because you were not given loyalty after you showed vulnerability. Make sense? Hold on to that thought, we’re going to come back to it.

This full cycle of vulnerability, loyaty and trust is what I’m talking about when I say that loyalty to a corporation doesn’t make sense. Allegiance and support is fine, but vulnerability and trust? We can’t have the cycle of vulnerability, loyalty, and trust with a corporation, because the corporation is incapable of reciprocating. But sometimes we want to feel that trust so much that we pretend that the company is participating. We cross a boundary we shouldn’t, and we pretend that the company is honoring it… and that’s where it all goes wrong.

Have you ever been laid off and felt a mild sense of professional annoyance, but mostly you were just sad to no longer be working with great teammates on a worthy project? That means you’ve got a good sense of boundaries.

But the Loyalty and Layoffs post is full of comments from people who have been laid off and feel betrayed. When Evans & Sutherland let me go out of the blue, even with all that severance, betrayed is exactly how I felt.

Huh. Feeling betrayed… how does that happen, again?

Loyalty Only Goes In One Direction

One of the things my friend Rodney taught me is that, in a corporation, loyalty only goes one way: up. You show your allegiance and support to your manager, she shows her allegiance and support to her boss, and so on, up the chain to the CEO.

Now, most of us have worked with great managers and leaders. People who go to the mat for us. These are fantastic people, and I highly recommend seeking them out and working for them whenever possible. But do they prove that loyalty also goes down? Think about this: what happens when their boss tells them they have to fire you?

They do their job.

To be sure, they absolutely hate their job that day. But they do it. Why? Because they’re loyal. And that loyalty, ultimately, only goes in one direction.

Trust Only Goes Goes In One Direction

When we show loyalty, we earn trust. So the corollary to loyalty only going up is simple: trust only goes down. Your CEO trusts your manager to be loyal, your manager trusts you to be loyal, and you… you trust the plant on your desk to keep on doing that photosynthesis thing.

Trust
Firm belief in the reliability, truth, ability, or strength of someone or something.

I’m not saying you shouldn’t trust anyone with anything. That’s a little bit crazy, and a whole lot of no fun. I’m just talking about the trust that loyalty earns. You can trust a good company to pay you, because it’s against the law if they don’t. You can trust a good manager to keep office politics away from you. But if you know loyalty does not come down, and that a company will act in its best interest even if it’s at your expense, then that trust, the specific “firm belief in the reliability” of your company, should not go up.

Vulnerability Doesn’t Go In Any Direction

In theory, vulnerability could go down. You show loyalty, the company shows trust; in theory your CEO could share vulnerability with your manager, and your manager could share vulnerability with you.

But they don’t, do they?

I’m not talking about friendships, here. I’ve shared plenty of vulnerability, trust and loyalty with managers as friends. But I can’t think of the last time a manager told me he was worried about getting laid off, or thinking about leaving to work for a competitor, or afraid the company might not make payroll next month.

I think they actually teach in MBA school that “complaints go up, never down.” No, wait, that’s a quote from Saving Private Ryan. But my point is, vulnerability could go down the chain… but it never ever does.

So what about up the chain?

Because the company does not show you loyalty, it cannot earn your trust. So the big question is: in spite of this, are you sharing vulnerability up the chain?

Vulnerable
Susceptible to emotional or physical attack or harm.

If you’re afraid of losing your job because you have no idea where you’ll go or what you’ll do… maybe you’re letting yourself be “susceptible to harm”. There are two things you can do about it. The first is to continue to offer this vulnerability to your company, and pretend the company has reciprocated with loyalty, and feel the warm glow of trust that all will be well. You’ve crossed a boundary inappropriately, and the company probably doesn’t care. The only cost of this is that if the company lays you off, you will feel betrayed… and it’s not the company that will be paying that cost.

The other thing you can do is own your own career. You take back that vulnerability. Interestingly, when you do you, you suddenly realize that the company could fire you if it was in the company’s best interest. I mean, it always could, but once you take vulnerability off the table, it stops being a disaster and becomes just another thing that could maybe happen.

Take Vulnerability Off The Table

Once you accept the truth that your company can, and will, and should act in its own best interest, it’s easy to take vulnerability off the table. And then an interesting thing happens: you don’t have to take trust off the table. It evaporates on its own. You sort of realize that it was never there to begin with.

Loyalty goes up. Trust goes down. Vulnerability is something you save for those coworkers and friends who are willing to reciprocate.

Finding Happiness

You can not only be happy at a job with this arrangement, but happier than you would be otherwise. Owning your career means you have alternatives, and that means you have a choice. Suddenly there is more fulfilment in your work, because it’s work you choose. You get to feel the joy of personal growth. You have the confidence of knowing that, if you really had to, you could quit instead of putting up with an abusive boss.

And you have the peace of mind that, should you arrive at work to find a pink slip waiting for you, you’re going to feel a lot of things, but not betrayal. Not again, not ever.

Luck Is Not A Factor

Once Upon A Time, A Nonsequitur

“You can observe a lot just by watching.” — Yogi Berra

Late in 2006 I was sitting in Rodney Bliss’ office for our weekly investor debriefing. Rodney was the President of the company; as the Director of Technology I reported to him. In theory, Rodney ran the company and I ran the development team. In practice, the investor would change our priorities and expand the scope of the project every week and it was all we could do to keep up. Rodney had just returned from meeting with the investor, and we were going over the new list of features so that we could prioritize dependencies. And then he casually told me of another request that our investor had made.

“He wants me to put together a list of all our expenditures, from payroll to soda pop–”

“Aw, CRAP!” I interrupted.

“What?”

“You’re going to get fired!”

“What…? No I’m not!” Rodney actually laughed. I just stared at him in horror. I couldn’t believe he couldn’t see it. It was so clear.

“Rodney, I’m not joking. You’ve got 2 months at best; less if he’s smart. Based on the way things have gone this year, I’m guessing right at about six weeks.”

“Dave, calm down. I am not going to get fired.”

Six weeks later, almost to the day, Rodney got called in for his exit interview.

Rippling Grass Is Always Caused By Wind Except When It’s Tigers

The thing was, I knew Rodney was going to get fired, but I didn’t know how I knew. It was a very chaotic time for all of us, and there was no one significant indicator that I could point out, but sitting in that office, I could see all these tiny little details suddenly adding up to a starkly clear pattern. I’d worked for half a dozen clients in as many years, and based on all of my experiences joining and leaving companies, this request from our investor was… odd. Not just odd, but totally out of keeping with his character and with the way he had behaved towards us all that year. All of these things added up instantly in my gut, if not my head, and what was odd suddenly became ominous. Our investor had always respected Rodney’s autonomy, and aside from some ineffable “leadershippy things” that Rodney did, budgetary discretion was the only thing Rodney actually did… at least on paper. And now the investor was taking that function over. I knew–knew–Rodney was going to get fired, just as soon as our investor put all the pieces together.

It took me seven years to figure out how I figured all that out. It was just last weekend, in fact. Rodney and I were arguing good-naturedly–we’ve stayed friends over the years–about a blog post he’d just written, titled And Sometimes You Just Get Lucky. Go read that post; I’ll wait. It’s a lot of fun to read and most importantly, Rodney is wrong and I can’t resist the temptation to point that out. Especially because it’s the kind of wrong where I get to point out how awesome Rodney really is.

Luck Is Not A Factor

For those of you who didn’t go read his post–for shame!–the TL;DR is that Rodney got lucky debugging a computer problem. He sat down and typed a few commands, and noticed something out of the ordinary. To everyone else in the room, it was ordinary–just a very large amount of free disk space. But Rodney was one of the first SWAT engineers at WordPerfect, and had been steeping himself in the engineering lore of the company for years. He just happened to know that Shell.exe counted up free disk space when it started up. He just happened to know that computers at that time were occasionally experiencing growing pains, where the size of the place in memory for storing numbers was turning out to be too small–like the number of free bytes on disk, in an era where people still carried floppy disks that held less than 2 megabytes, but now you actually could have entire gigabytes(!!!) of disk space lying around–even, in this case, the 2.147 gigabytes needed to overflow a signed 32-bit integer. And lastly, but most definitely not least, he just happened to know the name and phone number of the guy at WordPerfect who wrote Shell.exe in the first place.

Rodney says he got lucky. Rodney is wrong. He was no more lucky that day than I was at guessing he was about to get fired. A hundred tiny factors, measured in our brains against a hundred past experiences, and suddenly we knew that particular ripple in the grass was a tiger.

Cool Story Bro, But So What?

Well, for starters, Bro, start looking at the grass. Unless you’re down with getting eaten by a tiger. That’s very eco of you, man. I mean, hardcore. I can, like, totally respect that.

No, the thing is, if this isn’t luck, then maybe this is a force we can harness for good. Or at least maybe luck is something we can measure. You know, with science and stuff. Or something. Richard Wiseman set out to do just that, measuring the skills and abilities of people who considered themselves lucky against people who considered themselves unlucky. One of the tests he gave was to ask participants to count the number of images in a newspaper:

"I gave both lucky and unlucky people a newspaper, and asked them to look through it and tell me how many photographs were inside. On average, the unlucky people took about two minutes to count the photographs, whereas the lucky people took just seconds. Why? Because the second page of the newspaper contained the message: "Stop counting. There are 43 photographs in this newspaper." This message took up half of the page and was written in type that was more than 2in high. It was staring everyone straight in the face, but the unlucky people tended to miss it and the lucky people tended to spot it."

You can read Wiseman’s entire article here. It’s fascinating. He even changed the message to say “Stop counting and tell the experimenter you have seen this and win £250.” There was no change in the survey results–except that now the lucky people were going home £250 richer.

I don’t want to steal Wiseman’s thunder, but his bottom line is that lucky people relax more, and tend to be more open to noticing things even while they are focusing on accomplishing a task.

No Seriously, So What?

Dude, seriously. You need to relax. No, I mean literally. That’s the whole point of Wiseman’s article.

I read his article a long time ago–It’s ten years old now–and I’ve been fascinated with the kinds of pattern recognition our brains are constantly doing. I began to notice more and more that I was spotting tigers in the grass in the weirdest of places. I began to notice much more subtle tigers. I began to spot tigers from much further away with less and less data. When I called Rodney’s termination, I knew the investor personally and had a lot of information about him personally. Turns out that was mostly noise; the “tell” is an executive with insufficient personnel knowledge asking for a budget spreadsheet. Earlier this year, a manager at one of my clients commented offhand that he had to prepare a budget breakdown for an executive that nobody on the team had ever heard of. I sighed, and smiled wistfully, and told him that it had been nice working with him. When he asked me what I meant, I shrugged and said “that executive is going to have all of the contractors fired. In my experience, it takes”–waaaiit for iiiit–“about six weeks.” This time I was watching the calendar carefully, and I called it exactly to the day.

Okay, So Spidey Senses Are Neat, But Can You Use Them In Anger?

Yes.

Specifically, the question I am putting in your mouth here is whether or not you can use this pattern recognition skill actively and aggressively, not just defensively. The answer is most definitely yes.

You can use it to hunt tigers.

A couple years ago I was working at a company that handled some sensitive data. I’m used to playing things fast and loose, by which I mean empowering team members and requiring them to be responsible. Unfortunately, we had a sysadmin who didn’t want anybody touching anything for fear of accidentally exposing our production data. He knew his stuff and I respected him, but our approaches to development were worlds apart when I first came on board, and part of us working out our kinks was having some splendid arguments about silly little things like “being able to do my job” and such. You know, trivia.

I remember we had a problem on our production database server that was just beyond bizarre. We had a fairly intensive query that we had been optimizing. A typical query returning a few hundred records would take 10 seconds, which we optimized and got down to half a second. The worst-case queries would return 10 or 20,000 records and would take 90 seconds or more. We optimized those and got them down to 2 seconds. Things looked really good. Except… well, every thirty minutes or so, the queries would take 30 seconds to run. It didn’t matter if they were worst-case queries, or typical ones, or a mixture; the database would just go away for 30 seconds and all the queries would wait before suddenly coming back all at once.

What I desperately wanted to do was log into the production server and watch it run. I knew our sysadmin was absolutely freaked out by the very thought of this because, well, I asked him, and he absolutely freaked out. So I checked everything I could in the code again. Then double-checked. Then triple-checked. The code was fine. There HAD to be something weird going on on the server.

Our sysadmin wasn’t totally unreasonable, he just absolutely refused to compromise the safety of our data. This is a good trait to have in a sysadmin! But it was early days for us working together, and we hadn’t quite learned how to do it. Work together, I mean. He kept asking me, “Tell me what you want to know about the server, and I’ll tell you.” And I kept responding by holding up my hands and saying “I don’t know. I’ll know it when I see it, but I won’t know it until I see it.”

Months later we would work out how to work together effectively, but at that point in time it literally took the intervention of a Vice President to work things out. The proposed solution was laughably simple. To the sysadmin, he said “do you see any reason Dave can’t watch over your shoulder and tell you what to type? He never touches the keyboard, and you have veto power over him looking into sensitive data.”

The sysadmin grumbled that this would be okay, but that he was sure it would be a total waste of time.

We sat down–well, he sat down. I was literally forbidden to be within arm’s length of the desk. I asked him to start looking around the server. Logfiles, running processes, network I/O, database load. As we were looking at running processes, I noticed that the database was running a reverse DNS lookup on an inbound query. I also knew that, for security purposes, none of our webservers had reverse DNS lookups enabled.

“Hey, how long is the timeout if reverse DNS fails?”

The sysadmin stared at the screen for a long moment. I couldn’t tell if he was embarrassed, or angry, but I could see that we had just seen what we’d come to see, and he was piecing together all of the implications in his head.

Finally, all the implications came together and he said, all at once: “Thirty seconds, there’s the query delay. And when it fails, it caches for 30 minutes, so there’s the problem frequency. And reverse DNS shouldn’t even be enabled on the database. Hang on, let me turn it off.”

Total elapsed time, from the time I walked out of the VP’s office with the sysadmin, to the time I returned to tell him we had found and fixed the bug?

Four minutes.

Wow. Can You Ever Use It Defensively And Offensively At The Same Time?

In theory, yes. In practice I’ve only ever seen it done once.

Here’s the theory: if you see that ripple in the grass a long, long way off, but you can’t change your course, you know a tiger attack is coming. Tigers rely on the element of surprise, but you have time to prepare. How much time depends on how far away you saw the ripple. So you try to pick where you’ll make your stand, and you try to bolster your defenses, and when it becomes clear that you can’t avoid the tiger, you… relax and let it happen. As the blur of black and orange streaks up at you from the grass, you can learn a lot about a tiger in a few milliseconds if your life depends on it, and in those milliseconds, you can discover that tigers are often quite surprised by having their ambush turned into a deft counterattack.

That’s the theory, anyway. In practice… well, remember the first story I told, about Rodney? I called the ripple six weeks before the tiger attack. Rodney didn’t believe me at first, but as the weeks went by, other signs began to become clear. I don’t remember what finally convinced him–I think there was a planning meeting on the calendar, and I told Rodney that if I was right, the investor would cancel it, because it made no sense to waste time making plans with somebody you’re going to fire. Sure enough, the investor canceled the meeting at the last minute for “personal reasons”. More importantly, after a year of working with the investor, we knew he was very organized, and always moved appointments instead of canceling them. This time, the investor didn’t set a date to reschedule. When Rodney asked when would be a good time to reschedule, the investor said “let’s talk about that after next week.”

“Next week” was six weeks after I’d said he had about six weeks left.

Rodney went to his weekly meeting with the investor, calm and ready for another normal day of meetings, but also on the lookout for anything out of the ordinary. And there it was: this time there was an extra person in the room–the CFO. Rodney knew from corporate experience that he was there to be a witness… and that meant that this was going to be his exit interview. He sat down, and they sprang what they thought was going to be an ambush.

As the blur of black and orange streaks up at you from the grass, you can learn a lot about a tiger in a few milliseconds if your life depends on it…

I don’t know what happened in that room that day, but Rodney walked out of there smiling, and still very much the President of the company. Oh, they still wanted him gone, but instead of kicking him to the curb as planned, they ended up timidly asking him what terms he would like for them to come to some sort of arrangement regarding that…?

Rodney met the tiger… and then the tiger met Rodney.

But… that part of the story isn’t my story to tell. Which is why I sat him down and made him promise to tell the story on his blog someday soon.

“Dave, calm down. I am not going to get fired.”

Huh. I guess he was right.