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

Hacking Your Emotional API 1.1 - Boston.rb

Hacking Your Emotional API 1.1 - Boston.rb

Emotional API

August 14, 2022
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
    Boston.rb

    View Slide

  2. @emotionalAPI
    John Sawers
    Founder and CTO of Data Simply


    Senior Developer 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. You can control where
    and when you express
    your feelings
    (But you don’t have to)

    View Slide

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

    View Slide

  16. @emotionalAPI
    1. 20 Minutes


    2. Delayed Jobs


    3.


    4.


    5.


    6.


    7.


    8.
    System Properties

    View Slide

  17. Why Bother?
    That sounds really messy

    View Slide

  18. @emotionalAPI
    Cognitive Problems

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. @emotionalAPI
    Cognitive Bene
    fi
    ts

    View Slide

  24. @emotionalAPI
    Cognitive Bene
    fi
    ts
    “not just in improved behavior but in measurable academic
    achievement.”[5]

    View Slide

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

    View Slide

  26. @emotionalAPI
    Cognitive Bene
    fi
    ts
    “…judged emotional expression more accurately”[7]

    View Slide

  27. @emotionalAPI
    Express your ideas better
    Social Bene
    fi
    ts

    View Slide

  28. @emotionalAPI
    Better career advancement[8]
    Social Bene
    fi
    ts

    View Slide

  29. @emotionalAPI
    Empathy!
    Social Bene
    fi
    ts

    View Slide

  30. @emotionalAPI
    Help others with their emotional challenges
    Social Bene
    fi
    ts

    View Slide

  31. @emotionalAPI
    Health Bene
    fi
    ts
    “measurable health advantage”[9]

    View Slide

  32. Better Human?

    View Slide

  33. Better Developer?

    View Slide

  34. @emotionalAPI
    Code Reviews

    View Slide

  35. @emotionalAPI
    Degraded Cognition

    View Slide

  36. @emotionalAPI
    Distraction

    View Slide

  37. @emotionalAPI
    Problematic Teammates

    View Slide

  38. @emotionalAPI
    Impostor Syndrome

    View Slide

  39. @emotionalAPI
    Interviewed, Hired, Fired

    View Slide

  40. @emotionalAPI
    Manage & Mentor

    View Slide

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

    View Slide

  42. More Details

    View Slide

  43. @emotionalAPI
    1. 20 Minutes Max


    2. Delayed Jobs


    3.


    4.


    5.


    6.


    7.


    8.


    9.
    System Properties

    View Slide

  44. @emotionalAPI
    Talking

    View Slide

  45. “…consciously recognizing
    the emotions reduced
    their impact.”
    David Rock


    View Slide

  46. @emotionalAPI

    View Slide

  47. @emotionalAPI
    Try Lots


    of Words

    View Slide

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

    View Slide

  49. @emotionalAPI
    It’s Just Energy

    View Slide

  50. @emotionalAPI
    It’s Just Energy
    Dancing


    Singing


    Exercise

    View Slide

  51. @emotionalAPI
    They Don’t Mean Anything

    View Slide

  52. @emotionalAPI
    You’re Human

    View Slide

  53. @emotionalAPI
    Fear of Loss of Control

    View Slide

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

    View Slide

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

    View Slide

  56. @emotionalAPI
    Feelings are Enumerable,
    not Boolean
    how_you_really_feel = [,…]

    View Slide

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

    View Slide

  58. @emotionalAPI
    There Is No Should

    View Slide

  59. “Trying not to feel
    something doesn’t work,
    and in some cases even
    back
    fi
    res”
    David Rock


    View Slide

  60. @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

  61. @emotionalAPI
    Do
    •GET /feels/anger/meaning, response: nil


    •self.body(:move)


    •@con
    fi
    dant.send_message(“I feel so sad about…”)


    •self.send_message(“I feel so hurt about…”)

    View Slide

  62. @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

  63. A Journey Through Anger

    View Slide

  64. @emotionalAPI

    View Slide

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





    POST ‘/feels/anger'

    View Slide

  66. @emotionalAPI
    Do

    View Slide

  67. @emotionalAPI
    Safe Space

    View Slide

  68. @emotionalAPI
    Throw A Fit

    View Slide

  69. @emotionalAPI
    Do:
    •GET /feels/anger/meaning, response: nil


    •self.body(:move)


    •@con
    fi
    dant.send_message(“I feel so sad about…”)


    •@self.send_message(“I feel so hurt about…”)


    •SafeSpace.new(throw Fit.new(“ARRRGH”))

    View Slide

  70. A Journey Through Sadness

    View Slide

  71. @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

  72. @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

  73. @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

  74. @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

  75. @emotionalAPI
    Daddy
    Issues

    View Slide

  76. @emotionalAPI
    Stack Trace
    NoMethodError - unde
    fi
    ned 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_
    fi
    red:21:in `realize_mistake’


    /me/events/releases/prod/bug_count/metrics.rb:39:in `count_bugs’

    View Slide

  77. @emotionalAPI
    Stack Trace
    NoMethodError - unde
    fi
    ned 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_
    fi
    red:21:in `realize_mistake’


    /me/events/releases/prod/bug_count/metrics.rb:39:in `count_bugs’

    View Slide

  78. Cry

    View Slide

  79. “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

  80. @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

  81. @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

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

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

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

    puts 'oops'

    fi
    x_it

    move_on

    end

    View Slide

  83. @emotionalAPI
    Baggage

    View Slide

  84. @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

  85. @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

  86. @emotionalAPI
    Self Awareness (Monitoring)

    View Slide

  87. @emotionalAPI
    Do:
    •GET /feels/anger/meaning, response: nil


    •self.body(:move)


    •@con
    fi
    dant.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)


    •con
    fi
    g.treads = false


    •self.get_help(:therapist_service)

    View Slide

  88. @emotionalAPI
    Best Practices

    View Slide

  89. @emotionalAPI
    Pick One Thing

    View Slide

  90. @emotionalAPI
    No overnight success

    View Slide

  91. @emotionalAPI
    You’re Never Done

    View Slide

  92. @emotionalAPI
    It’s OK

    View Slide

  93. Soft Skills


    Super Hard Skills

    View Slide

  94. @emotionalAPI
    DEEP BREATH

    View Slide

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


    Twitter: @emotionalAPI

    View Slide

  96. @emotionalAPI
    Come get a feeling wheel!


    I’d love to hear what your
    ‘one thing’ is

    View Slide

  97. @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 signi
    fi
    cantly 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