Saturday, January 27, 2018

Practicing Jobs to Be Done

I spoke to my friend for over 2 hours. I am applying the JTBD Framework to the content from the interview.

Goal : Looking for a developer position in a good company
This consists of the following jobs-to-be-done:
  • Prepare resume
  • Browse jobs
  • Apply for jobs
  • Respond to replies
  • Phone interview with recruiter
  • VP level call
  • Tech screening phone interview
  • Face to face interview
  • Negotiate offer
  • Review and accept offer
  • Go through background check
  • On boarding
Core Functional Job : Prepare resume

Define
  • Goal : To apply for jobs in cryptography
  • Plan resources: Find a resume reviewer to get feedback
  • Review current jobs in cryptography and examine the job descriptions
Locate
  • Gather the notes about the projects done in the most recent job
  • Find the current resume
Prepare
  • Find a place with no distractions
  • Express the accomplishments in the correct way in a text editor
Confirm
  • Current resume found. 
  • Notes about projects is available. 
  • Computer can open the current resume.
Execute
  • Update resume with objective, skills, projects and contact details
  • Format resume properly
Monitor
  • Is resume formatted correctly?
  • Does the objective make sense?
Modify 
  • Override auto spelling corrections for known terms
  • Run grammar and spelling checks
  • Correct grammar and spelling mistakes
Conclude 
  • Save the document
  • Convert it to word format if required
Next step is to fill out the market discovery template. This is my next task.


Wednesday, January 24, 2018

Onboarding a Developer

Onboarding Goals 

 Day 1

 They’ll have to commit something to the codebase. It can be updating out-of-date documentation or deploying a line to production.

Week 1

 They’ll start on bug fixes to learn the codebase and company standards under the guide of their mentor or lead engineers.

Month 1

 They are expected to have started on small to medium projects within the company, but still with code reviews from mentors and other engineers. They might be pair programming on these projects rather than solo.

Few Months

 They’ll be seen as fully-fledged engineers and working on main projects within the company, and ideally taking a lead on their own ideas and projects and bringing them through.

 “We find a depthwise first, breadthwise second approach is best -- let them get familiar with a certain part of the code, and gradually expand their domain of knowledge.”* — Robby Grossman, Director of Engineering @ Wistia 
 Every new engineer, whether a recent college grad or a new director, must go through an intensive six week program designed to immerse the new engineer into our code base and promote the types of habits that would allow us to scale up our organization. That program is called Engineering Bootcamp program.

 Six weeks of hands-on concrete problem solving and cross-team feature work with an experienced mentor are a perfect way to:

  •  Propagate the culture in a scalable way
  •  Get new hires to build connections across the organization
  •  Keep individual teams sharp and motivated to attract the best talent

 Mentor must work closely with new hire to clear away any roadblocks and make sure folks don't run into them in the future. This will empower the new hire to identify and resolve the major pain points of their future teammates.

 Google Inc. has a two-week program to familiarize new engineers with the company's technology, culture and people, complete with live and online courses.

That sets you up for success.

Best Onboarding Practices 

should include:

 1. Project Specific Knowledge - This should be very specific to what an individual is expected to do once he starts working.
 2. Domain Specific Knowledge - This is helpful to see bigger picture and significance of "what they will be doing.
 3. Process Specific - Enforcing the discipline around "how" part
 4. Organizational Culture / Policies
 5. Feedback - Mechanism to ask and incorporate feedback. (For training content, Trainers, Duration, Individual ratings for trainees etc).
 6. Help Channels - Share established and open communication channels to get help and ask questions.
 7. Bandwidth - Ensure capacity from other project individuals to train new team members.
 8. Objectives - Some projects might be very complex and "onboarding" needs to be a phased approach.

 Phase 1 - Training to resolve simple UI defects
 Phase 2 - Training to resolve medium complex functional defects
 Phase 3 - and so on.

 This will build a transition plan for an individual to become an expert in a project from a naive programmer.

 I also used new team members to "document" the areas which were not having any documentation or having less documentation. This certainly needed SME review but then where do SMEs have time to document by themselves? This at least ensures documentation is present as a first step that is reviewed by SME.



Saturday, January 20, 2018

Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)

Uninstall Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Install Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Tuesday, January 02, 2018

ERR_QUIC_PROTOCOL_ERROR

This happens in Chrome when you have not clicked on the I agree for the Wifi