Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

@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

Slide 8

Slide 8 text

@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

Slide 9

Slide 9 text

@emotionalAPI It’s A Public API The Bad News

Slide 10

Slide 10 text

@emotionalAPI You Control The Implementation The Good News

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

When The Big Feels Hit @emotionalAPI

Slide 13

Slide 13 text

@emotionalAPI 20 Minutes

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Why Bother? That sounds really messy

Slide 18

Slide 18 text

@emotionalAPI Cognitive Problems

Slide 19

Slide 19 text

@emotionalAPI Cognitive Problems Poorer Executive Function [1]

Slide 20

Slide 20 text

@emotionalAPI Cognitive Problems Poorer Short Term Memory [2]

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

@emotionalAPI Cognitive Problems More self-centered [4]

Slide 23

Slide 23 text

@emotionalAPI Cognitive Bene fi ts

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

@emotionalAPI Express your ideas better Social Bene fi ts

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

@emotionalAPI Empathy! Social Bene fi ts

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Better Human?

Slide 33

Slide 33 text

Better Developer?

Slide 34

Slide 34 text

@emotionalAPI Code Reviews

Slide 35

Slide 35 text

@emotionalAPI Degraded Cognition

Slide 36

Slide 36 text

@emotionalAPI Distraction

Slide 37

Slide 37 text

@emotionalAPI Problematic Teammates

Slide 38

Slide 38 text

@emotionalAPI Impostor Syndrome

Slide 39

Slide 39 text

@emotionalAPI Interviewed, Hired, Fired

Slide 40

Slide 40 text

@emotionalAPI Manage & Mentor

Slide 41

Slide 41 text

http://frontside.io/ Senior Software Developer

Slide 42

Slide 42 text

More Details

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

@emotionalAPI Talking

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

@emotionalAPI

Slide 47

Slide 47 text

@emotionalAPI Try Lots of Words

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

@emotionalAPI It’s Just Energy

Slide 50

Slide 50 text

@emotionalAPI It’s Just Energy Dancing Singing Exercise

Slide 51

Slide 51 text

@emotionalAPI They Don’t Mean Anything

Slide 52

Slide 52 text

@emotionalAPI You’re Human

Slide 53

Slide 53 text

@emotionalAPI Fear of Loss of Control

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

@emotionalAPI There Is No Should

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

@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

Slide 61

Slide 61 text

@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…”)

Slide 62

Slide 62 text

@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/

Slide 63

Slide 63 text

A Journey Through Anger

Slide 64

Slide 64 text

@emotionalAPI

Slide 65

Slide 65 text

@emotionalAPI GET '/events/something/trivial' ⬇ POST ‘/feels/anger'

Slide 66

Slide 66 text

@emotionalAPI Do

Slide 67

Slide 67 text

@emotionalAPI Safe Space

Slide 68

Slide 68 text

@emotionalAPI Throw A Fit

Slide 69

Slide 69 text

@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”))

Slide 70

Slide 70 text

A Journey Through Sadness

Slide 71

Slide 71 text

@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’

Slide 72

Slide 72 text

@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

Slide 73

Slide 73 text

@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

Slide 74

Slide 74 text

@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

Slide 75

Slide 75 text

@emotionalAPI Daddy Issues

Slide 76

Slide 76 text

@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’

Slide 77

Slide 77 text

@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’

Slide 78

Slide 78 text

Cry

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

@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

Slide 81

Slide 81 text

@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

Slide 82

Slide 82 text

@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

Slide 83

Slide 83 text

@emotionalAPI Baggage

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

@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

Slide 86

Slide 86 text

@emotionalAPI Self Awareness (Monitoring)

Slide 87

Slide 87 text

@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)

Slide 88

Slide 88 text

@emotionalAPI Best Practices

Slide 89

Slide 89 text

@emotionalAPI Pick One Thing

Slide 90

Slide 90 text

@emotionalAPI No overnight success

Slide 91

Slide 91 text

@emotionalAPI You’re Never Done

Slide 92

Slide 92 text

@emotionalAPI It’s OK

Slide 93

Slide 93 text

Soft Skills Super Hard Skills

Slide 94

Slide 94 text

@emotionalAPI DEEP BREATH

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

@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