Apr-June 2018 Learning

Books Read (related to work/professional development/betterment):

Articles:

Giving meaning to 100 billion analytics events a day

  1. Tracking events were sent by browser over HTTP to a dedicated component and enqueues them in a Kafka topic. You can build a Kafka equivalent in BigQuery to use as Data Warehouse system
  2. ‘When dealing with tracking events, the first problem you face is the fact that you have to process them unordered, with unknown delays.
    1. The difference between the time the event actually occurred (event time) and the time the event is observed by the system (processing time) ranges from the millisecond up to several hours.’
  3. The key for them was finding ideal batch duration

What is a Predicate Pushdown?

  1. Basic idea is certain parts of SQL queries (the predicates) can be “pushed” to where the data lives and reduces query/processing time by filtering out data earlier rather than later. This allows you to optimize your query by doing things like filtering data before it is transferred over a network, loading into memory, skipping reading entire files or chunks of files.
  2. ‘A “predicate” (in mathematics and functional programming) is a function that returns a boolean (true or false). In SQL queries predicates are usually encountered in the WHEREclause and are used to filter data.’
  3. Predicate pushdowns filters differently in various query environments, eg Hive, Parquet/ORC files, Spark, Redshift Spectrum, etc.

I hate MVPs. So do your customers. Make it SLC instead.

  1. Customers hate MVPS, too M and almost never V – simple, complete, and lovable is the way to go
  2. The success loop of a product “is a function of love, not features”
  3. “An MVP that never gets additional investment is just a bad product. An SLC that never gets additional investment is a good, if modest product.”

Documenting for Success

  1. Keeping User Stories Lean and Precise with:
    1. User Story Objectives
    2. Use Case Description
    3. User Interaction and Wireframing
    4. Validations
    5. Communication Scenarios
    6. Analytics
  2. Challenges
    1. Lack of participation
    2. Documentation can go sour
  3. Solutions
    1. Culture – tradition of open feedback
    2. Stay in Touch with teams for updates
    3. Documentation review and feedback prior to sprint starts
    4. Track your documents

WTF is Strategy

  1. Strategic teaming is what sets apart seniors from juniors
  2. Strategy needs
    1. Mission: Problem you’re trying to solve and who for
    2. Vision: Idealized solution
    3. Strategy: principles and decisions informed by reality and caveated with assumptions that you commit to ahead of dev to ensure likelihood of success in achieving your vision
    4. Roadmap: Concreate steps
    5. Execution: Day-today activities
  3. “Strategy represents the set of guiding principles for your roadmapping and execution tasks to ensure they align with your mission and vision.”

Corporate Culture in Internet Time

  1. “”The dirty little secret of the Internet boom,” says Christopher Meyer, who is the author of “Relentless Growth,” the 1997 management-based-on-Silicon-Valley-principles book, “is that neither startup wizards nor the venture capitalists who fund them know very much about managing in the trenches.”
  2. “ The most critical factor in building a culture is the behavior of corporate leaders, who set examples for everyone else (by what they do, not what they say). From this perspective, the core problem faced by most e-commerce companies is not a lack of culture; it’s too much culture. They already have two significant cultures at play – one of hype and one of craft.”
  3. Leaders need to understand both craft and hype cultures since they have to rely on teams that come from both to deliver. They need to set-up team cultures and infrastructure that supports inter-team learning.

Do You Want to Be Known For Your Writing, or For Your Swift Email Responses? Or How the Patriarchy has fucked up your priorities

  1. Women are conditioned to keep proving themselves – our value is contingent on ability to meet expectation of others or we will be discredited. This is often true, but do you want to a reliable source of work or answering e-mails?
  2. Stop trying to get an A+ in everything, it’s a handicap in making good work. “Again, this speaks most specifically to women, POC, queers, and other “marginalized” folks. I am going to repeat myself, but this shit bears repeating. Patriarchy (and institutional bigotry) conditions us to operate as if we are constantly working at a deficit. In some ways, this is true. You have to work twice as hard to get half the credit. I have spent most of my life trying to be perfect. The best student. The best dishwasher. The best waitress. The best babysitter. The best dominatrix. The best heroin addict. The best professor. I wanted to be good, as if by being good I might prove that I deserved more than the ephemeral esteem of sexist asshats.”

Listen to me: Being good is a terrible handicap to making good work. Stop it right now. Just pick a few secondary categories, like good friend, or good at karaoke. Be careful, however of categories that take into account the wants and needs of other humans. I find opportunities to prove myself alluring. I spent a long time trying to maintain relationships with people who wanted more than I was capable of giving

  1. Stop thinking no as just no but saying yes to doing your best work

Dear Product Roadmap, I’m Breaking Up with You

  1. A major challenge is setting up roadmap priorities without real market feedback, especially in enterprise software
  2. Roadmaps should be planned with assets in place tied closely to business strategy
    1. A clearly defined problem and solution
    2. Understanding of your users’ needs
    3. User Journeys for the current experience
    4. Vision -> Business Goals -> User Goals -> Product Goals -> Prioritize -> Roadmap
  3. Prioritization should be done through the following lens: feasibility, desirability, and viability

The 7 Steps of Machine Learning Google Video

  • Models are created via training
  • Training helps create accurate models that answers questions correctly most of the time
  • This require data to train on
    • Defined features for telling apart beer and wine could be color and alcohol percentage
  • Gathering data, quality and quantity determine how good model can be
  • Put data together and randomize so order doesn’t affect how that determines what is a drink for example
  • Visualize and analyze during data prep if there’s a imbalance in data in the model
  • Data needs to be split, most for (70-80%) and some left for evaluation to test accuracy (20-30%)
  • A big choice is choosing a model – eg some are better for images versus numerical -> in the beer or wine example is only two features to weigh
  • Weights matrix (m for linear)
  • Biases metric (b for linear)
  • Start with random values to test – creates iterations and cycles of training steps and line moves to split wine v beer where you can evaluate the data
  • Parameter tuning: How many times we through the set -> does that lead to more accuracies, eg learning rate how far we are able to shift each line in each step – hyperparameters are experimental process bit more art than science
  • 7 Steps: Gathering Data -> Preparing Data -> Choosing a Model -> Training -> Evaluation -> Hyperparameter Tuning -> Prediction

Qwik Start Baseline Infra Quest: 

  • Cloud Storage Google Consolae
  • Cloud IAM
  • Kubernetes Engine

Treehouse Learning:  

Javascript OPP

  • In JavaScript, state are represented by objects properties and behaviors are represented by object methods.
    • Radio that has properties like station and volume and methods like turning off or changing a station
  • An object’s states are represented by “property” and its behaviors are presented by “method.”
  • Putting properties and methods into a package and attaching it to a variable is called encapsulation.

Intro SQL Window Functions

  • Function available in some variations of SQL that lets you analyze a row in context of entire result set – compare one row to other rows in a query, eg percent of total or moving average

Common Table Expressions using WITH

  • CTE – a SQL query that you name and reuse within a longer query, a temporary result set
  • You place a CTE at the beginning of a complete query using a simple context
--- create CTES using the WITH statement
WTH cte_name AS (
  --- select query goes here
)

--- use CTEs like a table
SELECT * FROM cte_name
  • CTE name is like an alias for the results returned by the query, you can then use the name just like a table name in the queries that follow the CTE
WITH product_details AS (
  SELECT ProductName, CategoryName, UnitPrice, UnitsInStock
  FROM Products
  JOIN Categories ON PRODUCTS.CategoryID = Categories.ID
  WHERE Products.Discontinued = 0
)

SELECT * FROM product_details
ORDER BY CategoryName, ProductName
SELECT CategoryName, COUNT(*) AS unique_product_count, 
SUM(UnitsInStock) AS stock_count
FROM product_details
GROUP BY CategoryName
ORDER BY unique_product_count
  • CTE makes code more readable, organizes queries into reusable modules, you can combine multiple CTEs into a single query, it can better match of how we think of results set in the real world
    • all orders in past month-> all active customers -> all products and categories
    • Each would be a CTE
  • Subqueries create result sets that look just like a table that can be joined to another tables
WITH all_orders AS (
  SELECT EmployeeID, Count(*) AS order_count
  FROM Orders
  GROUP BY EmployeeID
),
late_orders AS (
    SELECT EmployeeID, COUNT(*) AS order_count
    FROM Orders
    WHERE RequiredDate <= ShippedDate
    GROUP BY EmployeeID
)
SELECT Employees.ID, LastName,
all_orders.order_count AS total_order_count,
late_orders.order_count AS late_order_count
FROM Employees
JOIN all_orders ON Employees.ID = all_orders.EmployeeID
JOIN late_orders ON Employees.ID = late_orders.EmployeeID
  • Remember one useful feature of CTES is you can reference them later in other CTEs, eg. revenue_by_employee below pulling from all_sales
  • You can only reference a CTE created earlier in the query, eg first CTE can’t reference the third
WITH
all_sales AS (
  SELECT Orders.Id AS OrderId, Orders.EmployeeId,
  SUM(OrderDetails.UnitPrice * OrderDetails.Quantity) AS invoice_total
  FROM Orders
  JOIN OrderDetails ON Orders.id = OrderDetails.OrderId
  GROUP BY Orders.Id
),
revenue_by_employee AS (
  SELECT EmployeeId, SUM(invoice_total) AS total_revenue
  FROM all_sales
  GROUP BY EmployeeID
),
sales_by_employee AS (
  SELECT EmployeeID, COUNT(*) AS sales_count
  FROM all_sales
  GROUP BY EmployeeID
)
SELECT revenue_by_employee.EmployeeId,
Employees.LastName,
revenue_by_employee.total_revenue,
sales_by_employee.sales_count,
revenue_by_employee.total_revenue/sales_by_employee.sales_count AS avg_revenue_per_sale
FROM revenue_by_employee
JOIN sales_by_employee ON revenue_by_employee.EmployeeID = sales_by_employee.EmployeeID
JOIN Employees ON revenue_by_employee.EmployeeID = Employees.Id
ORDER BY total_revenue DESC
Advertisements

March 2018 Learning

Less than normal last month due to business travel

Books Read (related to work/professional development/betterment):

Articles:

Agile Died While You Were Doing Your Standup

  1. Agile has been implemented poorly to enterprise wholesale by consultancies that mechanizes and dehumanizes teams and doesn’t respect the craft – causing them to deliver outputs instead of outcomes that drive values for customers
  2. The problem Product management, UX, engineer, dev-ops, and other core competencies need to be one team under one leader and give it autonomy and accountability to connect solving problems. If implemented correctly – it empowers teams to work toward shared outcomes with both velocity and accuracy.
  3. Embrace discovery – discovery data matched along shipped experiences creates real customer value and trust that teams can work autnomously with accountability and shipping something that meets both company and user objectives.

 

Avoiding the Unintended Consequences of Casual Feedback

  • Your seniority casts a shadow or the org, your casual feedback may be interpreted as a mandate – make sure it’s clear whether its opinion, strong suggestion, or mandate
    1. Opinion: “one person’s opinion” your title and authority should to enter into the equation
    2. Strong suggestion: falls short of telling team what to do – senior executive draws on experience but provides team to feel empowered to take risks. This is the difficult balance to strike and requires taming of egos to do what’s best – you also have to trust the people you’ve empowered to have the final say.
    3. Mandate: issue to avoid prohibitively costly mistakes – but too often without right justification signals a demotivating lack of trust

 

Ask Women in Product: What are the Top 3 things you look for when hiring a PM?

  1. Influence without authority – figuring out what makes you tick, your team, your customers. Read in between lines. How did you deal with past conflicts
  2. Intellectual curiosity- how did you deal with ambiguous problem or were intimidated
  3. Product sense – name compelling product experience you built
  4. Empathy – unmet needs and pain points – how would you design an alarm clock for the blind
  5. Product intuition – access product, feature, or user flow
  6. Listening and communication skills – read rooms for implicit and explicit

 

Why Isn’t Agile Working?

  1. Waiting time isn’t addressed properly
  2. Doesn’t account well for unplanned work, multitasking, and impacts from shared services
  3. Even though dev goes faster in agile, it has no bearing on making the right product decisions and working to realize benefits. Agile is useful when it services as a catalyst for continuous improvement and the rest of the org structure is in line – eg. DevOps, right management culture, incremental funding v project-based funding, doing less and doing work that matters, looking at shared services, mapping value streams, etc.

 

Treehouse Learning:  

Changing object literal in dice rolling application into constructor function that takes in the number of sites as an argument. Each instance created calls the method for running the base.

function Dice(sides) {

            this.sides = sides;
            this.roll = function() {

                        var randomNumber = Math.floor(Math.random() * this.sides) +1;
                        return randomNumber;

            }

}

var dice= new Dice(6) // new instance of 8 sided die

 

Watch out for applications running code again and again unnecessarily, like in code above. The JavasScript property prototype is like an object literal that can be added to roll property, when we assign a function to it, it becomes a method and is no longer needed in the constructor function. Prototypes can be used as templates for objects, meaning values and behavior can be shared between instances of objects.

Dice.prototype.roll = function diceRoll() {

            var randomNumber = Math.floor(Math.random() * this.sides) +1;
            return randomNumber;

} // shared between all instances in template/prototype


function Dice(sides) {

            this.sides = sides;

}

 

 

 

Dec 2017 Learning

Less reading and off-time Treehouse learning this month. Want to timebox at least 10-15 minutes a day for these.

Treehouse AJAX Basics:

  • Make sure classes correspond with html
  • Use removeClass() say after something, like a button, is selected so not all the buttons are selected for example
  • Passing data to set-up API example:
$(document).ready(function(){

  $('button').click(function () {

    $("button").removeClass("selected");

    $(this).addClass("selected");

    var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?"; // adding JSON callback to query string

    var animal = $(this).text(); // this refers to button and text() gets text from html element

    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>';

      });// loop through the array applying the callbackfunction

      photoHTML += '</ul>';

      $('#photos').html(photoHTML);

    }

    $.getJSON(flickerAPI, flickrOptions, displayPhotos); // three arguemnts, URL to resource, data we want to send with URL, callback function

  }); // function will run each time button is clicked

});

Treehouse UX Basics Tools UX-ers Use

  • Card Sorting: all different pieces of content on card and ask users to group the cards. Optimal Sort or Remote Search can be used to do remote.
  • Search Logs: understand what users are looking for
  • Content Inventories: Excel, etc. so there’s one way to look at all it
  • Beyond Philosophy defines UX as “an interaction between an organization and a customer as perceived through a customer’s conscious and subconscious mind. It is a blend of an organization’s rational performance, the sense stimulated, and the emotions evoked and intuitively measured against customer expectations across all moments of contact.”
  • Customer or User Journeys – Mapping out phases of customer’s journey and touchpoints. Identify opportunities, etc. through this process
  • Flow Diagrams: Steps user take
  • Wireframes: Diagrams or blueprints to show information relationships on pages and views
  • Comps: Showing details of specific moment of context. Think wireframes + aesthic
  • Prototypes: Show working relationships, aesthetic, and interactivity
  • Usability Testing
    • Moderating means there’s a facilitator asking questions and assigning questions
    • Unmoderated: puts together tasks while users go on their own

Treehouse UX Basics: Strategic UX

  • UX as a strategic initiative: see it at organizational or strategic level rather than immediate goals for users and see how important a task is to overall company, eg. how does getting auto quotes impact overall org’s bottom line?
  • UXers and non-UXers alike don’t agree on how to define UX
  • Your value is partnering with business and technology to emphasize with users and creates better experience and better user loyalty that brings more to bottom line
  • Selling UX means 1) Understanding what your business and technology partners value 2) Describe to them how UX meets those values in tailored responses to them by finding root causes, eg. what are the roots of wanting conversion rates. Don’t explain hows of UX but the Whys so you’re not an expense but a necessity

How to Build an Engineering Culture that Focuses on Impact

  1. Share with the engineers the value they’re creating, even if it’s “grungy but critical tasks” to let them know they’re being valued at the company
  2. Daniel Pink argues motivation comes from three key elements: autonomy, mastery, and purpose
  3. “Shape your culture through conversations and stories,” simply writing values doesn’t really mean anything

13 tips for product leaders on distributed teams

  1. Have an insider on your leadership team that can bridge cultural gaps and understand context of both languages and cultures and can mentor colleagues on both sides when it comes to improving communication
  2. Geographic gaps can multiply specialization gaps, eg business versus R&D that is compounded with distance and cultural differences
  3. If your engineers and business people look down on each other it’s your fault, create transparency and appreciation: “It might seem irrelevant to show your messaging and positioning documents to engineering or to show complex technology architecture to your sales people, but trust me, people learn to appreciate the challenges of the different roles when you surface the complexity. Animosity among colleagues usually stems from a general lack of understanding. Let members of each team shine and teams will show each other more support and respect.”

Three questions to ask yourself, before speaking to your users

  1. “What do you need to learn?”
    1. The big picture questions: who are customers, what’s their biggest problem, what do they want?
  2. “What do we need to learn right now to make progress?”
    1. Outcome of research that immediate action can be taken on
  3. “What’s the best way to learn?”
    1. Focus on doing minimum effort or method (interview versus user test) to learn

pm@olin Metrics (Class 8)

Continuous Improvement

  • PMs can create detailed factual timeline for post mortems – everyone should add what’s missing and note patterns as well as things done well and things that can improve on next time

2017 List of Wins + 2018 Look Ahead

I thought I was going to have a low-key NYE alone, but ended up going out. I still read this before, and thought it’d be good to put down a list of #wins and just things I’m thankful for this year and looking ahead for 2018.

Wins:

  1. New role at work and working on an interesting project with a team. Felt like my career moved ahead a lot after feeling a bit stalled.
  2. I read 45 books last year, most captured here on Goodreads 
  3. I lose 11 lbs without really grinding hard, just more positive lifestyle choices
  4. Saved nearly 25% of my income
  5. Figured out who and what to prioritize in my life

For Next Year:

  1. Improve on my process at work as well as attitude and results. At my current workplace, I think we have an opportunity to build a good culture – so I hope that’s something I can help do.
  2. Read more fiction this year and still definitely read 30 books as a goal
  3. Continue to go on this healthier lifestyle path (incorporating yoga into my weekly workout routine, and eating more vegetarian meals namely)
  4. Save 30% of income
  5. Actualize some travel and academic goals

Oct Learning

Just my “three key points” notes from various reading I thought was work helpful this month:

PSFK Advertising Playbook Overview

  1. Experiential marketing now is the most critical tool
  2. Shift from ads to customer relationships and decline of online ads
  3. Emotional connections realign brands -> engineered enjoyment, contextual calibration, and third space communities are opportunities

 

Knowns vs Unknowns — Are you building a successful company or just typing?

  1. First known unknown is that you envision a product that solves a problem that a small group of users have
  2. Engineer’s primary job isn’t really writing code per se, but improving product for you users
  3. “What I often hear from CEOs is that “my CTO thinks we need to rebuild the backend so it’s scaleable.” The reality is that if you haven’t yet solved for the product’s scaleable and repeatable growth, you don’t know what the backend needs to be. If you’ve hired people that care more about the programming languages/frameworks and not the KPIs of your product, you’ll constantly have this internal battle. Remind them that writing software is the easy part. Building a company that scales isn’t.”

6 lessons learned about technical debts management in Silicon Valley

  1. Product always needs to be improved and have tech debts happening at once (80/20 rule)
  2. Top Down vision on the importance of these debts “It is not about the money you can make, it is about the money you won’t lose”
  3. Before you kill features, identify who are using it, find an alternative, and explain why you are killing a feature

IGNORE EVERYTHING BETWEEN THE CLOUDS AND DIRT

  • “This is because the vast majority of people tend to play the middle—they focus on the vague minutiae that doesn’t matter”
  • Two things happen when you’re too focused on the middle:
    • You’re only successful to a certain level and then hit a plateau
    • You get stuck in one of two extremes: you get stuck either because you become too romantic on ideals and neglect the skills you need to execute or you get tied up in minutiae or politics and lose sight of the bigger picture.

Unit Economics

  1. “Unit economics are the direct revenues and costs associated with a particular business model expressed on a per unit basis.” Eg Lifetime Value, Customer Acquisition Cost (CPA)
  2. What you want to do as a product manager is increase average rev per user (ARPU), increase customer lifetime, and drive expansion revenue from existing cusotmers
  3. Make sure you know what your most profitable segment is and what their composite is of the user base

pm@olin: Buildiing (Class 5)

  1. Understand your personal work and productivity style
  2. Understand the style of your team and tailor your project management to the team – being cognizant of your personal style
  3. Understand your software processes (eg. Waterfall or Agile) and bug triage

Offshore Development: Pluses and Minuses for Product Managers

  1. Hard part is to learn and understand the team and learn what makes them tick and how you can leverage all this and control for issues such as different work cultures and different accents over conference phones
  2. Get to know them and make sure they know you
  3. Keep them informed, establish routines (especially communicating with remote team lead and holding them accountable, hold all-team meetings semi-frequently), and leverage tools

How we develop great PM / Engineering relationships at Asana

  1. Semi-formalized way for sharing leadership and credit
  2. Remember mantra product owns the problems and engineering owns solutions
  3. ‘Clarify roles and reinforce them with mutual respect’

Run Towards Something, Not Away. Learning from Talks Summary: C-Suite Meet with Jacki Kelley, COO, Bloomberg Media

I went to the C-Suite Meet with Jacki Kelley, Chief Operating Officer, Bloomberg Media with She Runs months ago in May, but I’ve thought a lot about her advice and carried these notes in my bag and mentally for the last few months.

The biggest takeaway, “Run towards something and not away.”  

This year, I had the opportunity to buy a dream co-op in NYC and job opportunities that would have paid more than I am making now. I walked away from those because deep down I knew it wasn’t the right thing to do, remembering these words and with the encouragement of friends and mentors. It was really difficult, especially as a daughter of immigrants and as someone who never thought I’d have what I have now and these opportunities. Sometimes the opportunities are wrong. Listen to your gut.

Much better opportunities and life paths have presented themselves to me in the interim, and I’m so glad I did the hard thing to walk away.

This piece by public intellectual Ta-Nehisi Coates resonates me with a lot:

Some people come up expecting to win. We came up hoping not to lose. Even in victory, the distance between expectation and results is dizzying for both. The old code remains a part of you, and with it comes a particular strain of impostor syndrome. You have learned another language, but your accent betrays you. And there are times when you wonder if the real you is not here among the professionals, but out there in the streets.

Obviously, I have to caveat that the specific experience he writes about has clear differences from mine, I’m from a much more privileged context, but it expresses the disorientation of how I feel in my circumstances now as Manhattan professional versus what my life could have easily been had I taken a few wrong turns and people didn’t intervene at key points in my life. (And to all the Women of Color who might be out there reading this, yes I still feel like I don’t fit in these spaces everyday, and probably never will. I still do it for the culture though).

My mentor told me in my moments of self-doubt this year, “There’s better for you. And you deserve it.”

I think most of us at least moderately-successful professionals will come upon these inflection points, where you can feel like you need to check-off certain life boxes (degree, house, ring, kids) or are presented with opportunities that are good for the money, but don’t feel right. Most people chose to do what they think should do because of societal or cultural expectations, because it’s hard to walk away from that. I’ve done that before, taken jobs to just to get away from a current situation, and and almost did all that again this year, but I’m glad I held out for the better even though it’s caused considerable existential dread, Asian guilt, and feeling of being ungrateful, especially in these sour times we live in politically and economically.

Some other key points from the talk/handwriting clarification:

  • She also mentioned “Life is not a to do list. Smell the roses.” Cliché, but at this phase of my life and career, I’m no longer in my frenetic twenties grasping at opportunity, but rather settling into a life and career that’s a marathon and not a sprint, and to enjoy the journey.
    • Also be there for the stuff that matters and plan out personal and professional life in tandem. She specifically mentioned planning out having kids (this isn’t something that’s a make or break for me), but we have all different milestones and wants to not be neglected
  • Sponsors v Mentors: need to find both. Sponsors are those people who advocate for you in your company or industry. Coaches/Mentors are your sounding boards and give advice, etc
  • Build cultures and processes to remove obstacles and allow people to do their best work
  • Understand people’s desires in a company and try to align with your goals and that of the organization
  • Ask yourself, how have you invested in someone you believe in?
  • Pick Learning > Promotion
  • Find work you love with people you love to work with
  • Connecting data, communication, and media is the key to survival for agencies (I’m not as bullish on this one and the agency model as it is, but it’s an insight worth thinking about)