June 29, 2019

How to demotivate your engineer from Day 0

The first day experience is more important than you think.

How to demotivate your engineer from Day 0

Dan took the big leap to join a new company, leaving years of bittersweet familiarity behind.

"Ahh this door, I know what's behind. I've been here twice during the interviews. I'm good, this is the first day of the rest of my life.", Dan steeled himself.

A wonderful smile beams across the receptionist's face as Dan entered, "How may I help you sir?"

"Oh I'm Dan, the new hire from Engineering. I start today.", Dan replied.

"Hello there! I'm Jane. Nice to meet you. I don't see you in the system. Let me give the Engineering Director a call".

After some communications-fu, a friendly engineer appears, introducing himself as Jacob, a Senior Engineer, Dan's new buddy. All sorted out!

Alas, it was a tough day for Jacob. He had a few things to tie up because it was sprint end and the team lead was on holiday. Nevertheless, he managed to execute the important first rites, introducing Dan to colleagues around the floor and making sure he had both email and Slack access.

"I'm going pass along a Jira ticket assigned by the team lead and the documentation for machine setup, I'll check in later, let me know if you can get everything to work.", Jacob said hastily as he stole a glance at the Apple Watch.

As the background tension from the barrage of reactionary social interactions ease away, Dan gains back his headspace.

It was time for him to show his chops, oh oh, he wanted to show the new team he was the thoughtful engineer they hired.

As Dan flips open the shiny Macbook Pro, well, he realizes that it's not new.

"That's perfectly fine, it's still a powerful machine, just what I need.", Dan silenced himself, slightly embarrassed by his shallow train of thoughts.

The machine wasn't in a pristine state too. The user accounts have been removed, but there's a remnants from the previous user, as Dan observes the state of /usr/local. He started deviating from the step by step machine setup instructions because all manners of mysterious errors were popping up.

Feeling smug, Dan knew that a lot of the problems were just caused by helpful install scripts that don't reinitialize template data directories etc if they were already there. All he had to do to get the IT crowd equivalent of "Have you tried turning it off and off again?" was to purge these folders.

Getting thrown into the deep end? No problem, in fact Dan will make updating the aging setup document as his first act. He updated the setup instructions and added the rationale for installing these dependencies from perusing the documentation.

The company uses RVM, but you just need a Ruby version manager because we run multiple versions.

Unfortunately the dreaded red box popped up when he clicked save, Dan realizes he did not have write permission.

"Argh, why did this silly wiki let me edit the article if I don't have write access? 🙄", he mused, acknowledging his classic product engineer snark.

The problem became real when he reached tried to pull repositories. He had access to the Enterprise GitHub instance but the repository list was blank.

"There was nothing left to do, 💡 I can look into the Jira ticket and start to learn more about the business.", the thought sharply cut off as he saw the 404 from clicking on the Jira link.

"Oh silly Ja- no, this must just be another permissions issue. I don't think an engineer will send me a Jira ticket that is actually a 404"

Thankfully Jacob appeared at this point to check in. Jacob had a look of genuine embarrassment as Dan listed the issues he faced. Dan felt mature for not trying to show off how he coasted over the problem of having a dirty machine.

"Look, I have to jump into a few other meetings in 10 minutes. How about I airdrop some of our apps, you can at least go about bundling them. Contact DevOps for the GitHub issue and TechOps for the Jira and Confluence issues. Let me paste you the ticket text right before I leave. I am so sorry about the setup, we definitely dropped the ball", as Jacob left for his next meeting.

The ticket read:

Fix lazy image issue caused by jQuery event delegation.

Image issue is a little vague, but so far so good, there's more:

The problem started from BS-134. Please read that card for context

🤦‍ Derp! Ok getting access is still the highest priority. Dan fired off them emails and continued the task of getting apps to work.

Dan got everything to work, but ran out of moves as he could not find documentation about how to seed data to pass by the login screens of his newly fired up Rails apps.

At this moment, partial text from an OS notification caught his immediate attention:

Welcome to our new ...

It was a very warm email from the CEO to the entire organization to welcome the July newcomers. Well, of course it probably wasn't written by the CEO but still a nice gesture. A vain thought struck Dan.

"Oh no, I didn't submit a photo? They must have used my GitHub avatar, that is such a bad photo, as he scrolled down the email.

"Compliance associates...  scroll scroll"
"New analysts... interesting, scroll"
"Summer interns... mmm data science heavy, scrolls..."
"The end... "

Dan felt a pure sense of disappointment like the uncontrolled descent of a rollercoaster before it plateaued with a higher rationalization kicking in.

"Well that makes sense, Business directly reports to the CEO, Engineering reports to the CTO. They probably don't know that I've joined. I'm not part of the class. Also, it probably doesn't make sense for the CTO to send an email to welcome one person? Awkward for me too", as Dan takes a deep breath that ended with a subconscious sigh.

Dan was really out of things to do at this point. He didn't want to be seen reading Arstechnica or Hackernews for the whole day on his first day. He looked around and caught the eye of a developer he was previously introduced.

"Hey new guy, I heard from the grapevine you are a Webpack maestro."

"Nobody knows Webpack, as the saying goes, but I'm happy to help.", Dan replied, wanting to sound humble but competent enough to help.

Perfect timing, this was what Dan needed. He knew debugging a  Webpack config would take up the rest of the day 😛.

It wasn't his first rodeo, there are always hiccups like this on the first day. It didn't feel bad, but this one just felt particularly mediocre, like the resignation of a 3-star Amazon product review.

Six months later, Dan got a call.

"Hey Dan, it's Jane. You in office? There's a new guy at the door but the buddy forgot, he's remote today. Can you fill in?"


Dan is not a real life retelling (I hope) but neither is he pure fiction. This is the amalgamation of the worst case scenarios of my own experiences and close observation of others.

If you have come this far, this story must have rekindled a visceral experience, either some parts Dan or Jacob. If you're in Leadership, I am very happy that you read this.

I just want to raise awareness about the importance of an engineer's first day experience. Though hiccups like these usually get resolved, but it reflects on the company's commitment to doing the best they can.

The initial disappointment fades away but turns permanent scar tissue when engineers observe the same problems persisting when it's their turn to onboard others.

If you're a buddy for a new joiner, your attitude towards the relationship might be much more formative than any other person's in the company.

P.S. If you think Dan's inner thoughts are too nice to be real, just replace all the silly with fucking. :)