At Peace

Standard

My uncle Craig passed away this morning. He struggled for many years, bed-ridden after a series of issues. I am sad because I will miss him — at least the version of him I knew before he got really sick.

I’ll admit it was hard to watch him suffer, and his death brings a kind of closure and peace. I’m sure some of you understand the feeling. The last time I saw him, I sat next to him and said, “Don’t be scared, Craig. You will see your dad soon and he’ll take care of you. We are all here with you.”

I don’t know if he could hear me or understand me, but I already said goodbye. This morning I was sad but mostly for my mom and grandma, who lost a brother or son. I told my Mom she was a good sister to him, and took care of Craig through the worst parts. It was hard work — years of hard work — and all because she loved him and hoped to make him a little more comfortable.

As I usually do during these times, I read Thanatopsis today. The last part explains death better than most:

So live, that when thy summons comes to join
The innumerable caravan which moves
To that mysterious realm, where each shall take
His chamber in the silent halls of death,
Thou go not, like the quarry-slave at night,
Scourged to his dungeon, but, sustained and soothed
By an unfaltering trust, approach thy grave
Like one who wraps the drapery of his couch
About him, and lies down to pleasant dreams.

I hope Craig went in peace, as if laying down to pleasant dreams. He had a good soul. Rest well, uncle.

Lucky One

Standard

I was never a fan of first dates. The nervous tension was always palpable and I never had much of an appetite. Some of them went fine, some were terribly bad. I started to lose hope that I’d find the right person. The odds seemed against me after many failed attempts.

Jaime and Michael
I met Jaime online and she sounded fine on the phone. Sane, independent, smart, sense of humor. She even grew up in Hawaii like I did and was in vet school.

This girl is different, I thought.

For a first date, we did fairly well. Her roommates spied on me picking her up and her friend jokingly said to have her home by midnight. I didn’t oblige.

We didn’t eat much and I stared at the table a little too often. We went to American Dream Pizza and had gelato at Francesco’s on the second floor. I didn’t even finish my gelato.

For a night cap she showed me all of the animals at the vet school she had told me about on the phone. I introduced her to my cats and gave her a ride home. My face hurt the next day from smiling.

She moved in a few months later. Mostly, it was driven by necessity. This way I could feed her and comfort her while she went through the hardest part of vet school: surgery rotations. Until then I had never seen someone work a 36-hour shift. She complained, but not much. She just kept working hard.

Rio and Maia sleepingGetting the cats to get along was an interesting problem. I remember Maia and the boys almost killing each other when they were introduced. It turned into a weird feline love triangle, and they became family. Things seemed to have a way of working out.

Then, we decided to get a dog. The first day we had Scout was when I knew Jaime would make a great mother. I also knew I’d marry her by that point. She was a DvM. now, which was not easy. She passed her boards on the first try and was ready to start her career. Jaime was busy, but she still had time to take Scout to training classes and teach her a ton of tricks.

Soooo tiredWe moved to Portland eventually. Jaime worked at the VA for a while and we lived in west Portland. A year later, after our lease was up, we were off to California.

Jaime agreed to move to California knowing she had no job. We found a place at the last minute in Mountain View thanks to a friend and she started looking for work. She turned down a crappy offer only to walk into a good job less than a month later. She learned quickly and became a leader on her team. I was proud, but not surprised. Not at all.

Oh yeahI asked Jaime to marry me on February 13th the next year. I was worried because it was close to being cliche, so I made sure to avoid the 14th. Her family was there and I proposed to her on the coast of the Pacific on Land’s End. “Jaime, I have a question for you,” I said. At first she thought I had to use the bathroom, but she was shocked when she realized what was happening. We cried a little, hugging each other on the side of the trail. The wedding was even better, and we were happy.

Things went well for a while. One year, in spring, my grandfather passed away. When I got home, Jaime told me, crying, that Maia was also sick. I didn’t have to ask why she was upset.

Maia DozingJaime knew what had to be done, and she took responsibility for Maia’s life. The next day, we went in to the vet and put Maia to sleep. Jaime softly said goodbye, and I watched Maia die in her arms. Jaime was so strong. My heart was tired when I went to sleep that night.

And then, we got another dog. This one was tiny, shy and relaxed as a puppy. I’m not really sure what happened, but Junebug turned into a rascally poodle with an unhealthy obsession for socks, sunbathing and Greenies. Jaime took the time to take Junebug to classes and teach her tricks as well.

Jaime and JunebugThe years flew by. We found a new home for Rio and Junior and tried to start a family. One day, we found out she was pregnant.

Jaime was overjoyed. She read all the books and scoured websites. She wanted to be prepared, eat right, and take care of herself and the baby. As always, she looked at it as an opportunity to learn.

Today, she is around two months away from being a mother. I find myself in awe of Jaime. She has remained patient, graceful and loving even with her big belly, swollen feet and sore hands. She still goes to work and does yoga. Without hesitation, she assembled a beautiful baby room. I helped, but only a little.

I think about the journey we are on. There are so many memories, but so much still to come: all the firsts, wonderful discoveries, tough times, lack of sleep and those hard nights as parents. I am oddly at ease with the whole thing. I am not scared. I know Jaime is my partner, and I know she will be strong. It gives me confidence. I am lucky.

New set of shoes for a special baby girl

I wonder: will I ever be able to adequately tell our daughter how I feel about Jaime? Will I be able to describe how much I love her, and how rare it is to know someone like her? Will I do her story justice?

I will do my best — through actions and words alike. I am excited to be a father, teacher and friend to our little girl. But what I’m most excited about, above all else, is that my daughter will have Jaime for a mom.

Because, baby girl, your mom is special.

Princess

Aggression doesn’t solve problems

Standard

I’m a bit worried about energy. There’s a karmic quality to what’s going on around us, and I want folks to think about it.

Conan, in his farewell off of NBC, said:

“All I ask of you, especially young people…is one thing. Please don’t be cynical. I hate cynicism — it’s my least favorite quality and it doesn’t lead anywhere. Nobody in life gets exactly what they thought they were going to get. But if you work really hard and you’re kind, amazing things will happen. I’m telling you, amazing things will happen.”

When my grandfather passed away, I clung to this. He was a quiet, unassuming, hardworking Chinese man brought up through some tough times. But he was never a cynic.

I think he had a lot of reasons to lose faith in people in the world around him. World War II, internment camps, segregation, great depression, Vietnam war… the list goes on. I believe we have pretty good lives compared to what he went through. Relatively, we have a lot of positives out there to write about.

So when it comes to net energy exchange, I don’t want to see what amounts to a few assholes trying to push people’s buttons and troll turn us into cynics. To live that way — to perpetuate that mindset — is counter-productive at best, self destructive at worst.

Because of karma, entropy, net energy, whatever — I personally don’t believe in aggression against aggression as a winning strategy. I find a lot of the language online to be rather aggressive, particularly toward competing viewpoints. This does everyone a disservice and drains energy from you, the other person, and people who reads this content.

And to what end? Do people become so drained that they quit? Is it about catharsis? Are people so shocked and awed at someone’s outrage that they change their mentality? When is the last time you yelled so loud that everyone just up and changed?

Never.

I think there are positive aspects to participation, and I agree with embracing what we feel and speaking up — but I don’t think the angry, rage-against-the-machine approach works for the disaffected. I liken this dichotomy to positive reinforcement vs. punishment.

The key there is it’s not either-or. You need both. In this give and take of energy I don’t believe you can have all the punitive language, the call-to-arms and outrage without the positives getting equal airtime. It’s totally out of balance.

Likewise, as people, I think the material and behavior we contribute to our communities needs balance. If all we’re doing is smacking down people who make mistakes and repeatedly punishing them, well, that has been proven to fail time and again in just about every facet of human society: drugs, prison, childhood development, racism, etc.

Pressure, positivity and time are what changes people. Things like learning, understanding, forgiveness, training and awareness. And not just in small doses – in large, consistent doses. I believe this. So did MLK:

“Darkness cannot drive out darkness; only light can do that. Hate cannot drive out hate; only love can do that.”

And here’s the thing: it sucks. People can be assholes; they don’t like to change and they cling to their beliefs. I have a lot of pity for any person who hinges their happiness on how well they can change the people around them.

But remember: not everyone is impossible. Not everyone is against you. Being a cynic is not going to move us ahead.

Codes of conduct, honor, etc. — they have their place and a balance in net energy is what they strive to achieve. A landslide of negativity and churn does not march us towards that vision — it sends us in the opposite direction towards something nobody wants to be a part of.

I’m walking the other way.

“Victory attained by violence is tantamount to a defeat, for it is momentary.” – Mahatma Gandhi

Feedback will make or break you

Standard

“Criticism may not be agreeable, but it is necessary. It fulfills the same function as pain in the human body. It calls attention to an unhealthy state of things.” – Winston Churchill

Ignoring feedback is a lot like telling lies, except you’re lying to yourself. Once you fib, you inevitably have to make more stuff up to cover for what you already made up — and soon you have an entire house of cards on your hands. When a breeze comes along, it all falls apart. The reality we build for ourselves masks our flaws so we don’t have to confront them. The only problem? Eventually, everybody will know it except you.

Don’t put yourself there. It usually culminates in embarrassment, loneliness, depression and rejection. It takes months, years to dig yourself out of it. Consider that criticism is like pain. Would you ignore an infection? Would you just let it go and convince yourself that you’re totally healthy? Would you risk your physical health in order to support your denial? I hope not.

Why would you do that to your mind?

How do we magically ignore feedback in practice? I’m sure you have better examples, but I’ll give it a shot. Here are some common tactics we use to dismiss feedback:

  • Criticizing tone. If you’re criticizing word choice or how they said it you are deflecting useful feedback. It’s popular in politics for a reason: it’s easy and effective.
  • Dismissal by association. This is similar to “ad hominem” in Graham’s how to disagree. As a knee-jerk reaction you may associate someone’s opinion with their rank, group, background, etc. The next logical step is something along the lines of, “of course they think that, they are just a designer.” This is a mistake. Feedback from orthogonal groups is even more valuable because they see you from a different perspective. Don’t dismiss feedback because someone is not on your team or because you out-rank them. That type of feedback, if ignored, will turn into grapevine chatter and slowly come back to you.
  • Making it about feelings. When someone gives you feedback it’s a very personal thing. However, if your response makes it personal when it doesn’t have to be, you’ve got a problem. Spending all your energy on how you feel about the feedback can prevent you from focusing on what caused the feedback. I think it’s great to let someone know how you feel, but do it carefully. It could shut down future feedback from that person and make you unapproachable. It’s the difference between, “I’m sorry, I didn’t know you felt that way — I feel bad about that and I’ll see what I can do,” and, “I really don’t appreciate what you said and it makes me feel terrible.” If your response is aimed at guilt-tripping the other person, you’re building a nice little wall around yourself and they’ll think twice about being honest with you in the future.
  • Constructing amazing excuses. Just stop with excuses. John Wooden said, “Don’t whine, don’t complain, don’t make excuses.” I don’t reasonably expect someone to never whine or complain, but excuses shift blame and make things not your problem. Chances are that if someone comes to you with feedback, you had something to do with it. I’m sure there are many reasons why the stars aligned and caused xyz, abc to happen — nobody gives a shit. Take responsibility and figure it out. Even if you didn’t have anything to do with it, ask yourself what you can do to help. Send them to the right person, or relay that feedback if necessary. Making excuses is clearly making sure it’s not your fault and taking responsibility for a solution isn’t even admitting fault. The key to remember: only one of those is remembered, and only one of those ends in solutions. If you want to be forgotten, keep on making those excuses.
  • Pulling rank. The “because daddy said so” approach to handling feedback is fairly common. Using rank to settle arguments or avoid confrontation is a slippery slope. If you’re a leader, it’s a good way to sabotage yourself. Your team will not work hard to fulfill your vision just because it’s your vision — you need to make it theirs by inspiring them. Ignoring feedback because of rank or authority says, “I’m too important to listen to that and what you said doesn’t matter.” You better have some credentials or trust to pull it off. If not, good luck with that, bossman.

Once you stop putting up your walls, you have to take some steps forward. Just like dieting, it’s not about eliminating the junk food — you have to exercise and eat good food too. Every once in a while you’ll slip, but for the most part you want balance and stability in how you approach feedback:

  • Fight like you’re right but listen like you’re wrong. John Lilly reminded me multiple times to do this, so let’s call it a Lillyism. It means moxie and listening don’t have to be mutually exclusive. Have guts, resolve and fight hard — but always, always listen and remember you may be wrong.
  • Get a second opinion. Phone a friend, ask your significant other, ping a coworker you trust. “Am I being defensive, or is this totally nuts?” is a decent question to ask about feedback you get that you don’t agree with. I know my wife is happy to tell me if I acted like a goofball and should apologize — and hopefully you’ve got people in your life who would do the same for you. Get help from them; you don’t have to process feedback alone.
  • Get counsel from your enemies. If you want to truly grow, you should know what your worst critic says about you. The best way to do this is ask them. I’ve seen folks avoid getting feedback from people that may not agree or even like them. This is just about the stupidest thing you could do. Avoiding feedback from people because it may not be good is self-defeating. Don’t avoid it, seek it out. Show them that you care to ask and listen — you’ll be surprised at what an impact they can have on your career.
  • Actively ignore things. You’ll get some noise in feedback. Just make sure what you ignore is actively ignored. You don’t have to heed everything people say — but you should listen. Make conscious decisions on what you’re not acting on as a result of feedback. And if you’re worried about the reaction, talk to the person who gave it to you and say, “this is my plan, and I don’t have time to do ____ but I will get to that later.”
  • Say thank you. Saying thanks for the feedback is just the right thing to do. Make an effort to thank people who helped you with their honesty — do what you can to make sure they do it again. People who give you feedback care about you enough to disagree with you and tell you the truth about yourself. Embrace them and value them. Let them know how important it is to you.
  • Ask questions. Your critics are great sounding boards. When you come up with actionable items from your huge list of feedback, ask them if your plan makes sense and whether it’ll address their concerns. This can open up opportunities for collaboration, discussion and at the very least lets them know you’re working on it and you’re listening. In case you didn’t understand feedback, you should do this as well — sometimes it takes effort to get down to the root cause.

Overall, how you handle feedback — and if you pay attention to it all — can define who you become. It all starts with you.

Do you have the courage to take criticism, process it and improve? Most people want to work with someone who answers yes.

Thanks to @lonnen for his feedback on this post!

Disabling right-click-to-paste in Putty

Standard

I use Putty because I’m primarily a Linux or Mac person using Windows to SSH in to another machine who doesn’t want to set up anything heavy just to get a terminal. I’ve used Linux at work as my primary desktop for 10 years and I have a Mac laptop. I use Windows sometimes if I’m working from home.

So Putty works fine. However, by default Putty will copy and paste anything in your clipboard / copy buffer into the window upon a right mouse click. This means you could accidentally paste totally inappropriate stuff into IRC if you use irssi/weechat + screen.

I’ve done this once in 8 years, but it sucked. A lot. Here’s how to avoid it:

  • Right click the title bar, choose “Change settings…”
  • Choose “Selection” under the “Window” sectoin.
  • Under “Action of mouse buttons:” choose something besides “Compromise” (that’s the “use right click to paste your super secret clipboard into public IRC channels” setting). I chose “Windows (Middle extends, Right brings up menu)” which is normal behavior on Mac/Linux too.

If you use Putty for IRC, you should do this.

Take care of the little things

Standard

My grandmother told me two things when she dropped me off at school:

  • Be good
  • Do your best

Simple, right?

In most systems, especially those that deal with people, this simplicity is something you have to claw and scratch for. It doesn’t come free. If you’re a manager it’s usually at your expense and it’s a part of your job.

Learning what makes people happy or sad is an important part of achieving this simple success. Getting the best out of your people, and having folks do things the right way — for the right reasons — requires some basic knowledge about what motivates or demotivates people.

Unfortunately, this takes some time. You’re not going to know everyone inside-out after a few days; not even after a few months. So where do you start? You start simple. You start with the small things:

  • Be polite. Wait your turn. Hold the door. Say thank you. Clean up after yourself. Say sorry and mean it. Offer other people gum.
  • Listen to people. Make eye contact. Let them finish talking. If you don’t know what they said, ask them so you can understand. Empathize with them.
  • Be on time. Show up when you say you will. Let people know if you can’t. Reschedule promptly if you have to. Don’t waste people’s time.
  • Random acts of kindness. Notes saying “thank you!” or “you’re awesome!” mean a lot. Cards on birthdays, holidays, new babies. Gifts: trophies, action figures, mugs, gift cards, scotch, etc.
  • Go out of your way for them. Stay late. Reschedule a meeting if they aren’t done yet. Put off your dinner plans to be there with them during a launch. Reply to their late email. Give them a ride home when it’s raining.

If you find yourself in a corner because you don’t know everyone on your team, relax. The best part about these small things is they are universal motivators. They build trust and relationships at work, home or elsewhere.

Over time, you’ll get to know your team and build on what you’ve started. Until then, do the small things — and keep doing them. Eventually, your team will be good and do their best because you did the same first.

More reading:

Engineers and other anomalies

Standard

In cased you missed it, Nicholas C. Zakas wrote a great post about the care and feeding of engineers and why they’re so grumpy.

If you have worked with engineers, this should either resonate with you, leading you to recognize your past misunderstandings and want to bear-hug engineers tomorrow OR you won’t read the whole thing and pass it off as another passive-aggressive rant from the techno-elite. Seriously, though, please at least read it.

If you are an engineer with some decent experience, you’ll likely grab a box of tissues and nod along like you’re seeing Shawshank Redemption for the umpteenth time. Near the part where he talks about engineers as creators, you’ll get the same feeling you got when Red said, introspectively:

“But still, the place you live in is that much more drab and empty that they’re gone. I guess I just miss my friend.”

So. Beautiful.

But wait! Put down the tissues. Before you start emailing your non-technical colleagues or tattooing this article on your chest backwards so you can read it in the mirror, there are some points I want to cover:

Mental fatigue and the culture of NO

Adopting NOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!! as your default response to things usually doesn’t work. Here are situations where it won’t work:

  • When U.S. customs asks you for your passport
  • When your grandma asks you to pass the mashed potatoes
  • When a cop asks you for your driver’s license and registration
  • When your best friend asks you to babysit their dog

Why smart and talented people would adopt this as their default reaction to questions is beyond me. The motivation behind the response is pure — focus on shipping, no time, reluctance to context-switch, etc. — but the reaction is entirely predictable in almost every case:

  • Jail
  • Dad punches you
  • Jail
  • (# of friends you have) – 1

All I’m saying is you get a chance to apply some creativity here. When that doesn’t work, at least apply restraint and say two magic words: “Yes, but…” Still confused? Here are some examples:

  • Yes, but it’s buried in my bag. Just a second, sir.
  • Yes, but my hands are terribly swollen and I have to use the bathroom. Ask Dad.
  • Yes, but my glove compartment is locked. It will take me some time to gather my legal documents.
  • Yes, but my house is getting fumigated and I’m flying to Peru that day.

Take the mental leap and apply it to work situations. If you can’t, your manager should be able to help. If they can’t, quit now.

Stop fixing stuff and take time to celebrate

An engineer’s obsession with creating is a great, wondrous thing. In my experience, it’s not unlike an addiction. It’s almost instinctive for an engineer to stay up late, whittling way at an impossible problem, fighting for that extra inch of performance, elegance or security. They can become immersed in fixing every bug, every issue in their project — but what about the positive parts? Where is there time for celebrating, recognition, reward and reflection?

Nicholas stated it well:

The software is our baby, and we like to care for it as such.

But as with most addictions, there isn’t much room for anything else. That baby can consume you, robbing you of some basic necessities like food, sleep, companionship, paying your taxes, personal hygiene and fashion sense. Bad baby!

I often remind engineers to spend equal time on the positives. In a culture so focused on finding creative ways to solve problems, we forget to recognize some basic things:

  • how much work went into the whole thing (a ton)
  • how much we learned from the project
  • what actually went well (a lot)
  • how cool the final result was

Don’t be selfless and obsessed. It makes you grumpy. Take time to appreciate what you’ve done together with your team (which includes designers, product managers, etc.) and take time to stop worrying about bugs. It’s not just about being positive — it’s about being human and letting yourself feel good about what you did.

Sometimes you’re just an asshole

There are those times where engineers are assholes. Yes, I know this may come as a shock to many, but engineers are also capable of being unjustifiable assholes. Over time, life will help you identify when you’re doing this, but if you need help read The No Asshole Rule by Bob Sutton.

If you’re an engineer and you engage in asshole behavior, it’s not justified by a silent frustration caused by other people. In those cases, it’s way easier to say, “Wow. I was an asshole yesterday and I’m sorry.”

Don’t go down the road of asshole justification. It’s a messy road, filled with bullshit. It’s often public, humiliating, and irreversible. Just say sorry and learn how to get your point across without alienating the people you will need to work with tomorrow. It actually feels great to talk it out with the team, the person you had issues with and regain your footing.

Stop digging a hole, put the shovel down and apologize.

Congrats, you made it this far!

Those were just some side comments to accompany a thorough post by Nicholas. Hopefully it helps and you spent the time to read and understand what I was saying. But if not, well…