Jan 2018 Learning

Books Read (work or professional development-related):


update: how can I be more assertive at work?

  1. “Reframe who had the power in these situations. I don’t need to network with these people, I don’t need these people to recommend me for other jobs because I do not want to work with them again. In a way, by being so upfront about their sexism they were giving me the gift of letting me know immediately not to waste my time, and the people who would be missing out on work is them, because I would never recommend them for jobs in the future and would actively discourage hiring them if I was able. Any short term jobs I miss out on now, are well worth it to form a network of people that are actually respectful that I want to keep working with.”
  2. “Give up on ever having that perfect retort that would wither them to their bones, or beautiful speech that would change their life. Instead, I wrote out some very simple, one line, adjustable scripts for every situation I’d come across.”
    1. ”You don’t need to tell me this, it’s making me uncomfortable.” + Silence. If they apologize, say you appreciate it and walk away
  3. Embrace awkward silence if you don’t want to make scene and just say your one line script. “Let me be uncomfortable without anyone ever being able to say I was being unprofessional.”

Blameless PostMortems and a Just Culture

  1. ‘Having a Just Culture means that you’re making effort to balance safety and It means that by investigating mistakes in a way that focuses on the situational aspects of a failure’s mechanism and the decision-making process of individuals proximate to the failure, an organization can come out safer than it would normally be if it had simply punished the actors involved as a remediation.’
  2. The cycle of name/blame/shame ends up with cover-your-ass engineering in which “Management becomes less aware and informed on how work is being performed day to day, and engineers become less educated on lurking or latent conditions for failure due to silence.”
  3. Understand how failures happened to that they can be learned from and to temper reactions to failure

How to Build a Successful Team

  1. “I hire the best people and get out of their way” is a nice line, but leaders need to play a hands-on role in making sure the group works well together and stays on the right priorities.
  2. Have a few simple priorities
  3. Simple shared scoreboards that affiliate all the tribes of the team so people aren’t arguing about keeping score. When you make statements in difficult conversations, “don’t make statements that include assumptions about the motivations behind someone’s behavior” and focus only on your feelings, reactions, and observations – you don’t really know what’s going on and being accusatory without evidence can derail progress.

SMART criteria Wiki

  • Specific – target an area for specific improvement. Or strategic and specific
  • Measureable – quantify or at least suggest an indicator of progress. Or motivating
  • Assignable – specify who will do it. Or achievable
  • Realistic – given available resources. Or reasonable, resourced, relevant
  • Timebound – specify when results can be achieved. Or testable, time limited, trackable

Start-up Metric for Pirates: AARRR! and Slides

  • Acquisition – users who come to site
    • Visit Site, Landing Page, Doesn’t Abandoned (stays 10+, visits 2+ pages)
    • Comes in via, SEO, SEM, PR, Blogs, etc. other marketing channels
  • Activation – users enjoy 1st visit
    • Views x pages, does z clicks, Signs up for E-mail/Acct/Widget
    • A/B tests critical here
  • Retention – users who come back
    • E-mails Opens/RSS Clickthroughs
    • Weekly e-mails, event-based e-mails, blogs
  • Referral – users who enjoy product enough to refer to others
    • Refers users who visit site, refers users who activate site
    • Campaigns, contests, e-mails
  • Revenue – users conduct some monetization behavior
    • Users generate minimum revenue
    • Users generate break-even revenue
  • Subs, Lead Gen, etc.

Measuring What Matters: How to Pick a Good Metric

  1. Good metrics are comparative, understandable, a ratio or a rate, and changes the way you actually behave
  2. To start something, you need qualitative input from talking to people because quantitative data can be misinterpreted
  3. Look beyond Reporting Metrics and find Exploratory metrics. Look beyond lagging metrics (that have happened in the past) and look for Leading metrics that might have insight into the future – eg. rising complaints

Continuous Integration

  1. Continuous integration is software dev process where work is integrated frequently, multiple times a day, and automated builds detect integration errors as soon as possible and allows software to be developed quickly and cohesively with reduced risk
  2. Requires a maintain a single source repo with a decent source code management system
  3. Everything should be included in automated builds and have multiple environments to run tests

A day in the Life of Joe Leech, Product Consultant

  1. There’s not a single solution or framework that’s a magic bullet to solve clients’ problems. Product management should be relationship people first and build glue across organizations to do so
  2. “Startups are good at speed, big companies are good at making good decisions,” and startups and enterprise have a lot to learn from each other, he believes. Startups are lean and for them fast actions are crucial, but their people often lack the knowledge or skill to make the right decisions, he believes. “Startup founders are especially hard to work with because the company is their baby. They hate formal processes because it gets on the way of getting going.”
  3. Prioritization as PIE (potential, importance, ease)

pm@olin: Presentations (Class 9)

  1. Tell them what you’re going to say, tell, them, and tell them what you said
  2. PRES framework: Present, Reaching Out, Expressive, and Self Knowing
  3. Relatable, to audience good content, humor, and leave audience wondering for more

How to Hire the Right Person

  1. Take them on a tour and see how they respect and if they treat everyone they meet with respect. Same with taking people out for a meal
  2. Ask unusual questions so you reveal more about a person -> not brain teasers. Find natural strengths
  3. Get them to ask questions and see if they’ve done their research, care about goals and culture

The Secret to Becoming a Better Data Visualization Practitioner

  1. Be able to express all intentions behind design decisions, including citing best practices or evidence from research to show you are using logic over feelings
  2. Document unconscious choices – write down all the micro-decisions that lead you to your current state
  3. Visualize differences in decisions, be ready and practiced in whiteboarding before and after decisions

Treehouse Learning

AJAX Basics Treehouse

  • AJAX form request example and responding to a submit event
    • Select form
    • Add JQuery submit method
    • Stop form from submitting
    • Retrieve value user inputted with JQuery’s val method

$(document).ready(function() {

$(‘form’).submit(function (event) {

event.preventDefault(); // stops browsers normal reaction to event, eg prevent from leaving page in this case

var $searchField = $(‘#search’);

var $submitButton = $(‘#submit’);

$searchField.prop(“disabled”, true); // disable search field so you can’t type new text

$submitButton.attr(“disabled”, true).val(“searching…”); // as request is happenign, user gets message search is underway

// the AJAX part

var flickerAPI = “http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?”;

var animal = $searchField.val(); // capturing text user types in the field

var flickrOptions = {

tags: animal,

format: “json”


function displayPhotos(data) {

var photoHTML = ‘<ul>’;

$.each(data.items,function(i,photo) {

photoHTML += ‘<li class=”grid-25 tablet-grid-50″>’;

photoHTML += ‘<a href=”‘ + photo.link + ‘” class=”image”>’;

photoHTML += ‘<img src=”‘ + photo.media.m + ‘”></a></li>’;

}); // end each

photoHTML += ‘</ul>’;


$searchField.prop(“disabled”, false); // renable search field

$submitButton.attr(“disabled”, false).val(“Search”); // renable submit button and put value back


$.getJSON(flickerAPI, flickrOptions, displayPhotos);

}); // end click

}); // end ready

Understanding “this” in JavaScript

  • this is a special keyword to give access to a specific context – access values, methods, and other objects on a context basis
  • JavaScript interpreter assigns a value to this based on where it appears
    • In normal function calls
    • Within methods on object
      • This, when it’s being called by a method on an object, will always reference object itself and this.anyKey will look up any value that exists

var Portland = {

bridges: 12,

airport: 1,

soccerTeams: 1,

logNumberofBridges: function() {

console.log(“There are “ + this.bridges + “ bridges in Portland!”)



Would print There are 12 bridges in Portland!

  • Within an object that has been constructed
  • Invoked with .call. apply or bind
  • When we use a constructor function to create a new object, this will actually refer to the object that is created, nto the constructor function.
  • here’s a basic constructor function

var City = function(name, state) {

this,name = name || ‘Portland’;

this.state = state || ‘Oregon’;


portland = new City();  // new instance of constructor function

seattle = new City(‘Seattle’, ‘Washington’);


results in -> console.log(portland); console.log(seattle);


{ name: ‘Portland’, state: ‘Oregon’}

{ name: ‘Seattle’, state: ‘Washington’}

  • The first object is the one created without any parameters, so it defaults to Portland and Oregon.
  • The second one uses Seattle and Washington
  • They keyword does not correspond to the constructor function (city) but corresponds to the instance object itself. This basically allows you to create applications with highly replicable code