John Aaron Nelson

The Lead Developer - London - 2019

June 11, 2019

Abstract

Clearbit’s use of formal feedback is a foundational aspect of the company, because our leadership recognizes that keeping our teams mentally healthy is critical to our success. We make sure we feel safe sharing and receiving feedback by insuring it’s objective, meaningful, and actionable. The benefits of feedback and discussion on how to perform the process were key parts of The Lead Dev. There were inspirational posters posted ubiquitously around the theatre, the keynote was about it, and it was sprinkled throughout many other talks.

Emotional safety is key to making sure the feedback loop is beneficial. We need to feel we have a sense of belonging, we’re working towards a goal, we have a sense of choice, things are fair, predictable, and we feel a sense of importance. Tuckman’s cycle is a cycle. It is something we must practice and continually perform, or things break down.

Another big theme of the conference was that we have to practice politics. We would like to think of ourselves as rational creatures who only make decisions based on facts and logic. Yet, we are primarily emotional creatures. We make decisions based on how we feel, so we have to tell the truth in such a way that the person listening can hear it. We have tell stories. We have to sell our story. Understanding feelings is key to storytelling. We must practice empathy for others, and ourselves, to tell a good and truthful story. Our stories are our truth.

Regularly, OKR’s were discussed: explained, panned, and praised. People talked about how they need to be on a team and organizational level, not an individual level. That they need to be aligned at all levels, but not cascading. Most often, they should be from the bottom, up. They need to be simple, precise, meaningful, and actionable. They are important as a guiding light, but shouldn’t be overly stressed as individuals and teams naturally pivot during cycles and the end goal can drift from the original intention. Quite often teams read their OKR’s at the end of a cycle and they seem foreign to where the team is.

In order to get the best out of people, good teamwork is key. We need to be able to cue off of others, almost at an instinctual level, to be in sync. Teams that are out of sync with one another do not function. Yet again, we find that we work best when we feel the best, when we think the least, when we can follow our goals at an emotional level instead of a rational one.

How do you get developers to write documentation? It may seem offensive, but we can learn a lot about how to treat others through dog training. Positive feedback, where the person being trained wants to perform well, is the best way to achieve lasting positive effects. We should have a clear “Goal -> Action -> Reward” process to train effectively. Have “Minimum Viable Goals” that can be achieved and rewarded. Don’t expect someone to do the entire thing the first time. Make sure every step towards the goal is easily achievable. Pick the reward that the learner wants. The learner should choose the reward, because they know what motivates them better than anyone else.

Don’t impute dark and fuzzy motivations. Simple rewards work best! We decide what to do on a moment by moment basis on what we find useful, rewarding, or mitigating problems in the moment; short term motivations are much more powerful than long term goals. Think clearly about everyone’s goals. Write it down. Make sure the goals are precise, actionable, testable, rewardable. Figure out rewards together to commit for the long term.

In order to get teams to work best together we need rituals, meetings, a social element, shared experiences, and real world scenarios. We are social, emotional creatures. We need to have a sense of belonging in a place and experience to be comfortable enough to learn what we need to learn. We work least well when scenarios are abstract and not realistic, because we can’t feel our way through to the answer. SCRUM rituals are a good way to achieve this rhythm and feedback cycle.

To be successful during a period of rapid growth: be clear on the goal, communicate openly, hire responsibly, and care for your people. To keep people productive, have a structure for your work environment, but allow people flexibility for when they wish to engage.

Hiring is hard. Diverse groups achieve the best results and we all seek diversity in the workplace, but how do we achieve it? A fully anonymous application process didn’t solve this. The biggest complaint from candidates was that they weren’t able to demonstrate their soft-skills. We need a human connection to feel we are being heard and understood. Diversity also means that we acknowledge not everyone has the time to do lengthy at-home exercises. Many people have family or medical reasons for why they don’t have expendable free-time. We need to be genuine about our drive for diversity. Virtue signaling is gross.

To achieve diversity, we cannot exclude. We need to listen and accept people where they are. Diversity is being invited to the party. Inclusion is feeling like you belong at the party. Sometimes the best candidate for the role isn’t the best person to hire. We need to setup our candidates for success.

A fully remote, volunteer based team could be the answer to a dysfunctional team dynamic. Being “on call” is a great example of this. On-call can be really stressful because of the nature of the problem. Because of our emotions, we want to protect ourselves and can do things that are ultimately harmful. To neutralize the threat, we need to have processes and documentation in place to empower the individual. Sometimes this may also mean removing some warnings or alerts. Nothing can replace a person who can answer your questions. This can be done remotely, through Slack, but there should be someone available. We need to understand our customers, but optimize for our employees.

At the end of day one, I learned that politics shouldn’t be a dirty word. Politics is “Making friends and telling stories”. We need to constantly negotiate cooperate with everyone so everyone can get what they want. Good managers protect their people by shielding them from a lot of the negative aspects of this cooperation, but it doesn’t mean they should be a “shit umbrella”, they should be a “head shield”.

Everyone at the conference wants to be a good leader. But, what is “Leadership”? Leadership is the ability to lead. It is the act of leading a group of people. Leadership is an action, not a state of being. Anyone can be a leader. All it takes is a single action to practice leadership. Leadership can be both informal, through actions, or formal, through position and titles. We start off as a maker. To be a leader, we need to be a multiplier.

There (should) be a trident path for improvement: Technical Leader, Individual Contributor, People Management. A technical leader spends 75% of their time focused solely on technical issues that affect multiple people. There are four different flavors of technical leadership: Knowledge Cultivator, The Advocate, The Connector, and The Storyteller.

Security (like passwords, not feelings) is important for long term success. We should foster a culture of security, and still practice empathy when people fall short. Culture is key to this, so maybe have security ambassadors that move between teams to encourage good security practices. Also, Shor’s Algorithm means that none of our current communications will be secure forever. Quantum decryption is coming in the not too distant future, and all of our bits are being stored somewhere, so nothing is ever totally secure, so practice empathy.

Estimates are hard. There are five things we can do to improve our estimates.

  1. Make and keep the commitments you can. Give quality demos
  2. Be transparent for why we missed our estimation.
  3. Don’t overdo things. Have a product mindset. This is a business, not play.
  4. Show empathy. Every product has stakeholders, like the CEO.
  5. Educate them on the complexity of estimation. Use a semi-outlandish example.

Tuesday 11 June

Welcome - 09:30 - Meri Williams

Tue Jun 11 10:01:45 BST 2019 - It starts…

1400 attendees - New Zealand, Japan, Brazil More than half have been here before WiFi - leaddevuk - Lead Dev UK bit.ly/ld-slack

LeadDevLondon @TheLeadDev

All the videos wil be available in a couple weeks on Youtube

Navigating team friction - 10:10 - Lara Hogan

Tue Jun 11 10:16:25 BST 2019

Studies done in the UK show that Surgeons improve over time only at their “home” hospital. Their outcomes remain fairly flat over time at hospitals other than their home hospital.

Familiarity with the team and processes has more to do with how good they are at their job and how much they improve over time than the amount of time they’ve been a surgeon.

Teams are important!

One of the best things about our industry is working in a team and having them help you improve over time. It is a privilege to come together with a team to ship stuff

Tuckman’s 4 stages of group development

  1. Forming - Comes together in a new state. Team norms haven’t been ironed out
  2. Storming - Friction happens.
  3. Norming - Things iron themselves out. Individuals iron out differences
  4. Performing - Where Flow happens

Every time changes happen, a new cycle can re-start. This can happen with teams who have worked together for a long time.

Storming can be so frustrating, but it is the critical step.

Here are three things to keep in mind while storming

  1. Storming…

Brains are interesting things.

Out Prefrontal cortex is responsible for deep complex problem solving. We work in tech; we would like to think we are rational creatures, but we often are not.

Our Amygdala responds to threats and rewards. IF there are threats, we need to act fast to respond to the threat. Our amygdala tells the prefrontal cortex to shut down. Our Amygdala acts fast and shuts down the reasoning part of our brain.

Safety is core to making sure those threats ultimately turn into something positive.

There are 6 core needs to feel safe and comfortable at work - BICEPS

  1. Belonging - Community, connection. We don’t want to feel left out. It can be just as threatening as physical pain.
  2. Improvement or progress towards a goal. We need to feel like we’re contributing to the overall
  3. Choice. Flexibility, autonomy, decision making. Balance is important
  4. Equality or fairness. When things aren’t fair, we riot.
  5. Predictability. Balance here is important.
  6. Significance - We need status and recognition

Story time… “Desk moves” can be stressful and challenge all of these core needs Understanding core needs is a “superpower” Core need changes lead to Storming Feedback leads to norming

  1. Feedback - Feedback equation

  2. Observation of a behavior - Factual observation

  3. Impact of behavior - Share how you feel in a way that they care about. Talk to them about what they care about and help them learn how to achieve that. Help them impact their goals.

  4. Question ~or Request~ - Ask a genuine and curious open question about why they are doing that, don’t request a specific behavior.

Think about the preferred medium. Usually verbal, often textual. Let the person receiving the feedback choose their preferred method.

  1. Team Processes - leads to performing Iterate on the processes to make sure they’re working for everyone Retros are important! Normalizes talking about team health. When the hard stuff is met with understanding, it helps people feel acknowledged.
    Have a living document that states the expectations and processes of the team Team Charter Have a vision statement for the charter provides a “north star”

Engineering Manager - Tech Lead - Product Manager overlap of these three drives the “why”

Product Manager and Tech Lead scope and estimate product work

Take care of yourself if things don’t seem to be improving. You can’t solve unhealthy or unsafe environments.

Talk to someone you trust about what you’ve tried and need.

Ultimately, this is a cycle, not a one time thing. Iterate and improve!

“Resilient Management” by Lara Hogan

I can’t do that for you Dave: undefined is not a function - 10:40 - Asim Hussain

Tue Jun 11 10:46:26 BST 2019

Projects - @aijavascript / https://aijs.rocks

TheMojifier - convert a face to an emoji - How to calculate emotion… “The face api” provided by Microsoft

Tensorflow - find a picture from unsplash tensorflow.js import * as tf from tfjs… Train models Load pre-trained models “Computer vision” API provided by Microsoft - provides a human readable description of an image Halt and catch fire

Image2image draw an image and it completes it

We’re not too far off from having a description of an app and having it auto-generated.
It’s going to be more important to understand how to lead teams that create solutions… less important to write code

Engage teams to achieve high performance - 10:50 - José Caldeira

Tue Jun 11 10:57:12 BST 2019

5 steps to high performance Memorable goals Creativity through constraints Autonomy with principles Motivation by pitching Engagement through stories

  1. Goal - OKR/KPI/Whatevers - It’s important to have goals (sports psychology) Bold not reckless Crisp not fuzzy Impact not vanity Simple not complex

Have them be yes/no or straightforward objectives - easy to remember and keep in mind

  1. Constraints Embrace, don’t fight them Impose, don’t wait Mandatory, not optional

  2. Principles Options not restrictions Align don’t impose Focus not an obstacle Fast not slow

  3. Pitch - We need to sell everything to everyone all the time. Promote, promote, promote Energize don’t discourage Promote don’t wait Consistent not occasional

  4. Storytelling - Our brains work on stories Empathy not a report Path not the result Truth don’t lie

Bottoms up with OKRs - 11:00 - Whitney O’Banner - Braintree

Tue Jun 11 11:08:25 BST 2019 - Start

“Google got it wrong” - video “How Google sets goals: OKRs” Objectives and Key Results Set goals, Align teams, Track Quantify progress

We will (objective) as measured by (key result) example… We will improve accessibility as measured by 75% WCAG compliance

3 key strategies

  1. Skip individual OKRs Try tasks instead of individual OKRs… Get work done, not “objectives”

  2. Ignore the metrics. Ignore the numbers. Don’t set specific numbers… they’re made up. What we thought mattered, wasn’t what was being measured. SWAGs are specific but meaningless and arbitrary After iterating on the goals, you can set more specific metrics

  3. Avoid cascading goals “Having goals improves performance. Spending hours cascading goals up and down the company does not.” Stifles innovation because employees end up not valuing their own goals Managers far overvalue their ideas Employees undervalue their ideas

Take a bottoms up approach

Refreshments / Office hours - 11:15 - Lara Hogan, Whitney O’Banner, José Caldeira, Asim Hussain

The developer’s conundrum: what on earth does it mean to build AI software? - 11:55 - Ronald Ashri

Tue Jun 11 11:56:56 BST 2019

AI is a bubble, but the tools and techniques are here to stay.

  1. What is AI? - AI is a field of science that attempt to understand how intelligence works and validates the hypotheses by building models and validating them. Virtual assistants, automation, prediction, autonomous. Delegation of decision making to machines.

Agent-based engineering..SMART framework provides a set of abstract formal models to support the specification of individual agents.

An entity is anything that can be described by attributes An Object is an entity that has capabilities An Agent is an object that has goals A Goal is a desirable state of affairs in the environments A Motivation is a list of goals that describe a desirable state

A passive agent has a goal ascribed to it. It serves your goals An Active agent decides when to activate functionality A Proactive agent suggests a course of action or soling the problem An autonomous agent accepts motivations

Data-driven vs model driven AI AI needs something to base the decision off of. How to derive the model?

Design the model (Newtonian physics is a data driven model) Applications… Traffic control, train scheduling, robotics. Discover the model uses neural networks to derive a model from a set of data. Learn patterns of behavior

Always must validate the model

“Apply techniques to enable capabilities (decision making) in support of applications (achieving specific goals with self-direction and autonomy)

  1. How do we describe and build systems where decision making is delegated to machines? …?

Guiding self-organizing teams - 12:25 - Rebecca Hill

Tue Jun 11 12:26:40 BST 2019

Self-Organizing teams 3 parts

  1. Self governing
  2. Self forming
  3. Self organizing
  4. Manager Led

Trust the team - Start with a proven structure first, then iterate and change what’s not working You will fail - learn from the failures together ( “Use feature flags” was biggest learning ) People are unique, so are teams - provide feedback and challenge high performers You can’t do it all - Good leadership takes a lot of time - delegate what’s not working Be kind to yourself and others - take time to give praise and positive feedback Perfection doesn’t exist, and that’s okay

People come first. They take time. They are work it

12/10, Excellent doggo: the power of positive transformation - 12:35 - Heidi Waterhouse

(2nd) Best first day talk

Tue Jun 11 12:37:18 BST 2019

PIP! (start job searching now) Heelwork to music (video)… Cue the dog! How do I get developers to write docs?? Behavior: A team effort to meed a shared goal.

Training Theory Trainer rewards a behavior until the trainee does it spontaneously. Then agree on a cue. Traditional training.. Shame, fear, threats, reprimands, electric shocks (Aversives) Positive training.. Rewards, praise, excitement, teamwork, mutual care and goals Corporate training.. Money, hierarchy, assumed shared goals, webinars

What causes a behavior? Goals + Action + Feedback What is the atomic unit of a goal? Have clear goals, respect others’ goals

Achievable steps… minimum viable goal.. small steps

Rewards are what make positive training work - Learner chooses the reward Ask “What do you want?”

Successive approximation provide reward, but do it successively, in small increments… (dog running up wall) “The power of positive dog training” read the book…

Don’t impute dark and fuzzy motivations… Simple rewards! We decide what to do on a moment by moment basis on what we find useful, rewarding, or mitigating problems - Short term motivations are much more powerful

“Making work Visible” by Dominica Degrandis “Accelerate” by Nicole Forsgren

Scope - Delivery method - where to start - how much time - when are you done - how do I get it out Make Templates!!

Exercise: What rewards you? Explain it. Write it down. Give it to your manager.

Autonomy _ Mastery _ Purpose “Drive” book Daniel Pink

Ethical implications of rewards. Immediate, measured.

Think clearly about everyone’s goals. Write it down. Precise, actionable, testable, rewardable.
Figure out rewards together and commit for the long term.

The reality of testing in an artificial world - 14:15 - Angie Jones

Tue Jun 11 14:25:10 BST 2019

How do you test AI? Common sense and Statistics…

A team in ten minutes - 14:45 - Steve Williams

Tue Jun 11 14:54:36 BST 2019

Cynefin model by Dave Snowden

Diverse (skillsets) crew Rituals, meetings, social element, shared experiences, enable constraints Real world scenarios, create a list of organizational debt

Level Up: Developing Developers - 14:55 - Melinda Seckington

Tue Jun 11 15:06:02 BST 2019

Gamify development…

Provide a mentor, have goals, share the goals.
Give direct and timely feedback in relation to those goals. Self Reflection. Do retros Provide opportunities to learn new skills. Have “Clubs”, groups, and meetups Acknowledge people’s growth - Salary reviews Expose basic competencies and how they are used

“Difficult Conversations” by Douglas Stone “Thanks for the feedback” by Douglas Stone

What I learnt about hiring diverse teams from conducting a fully-anonymous recruitment process - 15:25 - Bethan Vincent

Tue Jun 11 15:44:37 BST 2019

Fully anonymous, register with mobile phone. Didn’t fully solve the problem

  1. People want to showcase soft skills, but it’s hard to talk about in an application or resume
  2. Jobseekers want human connection and to know what it’s really like to work with you. It’s hard to understand the culture in a cold call, and even through the in person interview
  3. Lengthy tests and at home exercises are not inclusive, because not everyone has tons of extra time to do tests.
  4. Job listing is just as important as the application process. People fill in the blanks with “doubt”
  5. If we really care about diversity, we need to listen.

Volunteers, not conscripts: fixing out-of-hours on-call - 16:15 - Brian Scanlan

Tue Jun 11 16:26:09 BST 2019

On call is great because it connects you to your customers On call is terrible because it’s anxiety inducing

“Everything is broken all of the time”

engineer count > 50 .. Intrastructure, Email, Apis… too many people on call Inconsistent quality and experience, on call eating the enginners

Made On Call “opt in” - virtual team of volunteers

Teraform and Github flow

We wrote standards and invented new processes, using Github for alarms and had a Runbook The virtual on call team was only for on hours, not out of hours On Call for 1 week, Friday evening to Friday morning Escalation via an on call engineering leader On call people should only do first aid, not real systems work, the engineering leader picks who to fix the issue Remunerated for each on call shift, paged or not Rest if you need to.. “By the book” escalations were uncommon, more informally through people available on Slack Teams took ownership of alarms that caused pages No one want to get people outside of their team out of bed, but not an issue with waking your own team Rotating people through the team worked, people volunteered. People wanted to go on call… because they were getting paid..? Pages dropped to < 10 pages per month Having SF and UK engineers being involved was really nice Monthly communications about how things were going… Feedback is important Recognition during reviews was helpful

“Human Ops” not SysOps

Takeaways.. Challenge the on call setup In depth experts for every part of the system do not need to be on call. Allow for docs, escalation and processes to fill in the gaps Understand your customers, but optimize for your employees Remove a lot of your alarms, review all the alarms. Add in choke-points to new alarms

Give 10%, get 110% - 16:45 - Kate Beard - Jr dev from FT

Tue Jun 11 16:56:27 BST 2019

10% time… do your own thing with the purpose of career development People who work on side projects progress faster in their career Not everyone can do the side work, because they don’t have free time. We should be okay with people not working 60 hours a week. “Drive” by Daniel Pink - Autonomy, mastery, and purpose.

Junior Squad - to support and encourage jr devs to use the 10% time 10% time for talks and organizaing meetups, changing teams and advancing you career

Takeaways Provide structure to support and encourage use of 10% time Communicate about what’s being done during the time Let people do what they’re inspired to do.

Eiffel’s Tower - 16:55 - Nickolas Means - ManagingUp.show

story time…

Politics

We should participate in office politics, because that’s how things get done. You can’t escape politics

Anytime you have more than one person working on something, you will have politics. Politics is how people work together. Every organization is political.

Politics doesn’t have to be gross.

Eiffel did networking and self-promotion in order to get his tower built

Politics is “Making friends and telling stories”

Maybe you’ll make friends with someone who has power some day, maybe not. But it’s good nevertheless

Tell stories. You have to show what you’ve been doing, in a way that makes

Finally.. Negotiation.. or Cooperation

Cooperate with everyone so everyone gets what they wants.

“You can negotiate anything” by Herb Cohen

Don’t be a “shit umbrella” be a “head shield”

End of Day 1 - 20:00

Wednesday 12 June

Flavours of technical leadership - 09:10 - Pat Kua

A+ talk
Wed Jun 12 09:11:24 BST 2019

“Talking with Tech Leads” by Pat Kua Tech Lead Course We all have unique flavors of leadership You need to be comfortable in the way you lead

What is “Leadership”? The ability to lead. The act of leading a group of people. Leadership is an action. Anyone can be a leader. All it takes is a single action. Technical Leadership: The act of leading a group of people in a technical act.

It is a shift in mindset.

We start off as a maker. We build things. We code.
We need to shift from a maker to a multiplier. A multiplier has more impact.

Take implicit things and make them explicit.

talks about the “two track model” like we use at Clearbit. He thinks we should change to a “Trident Model”: Technical Leader, Individual Contributor, Management

Management thinks about people and processes Technical Leader spends 75% of their time focused solely on technical issues. Facilitate the right technical conversations.

Formal vs. Informal leadership.
Formal is a given title, Informal is doing something without accountability. Impact the different expanding circles of numbers of people

What do we do and how do we work?

4 specific flavors of technical leadership

  1. Knowledge Cultivator: Fill the gap by helping people with papers, newsletters, blogging, talks, speaking. Sharing knowledge
Famen technique - explain it like I’m 5 to prove you understand things you think you understand
  1. The Advocate: They have a lot of patience and relentless focus

  2. Solve pain points that aren’t painful enough that someone else has already solved them.

  3. Draw on powerful questions. What is troubling you about “X”?

  4. Get buy in from others for a solution. Can play the political game.

Example is Continuous Integration solving the “Release team” problem
  1. The Connector

  2. Companies are networks, not hierarchies. Networks are on any topic or area of interest

  3. The Storyteller

The Eifell tower story is a great example. These are out historians and story tellers.

How to let go and get stuff done - 09:40 - Rita Mantler

Inculsion stats with an I - 9:40 - Dora Mulitaru - @doramilitaru

Wed Jun 12 09:45:48 BST 2019

Being different is challenging… Quotas are a bad thing because they provide false sense of success based on misleading metrics But they may be necessary until we get to an equal world. Demographics aren’t binary, they are a spectrum Inclusion is about intersectionality of these spectrums Virtue signaling is gross HBS study Diversity is being invited to the party. Inclusion is feeling like you belong at the party.
use textio.com to check bias Sometimes the best candidate for the role isn’t the best person to hire.

Business as usual: how to stop drowning and learn to swim - 09:50 - Jonathan Stott

Wed Jun 12 09:59:48 BST 2019
  1. The one with the problem… What is Business As Usual?
    Bug fixing, legacy code, manual fixes, maintenance, critical fixes.. often overlooked, delayed, or expensive a cause of stress
  2. The one with the kiwi… The kiwi was the marker for the person with the responsibility for the BAU work They need support from everyone Never plan non-BAU tasks for the person with the Kiwi The lack of support made having the kiwi something scary and people would try to avoid it. Make sure they still have interesting work to do It’s very hard to contract out BAU, so had to keep it internal
  3. The one where you’re underwater Keep things interesting for the one with the Kiwi and be nice to them
  4. The one where everyone leaves What happens when everyone leaves, or the bus runs you over? The importance of the 3 “ations” Documentation, Simplification, and Automation
  5. The one whwere the leopard changes its spots BAU became a toxic brand. No one wanted to do it.
    Rebrand! Changed the name to “Support and Maintenance” Tone of voice is important
  6. Where we fixed some things Consolidation Spend 8 weeks a year on this stuff (bux fixing, refactoring, etc.. )
  7. The one with the new role Technical Support Engineer - main focus is to do the BAU goal is to automate themselves out of the job. Can graduate into a full engineer. Have fun! Allow them to have autonomy on what to improve. Effect is that it is unblocked the team. They still need support, mentoring.
  8. The one with the cliffhanger Don’t lose heart.

Behind the scenes of an effective & inclusive hiring process - 11:00 - Ola Sitarska

Wed Jun 12 11:03:13 BST 2019

How to grow a diverse and inclusive engineering team from 10 to 35 in 12 months…

  1. Define who the right candidate is and build the pipeline

    • Defining the requirements for experience and education can leave some people out that might be a good fit.
    • The best indicator for future success is past success in a similar role and environment.
    • Hire for the job you have.
    • Drop the specific numbered requirements, like years worked and degree
    • Describe what the job entails
    • Be transparent about what the job is, including salary
    • Build a representative pipeline
    • Invest in outreact
    • Have inclusive practices
    • Hire diversity in leadership first
  2. Design how you gather and evaluate information

    • Phone screen.. In the first 30 minutes assess that the candidate is looking for what we can offer them.. Get them excited and set expectations
    • Coding Test.. Assess that the candidate can solve a simple problem that they’d find at work in a similar environment. Maybe have them do a code review.
    • On-site interview.. Gather evidence of them doing the job you defined
    • Fight your biases!
    • blind code-review in github - no identifiable information
    • objective evidence based scorecard
    • representative interview panel
    • ask for evidence from interviewers, not opinions
    • Use the same rubric to evaluate candidates and current employees
  3. Setup your candidate for success

    • remember it’s a two-way street. The candidate is also evaluating you.
    • minimize the stress in the interview. People perform best when they are not stressed
    • give timely, useful feedback about the interview

You’ve nailed the interview experience when they decline the offer, yet recommend the company to others.

Mobile development in 2019: native versus cross-platform - 11:30 - Miriam Busch

Wed Jun 12 11:30:32 BST 2019

Alternatives to native

React Native - limitations and performance issues because of the cross-platform layout-rendering bridge. UI and Logic written in JS with Xamarin - C# development for cross-platform. UI is written with native UI components with shared logic written in C# Flutter - Dart, UI and Logic is shared. Rendering is done via Flutter. Flutter has their own UI components Kotlin Multi-platform. UI is written in each native language, uses shared logic with Kotlin

Learnings… Cross-platform made it easier to write once. But this came with it’s own challenges because of the added abstraction layer.
React Native is being deprecated at Airbnb There’s still no good solution. They’ve chosen Flutter…

Building security culture on infrastructure teams - 11:40 - Franklin Hu - Infrastructure lead at Stripe

Wed Jun 12 11:42:07 BST 2019

Security should be a design constraint. It’s everyone’s job.

3 elements of security culture

  1. Learning anb Growth

    • We don’t want to shame people. Shame causes people to disengage or be aggressive.
    • We want to learn, not shame.
  2. Empathy

    • There are some instances where there are absolutes, otherwise we should exercise empathy and understanding about why.
  3. Responsibility

    • Security is everyone’s job.
    • developers have the most context. we should expect them to make the right decisions.
    • use libraries to reduce decisions

Find security-interested people. Rotations! Move people around so you can expand your context and domain expertise Have Security Advocates or Security Champions. Deputize them.

Build a culture of learning. Make space for learning. Block off time on your schedule. Discussion and presentation forums, like brown bag lunch.. Tabletops and Game Days. Like a DnD game, but with work problems… Pretend you destroy different production services Have a shipped/Fixed channel in Slack; pre-shipped?

Process - Security Review - should not be stressful

Why we should be scared of Shor’s Algorithm right now - 12:10 - James Birnie

Wed Jun 12 12:02:47 BST 2019

Shor’s algorithm is a quantum algorithm Post quantum cryptography

All your RSA stuff, while maybe secure now, will not be secure in the near future, and since everything is being recorded, it’s not really secure now.

Navigating front-end architecture like a Neopian - 13:30 - Julia Nguyen

Wed Jun 12 13:27:18 BST 2019

So yeah! x29

She’s talked a lot about her story… her privilege, etc… and more about what job’s she’s had, throwing around some jargon.

She’s noticed that slow loading pages cause “problems”. Also, there’s cache invalidation issues.

There’s similarities with engineering!

Good performance and accessibility is good!

“Spike is a term in Extreme Programming”

Have some Framework Criteria…

Vue won! Hooray!

More Neopets talk

Chose React + Flow for my open source stuff. “React on Rails” framework

Storybook is awesome. We have a component library!

We have documentation!

Internationalization is hard, but important.

She talks a lot about Neopets. I’ve learned more about Neopets than I ever wanted to know. Lots of Neopets and her teenage years.

She was the lead engineer at Headspace… … …

Yay for greenfield projects! She got to make a component library!

Now she uses JSDoc to write documentation.

This was the worst talk…

How long is a piece of string: the key to solving the conundrum of software estimation. - 14:00 - Jonathan Rigby - @JonathanRigby

Wed Jun 12 14:06:37 BST 2019

Hofstadtler’s law… #NoEstimates

Estimation is really hard. There’s lots of problems with it.

The key ingredient for estimation is trust

5 things to maximize trust

  1. Make and keep the commitments you can. Give quality demos
  2. Be transparent for why we missed our estimation.
  3. Don’t overdo things. Have a product mindset. This is a business, not play.
  4. Show empathy. Product has stakeholders, like the CEO.
  5. Educate them on the complexity of estimation. Use a semi-outlandish example.

Silence isn’t golden, it’s deadly! - 14:10 - Paula Kennedy - @PaulaLKennedy

Wed Jun 12 14:17:41 BST 2019

They have 30% of their team that feels they’re not part of their team and they’re trying to solve their communication issues with all hands meetings and retros.

“Virtual off-site” where everyone gets on Zoom for an entire day.

Google’s “Project Aristotle”

Use “Active Listening”

“Mindful Communication” talk about the other person..

Have an Off-Site

They have a team mascot, a Goose, which is basically like the Conch from Lord of the Flies; “I have the Conch”

Don’t have individual Slack channels. Use public channels, with threads.

Book club didn’t work.

OKR’s didn’t work, mostly because they didn’t align with the actual goals

Leading the team through a rapid growth - 15:20 - Joanna Chwastowska - Google Deepmind Health

Wed Jun 12 15:21:49 BST 2019

Be clear about the tradeoffs in technical design. Be clear about how risk-tolerant and error-tolerant you are.

From day one, think about quality, security, and privacy on the system

Put the team at the heart of everything. The team that is building the system is the most important thing.

Hire Responsibly. Never lower your hiring bar. You will continue to pay the price the entire time.

Work in a sustainable way. Burn out is very costly. Should not have a “hero” mentality.

Monitor for your team’s psychological safety.

Build mechanisms for the teams and roles to communicate across boundaries. Make sure everyone has shared understanding about what we’re building. Communication from bottom-up is important.

Takeaways - Be clear on the goal. Communicate openly. Hire responsibly. Care for people.

Facilitation techniques 202 - 15:50 - Neha Batra - A+ talk, should watch again

Wed Jun 12 15:46:32 BST 2019
  1. Set the stage

    • Use an agenda.
    • Have a timeline and topics. Lets people know when to speak up
    • Include breaks. Guaranteed quiet time.
    • Set breaks after heady topics
    • Check off the agenda items
    • Come in before the meeting and setup with notes and snacks.
    • Make sure everyone has a seat
    • Talk about feelings with everyone sitting down.
    • Post it super sticky portable tabletop easle pad with dry erase board
  2. Engage - Get people to have a rhythm

    • Split into pairs
    • Individual thinking
    • Share, voluntarily, individually
    • Write on a white board
    • Facilitating vs. Talking… just facilitate
    • Prompt on the white board for what to do. Have an alarm.
    • Align Roles
  3. Include all personalities

    • Steamrollers vs quieter folks
    • Post its + round robins with post its
    • Museum walks (have people walk around the room, looking at the big sticky sheets)
    • Share 1 idea each
    • Dot vote
    • Breakout groups to limit surface area
    • Time to think before sharing, warn for shy people
    • Set a rule for having three people speak before one person speaks again
    • Take a break when things get heated
  4. Finish

    • Appreciations
    • Retros
    • Swag
    • Have an action item!!

A button to pause time: how to live outside the clock - 16:00 - Sal Freudenberg and Clare Sudbery

Wed Jun 12 16:03:10 BST 2019

Story about their hackathon. They uses a “puck” IOT device. Followed a lightweight SCUM method

Sleep deficiency affects us in myriad negative ways. Pretty much every negative way.

Evolution has made some of us early risers (Larks), some of us night owls

Spoon theory … Lupus story… “I’m low on spoons” “I’m out of spoons”

Flexible working - give parents flexible hours

Graham Wallace - sleep is sometimes more productive

Some People need control over their own lives and their own schedule.

Some people need structure and routine.

Provide a structure for people to live within, but provide flexibility so people can practice self care


John Nelson

Written by John Nelson, who lives and works in Chattanooga, building things for Batch.sh.