$30 off During Our Annual Pro Sale. View Details »

Your Emotional API: How to be a better developer by being a better human

Your Emotional API: How to be a better developer by being a better human

Imagine we have an API endpoint which, when called, makes us feel angry. Imagine also that there are thousands of aliases that redirect to it. People and situations can call those endpoints at any time. It’s up to us to decide what response to send.

Feelings are messy and uncomfortable, why don’t we just ignore them? Because ignoring them inhibits our ability to code. Increases in emotional mastery can have impacts on our productivity and even careers.

We talk theory and practice for healthy emotions, with code samples!

Emotional API

August 21, 2016
Tweet

More Decks by Emotional API

Other Decks in Programming

Transcript

  1. Your Emotional API
    How to be a better developer by being a better human

    View Slide

  2. @emotionalAPI
    John Sawers
    Founder and CTO of Data Simply
    Architect at Privia Health
    @emotionalapi
    @johnksawers
    http://emotionalapi.com

    View Slide

  3. “Emotions just make so much sense to me”
    — No One Ever

    View Slide

  4. @emotionalAPI
    Cry
    Make a Scene
    Throw a Fit
    Whine
    Yell
    Don’t

    View Slide

  5. @emotionalAPI
    Do
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.

    View Slide

  6. @emotionalAPI
    post '/feels/anger' do

    ...

    end

    post '/feels/sadness' do

    ...

    end

    post '/feels/fear' do

    ...

    end

    post '/feels/shame' do

    ...

    end

    post '/feels/joy' do

    ...

    end

    post '/feels/love' do

    ...

    end

    Endpoints

    View Slide

  7. @emotionalAPI
    There’s another layer
    delete '/job/12', 301: '/feels/sadness'

    put '/events/mother/visit', 301: '/feels/anger'

    put '/baby/new', 301: '/feels/fear'

    post '/people/co-worker/comments/jerk', 301: '/feels/anger'

    get '/people/boss/compliment', 301: '/feels/pride

    View Slide

  8. @emotionalAPI
    There’s another layer
    delete '/job/:id'

    100.times do

    Thread.new(post('/feels/fear')

    end

    20.times do

    Thread.new(post('/feels/sadness')

    end

    end

    View Slide

  9. @emotionalAPI
    It’s A Public API
    The Bad News

    View Slide

  10. @emotionalAPI
    You Control The
    Implementation
    The Good News

    View Slide

  11. @emotionalAPI
    How Your Feeling Server Works
    Version: HTTP/1.0
    Content-Type: application/feels
    Content-Length: ∞
    Timeout: 7200
    (hint: not very well)

    View Slide

  12. When The Big Feels Hit
    @emotionalAPI

    View Slide

  13. @emotionalAPI
    20
    Minutes

    View Slide

  14. @emotionalAPI
    1. 20 Minutes Max
    2.
    3.
    4.
    5.
    6.
    7.
    System Properties

    View Slide

  15. You can control where
    and when you express
    your feelings
    (But you don’t have to)

    View Slide

  16. @emotionalAPI
    get('/feels/anger').perform_later

    View Slide

  17. @emotionalAPI
    1. 20 Minutes
    2. Delayed Jobs
    3.
    4.
    5.
    6.
    7.
    System Properties

    View Slide

  18. Why Bother?
    That sounds really messy

    View Slide

  19. Better Human?

    View Slide

  20. @emotionalAPI
    Cognitive Problems

    View Slide

  21. @emotionalAPI
    Cognitive Problems
    Poorer Executive Function [1]

    View Slide

  22. @emotionalAPI
    Cognitive Problems
    Poorer Short Term Memory [2]

    View Slide

  23. @emotionalAPI
    Cognitive Problems
    Lower ability to handle stress and cope with crisis [3]

    View Slide

  24. @emotionalAPI
    Cognitive Problems
    More self-centered [4]

    View Slide

  25. @emotionalAPI
    Cognitive Benefits

    View Slide

  26. @emotionalAPI
    Cognitive Benefits
    “not just in improved behavior but in measurable academic
    achievement.”[5]

    View Slide

  27. @emotionalAPI
    Cognitive Benefits
    “…process information more abstractly, integrating information to
    extract the gist, detecting patterns and relationships”[6]

    View Slide

  28. @emotionalAPI
    Cognitive Benefits
    “…judged emotional expression more accurately”[7]

    View Slide

  29. @emotionalAPI
    Express your ideas better
    Social Benefits

    View Slide

  30. @emotionalAPI
    Better career advancement[8]
    Social Benefits

    View Slide

  31. @emotionalAPI
    Empathy!
    Social Benefits

    View Slide

  32. @emotionalAPI
    Help others with their emotional challenges
    Social Benefits

    View Slide

  33. @emotionalAPI
    Health Benefits
    “measurable health advantage”[9]

    View Slide

  34. Better Developer?

    View Slide

  35. @emotionalAPI
    Code Reviews

    View Slide

  36. @emotionalAPI
    Degraded Cognition

    View Slide

  37. @emotionalAPI
    Distraction

    View Slide

  38. @emotionalAPI
    Problematic Teammates

    View Slide

  39. @emotionalAPI
    Impostor Syndrome

    View Slide

  40. @emotionalAPI
    Interviewed, Hired, Fired

    View Slide

  41. @emotionalAPI
    Manage & Mentor

    View Slide

  42. http://frontside.io/
    Senior
    Software
    Developer

    View Slide

  43. More Details

    View Slide

  44. @emotionalAPI
    1. 20 Minutes Max
    2. Delayed Jobs
    3.
    4.
    5.
    6.
    7.
    System Properties

    View Slide

  45. @emotionalAPI
    They Don’t Mean Anything

    View Slide

  46. @emotionalAPI
    You’re Human

    View Slide

  47. @emotionalAPI
    Fear of Loss of Control

    View Slide

  48. @emotionalAPI
    Fear of Loss of Control
    A constructive way to express anger?

    View Slide

  49. @emotionalAPI
    Fear of Loss of Control
    A constructive way to express anger?
    No such thing?

    View Slide

  50. @emotionalAPI
    It’s Just Energy

    View Slide

  51. @emotionalAPI
    It’s Just Energy
    Dancing
    Singing
    Exercise

    View Slide

  52. @emotionalAPI
    Practice Talking

    View Slide

  53. “…consciously recognizing
    the emotions reduced
    their impact.”
    David Rock
    Your Brain At Work[10]

    View Slide

  54. @emotionalAPI

    View Slide

  55. @emotionalAPI

    View Slide

  56. @emotionalAPI
    “I feel” vs. “I am”

    View Slide

  57. @emotionalAPI
    There’s no such thing as
    how you ‘really feel’

    View Slide

  58. @emotionalAPI
    It’s Enumerable, not
    Boolean
    how_you_really_feel = [,…]

    View Slide

  59. @emotionalAPI
    There Is No Should

    View Slide

  60. “Trying not to feel
    something doesn’t work,
    and in some cases even
    backfires”
    David Rock
    Your Brain At Work[11]

    View Slide

  61. @emotionalAPI
    1. 20 Minutes
    2. Delayed Jobs
    3. It Doesn’t Mean Anything
    4. You Won’t Lose Control
    5. It’s Just Energy
    6. Talking Makes It Better
    7. All Feelings Are Valid
    8. There Is Nothing You Should Be Feeling
    9. Repression Doesn’t work
    System Properties

    View Slide

  62. @emotionalAPI
    Do
    •GET /feels/anger/meaning, response: nil
    •self.body(:move)
    •@confidant.send_message(“I feel so sad about…”)
    •@self.send_message(“I feel so hurt about…”)

    View Slide

  63. @emotionalAPI
    How did I get here?
    “…an intensive 20-hr Weekend Retreat in which you will explore
    your erroneous belief systems, learn to appropriately express
    emotions in a manner that heals…”
    Purpose • Passion • Peace
    http://aliceamos.me/p3retreat/

    View Slide

  64. A Journey Through Anger

    View Slide

  65. @emotionalAPI

    View Slide

  66. @emotionalAPI
    GET '/events/something/trivial'

    POST ‘/feels/anger'

    View Slide

  67. @emotionalAPI
    Do

    View Slide

  68. @emotionalAPI
    Safe Space

    View Slide

  69. @emotionalAPI
    Throw A Fit

    View Slide

  70. @emotionalAPI
    Do:
    •GET /feels/anger/meaning, response: nil
    •self.body(:move)
    •@confidant.send_message(“I feel so sad about…”)
    •@self.send_message(“I feel so hurt about…”)
    •SafeSpace.new(throw Fit.new(“ARRRGH”))

    View Slide

  71. A Journey Through Sadness

    View Slide

  72. @emotionalAPI
    delete ‘/v5/parents/marriage’


    post ‘/v6/parents/:dad_id/set_emotional_distance/100’


    post ‘/v8/parents/:dad_id/diseases/cancer’


    delete ‘/v17/parents/:dad_id’

    View Slide

  73. @emotionalAPI
    /v5
    delete ‘/v5/parents/marriage’ do

    20.times.do {

    Thread.new(get('/feels/fear'))

    Thread.new(get('/feels/sadness'))

    Thread.new(get('/feels/blame'))

    }

    delete('/feels/self_worth')

    end

    View Slide

  74. @emotionalAPI
    /v8
    post /v8/parents/:dad_id/diseases/cancer do

    20.times.do {

    Thread.new(delete('/v5/parents/marriage'))

    Thread.new(get('/feels/fear'))

    Thread.new(get('/feels/sadness'))

    }

    end

    View Slide

  75. @emotionalAPI
    /v17
    def ‘/v17/parents/:dad_id’ do

    1000.times.do {

    Thread.new(post('/v8/parents/:dad_id/diseases/cancer'))

    Thread.new(delete('/v5/parents/marriage'))

    Thread.new(get('/feels/anger'))

    Thread.new(get('/feels/sadness'))

    }

    end

    View Slide

  76. @emotionalAPI
    Daddy
    Issues

    View Slide

  77. @emotionalAPI
    Stack Trace
    NoMethodError - undefined method `paternal_approval’ for BossClass:
    /me/feels/panic.rb:9:in `initialize'
    /me/feels/love/daddy:14:in `none_for_you’
    /me/feels/fear/mistake/guaranteed_to_be_fired:21:in `realize_mistake’
    /me/events/releases/prod/bug_count/metrics.rb:39:in `count_bugs’

    View Slide

  78. @emotionalAPI
    Stack Trace
    NoMethodError - undefined method `paternal_approval’ for BossClass:
    /me/feels/panic.rb:9:in `initialize'
    /me/feels/love/daddy:14:in `none_for_you’
    /me/feels/fear/mistake/guaranteed_to_be_fired:21:in `realize_mistake’
    /me/events/releases/prod/bug_count/metrics.rb:39:in `count_bugs’

    View Slide

  79. Cry

    View Slide

  80. “Crying doesn’t indicate
    you are weak, since birth
    it has always been a sign
    to indicate you are alive”
    — attributed to Charlotte Brontë

    View Slide

  81. @emotionalAPI
    /v17
    def ‘/v17/parents/:dad_id’ do

    1000.times.do {

    Thread.new(post('/v8/parents/:dad_id/diseases/cancer'))

    Thread.new(delete('/v5/parents/marriage'))

    Thread.new(get('/feels/anger'))

    Thread.new(get('/feels/sadness'))

    }

    end

    View Slide

  82. @emotionalAPI
    Diff
    def ‘/v17/parents/:dad_id’ do

    1000.times.do {
    500.times.do {

    Thread.new(post('/v8/parents/:dad_id/diseases/cancer'))

    Thread.new(delete('/v5/parents/marriage'))

    Thread.new(get('/feels/anger'))

    Thread.new(get('/feels/sadness'))

    }

    end

    View Slide

  83. @emotionalAPI
    Diff
    get ‘/me/events/releases/prod/bugs/count_high’ do

    Thread.new(get('/feels/unloved'))

    Thread.new(get('/feels/panic'))

    puts 'oops'

    fix_it

    move_on

    end

    View Slide

  84. @emotionalAPI
    Another Method
    post ‘/me/events/message/something_important_to_talk_about’ do


    end

    View Slide

  85. @emotionalAPI
    Another Method
    post ‘/me/events/message/something_important_to_talk_about’ do

    self.set_state(:fear)

    origin = self.feels[:fear].inspect_origin || self.feels[:fear].perform_now


    end

    View Slide

  86. The Five Whys
    https://open.buffer.com/5-whys-process/

    View Slide

  87. @emotionalAPI
    Another Method
    post ‘/me/events/message/something_important_to_talk_about’ do

    self.set_state(:fear)

    origin = self.feels[:fear].inspect_origin || self.feels[:fear].perform_now

    self.clear_history(origin)

    self.set_time(Time.now)

    reappraise_situation(:current)

    end

    View Slide

  88. @emotionalAPI
    Baggage

    View Slide

  89. @emotionalAPI
    Emotional Mentorship
    You can do this work on your own
    But it’s more powerful and rewarding to do it with others.

    View Slide

  90. @emotionalAPI
    Open Sourcing Mental Illness is
    a campaign founded by Ed
    Finkler to change how we deal
    with mental health in the tech
    community.
    https://osmihelp.org/
    @OSMIhelp

    View Slide

  91. @emotionalAPI
    Self Awareness (Monitoring)

    View Slide

  92. @emotionalAPI
    Do:
    •GET /feels/anger/meaning, response: nil
    •self.body(:move)
    •@confidant.send_message(“I feel so sad about…”)
    •@self.send_message(“I feel so hurt about…”)
    •SafeSpace.new(throw Fit.new(“ARRRGGH”)
    •SafeSpace.new(:cry)
    •Service start nagios
    •Week.days.each(:practice)
    •config.treads = false
    •self.get_help(:therapist_service)

    View Slide

  93. @emotionalAPI
    Best Practices

    View Slide

  94. @emotionalAPI
    Pick One Thing

    View Slide

  95. @emotionalAPI
    No overnight success

    View Slide

  96. @emotionalAPI
    You’re Never Done

    View Slide

  97. @emotionalAPI
    It’s OK

    View Slide

  98. Soft Skills
    Super Hard Skills

    View Slide

  99. @emotionalAPI
    DEEP BREATH

    View Slide

  100. @emotionalAPI
    Thank You So Much
    This is just the start
    Mailing List: http://emotionalapi.com
    Twitter: @emotionalAPI

    View Slide

  101. @emotionalAPI
    Come get a feeling wheel!
    I’d love to hear what your
    ‘one thing’ is

    View Slide

  102. @emotionalAPI
    References
    [1],[2] “…a lack of power impairs our cognitive function.’ Amy Cuddy, Presence 119
    [3] “In fact, people who have a high sense of personal control…cope significantly better in crisis…because their
    executive functions are intact” Amy Cuddy, Presence, 136
    [4] “Powerlessness makes us self-absorbed” Amy Cuddy, Presence 121
    [5] “Helping children improve their self-awareness and confidence, manage their disturbing emotional impulses and
    increase their empathy pays off not just in improved behavior but in measurable academic achievement.” — Daniel
    Goleman, Emotional Intelligence xi
    [6] “The [people who feel] powerful process information more abstractly, integrating information to extract the gist,
    detecting patterns and relationships” Smith, P.K., Dijkterhuis, A, & Wigbuldus, D.H. Psychology Science, 19, 1258-1259
    [7] “Subjects made to feel powerful judged emotional expression more accurately.” Amy Cuddy, Presence 127
    [8] “…having high leadership potential were far stronger in EI competencies…” Daniel Goleman, Emotional
    Intelligence xiii
    [9] “Those who can mange their emotional lives with more calm and self-awareness … have … distinct and
    measurable health advantage … confirmed by many studies” Daniel Goleman, Emotional Intelligence xi
    [10] “…when they were asked to name the emotion, the ventrolateral prefrontal cortex activated and reduced the
    emotional amygdala reactivity. In other words, consciously recognizing the emotions reduced their impact.” David
    Rock, Your Brain At Work 127
    [11] Gross found that people who tried to suppress a negative emotional experience failed to do so. While they
    thought they looked fine outwardly, inwardly their limbic system was just as aroused as without suppression. Trying
    not to feel something doesn’t work, and in some cases even backfires. David Rock, Your Brain At Work 119

    View Slide