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

Developing People - SymfonyLive Berlin 2014

Developing People - SymfonyLive Berlin 2014

As time goes by, people grow and evolve just like software. Are you going to improve, continuously testing yourself and adopting the latest best practices or will you be the bloated, crufty legacy code that nobody wants to touch? Luckily we can study the successes and failures of the brave pioneers that have gone before us. We'll explore a list of personal favourites collected over the years spanning mailing list legends, dark C code voodoo, and old school hardware. Let's decouple the best traits from other developers and hack together our very own ultimate developer.

Rowan Merewood

October 31, 2014
Tweet

More Decks by Rowan Merewood

Other Decks in Technology

Transcript

  1. A SYMFONY LIVE BERLIN 2014 PRODUCTION
    A SYMFONY LIVE BERLIN 2014 PRODUCTION
    DEVELOPING
    DEVELOPING
    PEOPLE
    PEOPLE
    The Director's Cut
    The Director's Cut
    ROWAN MEREWOOD PRESENTS
    ROWAN MEREWOOD PRESENTS

    View Slide

  2. BIG PHILOSOPHICAL QUESTIONS
    BIG PHILOSOPHICAL QUESTIONS

    View Slide

  3. BIG PHILOSOPHICAL QUESTIONS
    BIG PHILOSOPHICAL QUESTIONS

    “Who am I and why am I here?”
    Who am I and why am I here?”

    View Slide

  4. BIG PHILOSOPHICAL QUESTIONS
    BIG PHILOSOPHICAL QUESTIONS

    “Who am I and why am I here?”
    Who am I and why am I here?”
    Twitter:
    Twitter: @rowan_m
    @rowan_m
    Blog:
    Blog: http://merewood.org
    http://merewood.org
    GitHub:
    GitHub: https://github.com/rowan-m
    https://github.com/rowan-m
    Joind.in:
    Joind.in: http://joind.in/user/view/118
    http://joind.in/user/view/118
    IMDb:
    IMDb: http://www.imdb.com/name/nm1412348
    http://www.imdb.com/name/nm1412348
    Google+:
    Google+: https://google.com/+RowanMerewood
    https://google.com/+RowanMerewood

    View Slide

  5. GROWTH HACKING
    GROWTH HACKING

    View Slide

  6. GROWTH HACKING
    GROWTH HACKING
    verb
    verb
    1. To chop up developers into bits
    1. To chop up developers into bits
    and select the best parts to build a
    and select the best parts to build a
    better one.
    better one.

    “We need to hire more developers
    We need to hire more developers
    because Rowan went on a growth
    because Rowan went on a growth
    hacking spree again.”
    hacking spree again.”

    View Slide

  7. OUR SAD AVERAGE DEV
    OUR SAD AVERAGE DEV

    View Slide

  8. OUR SAD AVERAGE DEV
    OUR SAD AVERAGE DEV

    “Perfection is achieved, not when
    Perfection is achieved, not when
    there is nothing more to add, but
    there is nothing more to add, but
    when there is nothing left to take
    when there is nothing left to take
    away.”
    away.”
    Antoine de Saint-Exupéry
    Antoine de Saint-Exupéry

    View Slide

  9. NO CAPES
    NO CAPES

    View Slide

  10. NO CAPES
    NO CAPES
    S
    S

    View Slide

  11. NO CAPES
    NO CAPES
    You are never going
    You are never going
    to be the best at everything
    to be the best at everything
    You don't need to burn out trying
    You don't need to burn out trying
    Other people will have to save you
    Other people will have to save you
    S
    S

    View Slide

  12. YOUR EDITOR IS PART OF YOU
    YOUR EDITOR IS PART OF YOU

    View Slide

  13. YOUR EDITOR IS PART OF YOU
    YOUR EDITOR IS PART OF YOU
    Tools are there to achieve goals
    Tools are there to achieve goals
    You are a professional,
    You are a professional,
    your tools are complicated
    your tools are complicated

    View Slide

  14. YOUR EDITOR IS PART OF YOU
    YOUR EDITOR IS PART OF YOU
    Tools are there to achieve goals
    Tools are there to achieve goals
    You are a professional,
    You are a professional,
    your tools are complicated
    your tools are complicated

    View Slide

  15. YOUR EDITOR IS PART OF YOU
    YOUR EDITOR IS PART OF YOU
    Tools are there to achieve goals
    Tools are there to achieve goals
    You are a professional,
    You are a professional,
    your tools are complicated
    your tools are complicated
    ^
    ^
    EMACS Hand
    EMACS Hand

    View Slide

  16. HOLE HAWG
    HOLE HAWG

    View Slide

  17. HOLE HAWG
    HOLE HAWG

    “I never blamed the Hole Hawg; I blamed myself. The Hole
    I never blamed the Hole Hawg; I blamed myself. The Hole
    Hawg is dangerous because it does exactly what you tell it to.
    Hawg is dangerous because it does exactly what you tell it to.
    Now I view them all with such contempt that I do not even
    Now I view them all with such contempt that I do not even
    consider them to be real drills--merely scaled-up toys
    consider them to be real drills--merely scaled-up toys
    designed to exploit the self-delusional tendencies of soft-
    designed to exploit the self-delusional tendencies of soft-
    handed homeowners who want to believe that they have
    handed homeowners who want to believe that they have
    purchased an actual tool”
    purchased an actual tool”
    Neal Stephenson
    Neal Stephenson
    http://www.team.net/mjb/hawg.html
    http://www.team.net/mjb/hawg.html

    View Slide

  18. VIM
    VIM

    View Slide

  19. VIM
    VIM

    View Slide

  20. VIM
    VIM

    View Slide

  21. VIM
    VIM

    View Slide

  22. VIM
    VIM

    View Slide

  23. VIM
    VIM

    View Slide

  24. DELIBERATE PRACTICE
    DELIBERATE PRACTICE

    View Slide

  25. DELIBERATE PRACTICE
    DELIBERATE PRACTICE

    View Slide

  26. DELIBERATE PRACTICE
    DELIBERATE PRACTICE
    Kata (
    Kata ( 型
    型 or
    or 形
    形 literally: "form")
    literally: "form")
    Deliberate, controlled, repeated
    Deliberate, controlled, repeated

    View Slide

  27. DELIBERATE PRACTICE
    DELIBERATE PRACTICE
    Kata (
    Kata ( 型
    型 or
    or 形
    形 literally: "form")
    literally: "form")
    Deliberate, controlled, repeated
    Deliberate, controlled, repeated
    Code Kata –
    Code Kata – Dave Thomas
    Dave Thomas
    http://codekata.pragprog.com/2007/01/code_kata_backg.html
    http://codekata.pragprog.com/2007/01/code_kata_backg.html
    TDD Kata –
    TDD Kata – Roy Osherove
    Roy Osherove
    http://osherove.com/tdd-kata-1/
    http://osherove.com/tdd-kata-1/

    View Slide

  28. Create a simple String calculator with a method:
    Create a simple String calculator with a method:
    int Add(string numbers)
    int Add(string numbers)
    1.
    1. The method can take 0, 1 or 2 numbers, and will return their
    The method can take 0, 1 or 2 numbers, and will return their
    sum (for an empty string it will return
    sum (for an empty string it will return 0
    0) for example “” or “
    ) for example “” or “1
    1” or
    ” or

    “1,2
    1,2”

    2.
    2. Start with the simplest test case of an empty string and move to
    Start with the simplest test case of an empty string and move to
    1 and two numbers
    1 and two numbers
    3.
    3. Remember to solve things as simply as possible so that you
    Remember to solve things as simply as possible so that you
    force yourself to write tests you did not think about
    force yourself to write tests you did not think about
    4.
    4. Remember to refactor after each passing test
    Remember to refactor after each passing test
    TDD KATA
    TDD KATA

    View Slide

  29. TDD KATA
    TDD KATA

    View Slide

  30. TDD KATA
    TDD KATA

    View Slide

  31. TDD KATA
    TDD KATA

    View Slide

  32. MASTER YOUR CRAFT
    MASTER YOUR CRAFT

    View Slide

  33. MASTER YOUR CRAFT
    MASTER YOUR CRAFT

    View Slide

  34. MASTER YOUR CRAFT
    MASTER YOUR CRAFT
    Dreyfus model of skill acquisition
    Dreyfus model of skill acquisition
    Novice
    Novice ⬎

    Beginner
    Beginner ⬎

    Competent
    Competent ⬎

    Proficient
    Proficient ⬎

    Expert
    Expert

    View Slide

  35. MASTER YOUR CRAFT
    MASTER YOUR CRAFT
    1.
    1.Innocent
    Innocent
    2.
    2.Exposed
    Exposed
    3.
    3.Apprentice
    Apprentice
    4.
    4.Practitioner
    Practitioner
    5.
    5.Journeyman
    Journeyman
    6.
    6.Master
    Master
    7.
    7.Researcher
    Researcher
    The Seven Stages
    The Seven Stages
    Of Expertise In
    Of Expertise In
    Software Engineering
    Software Engineering
    http://www.wayland-informatics.com/The%20Seven%20Stages%20of%20Expertise%20in%20Software.htm
    http://www.wayland-informatics.com/The%20Seven%20Stages%20of%20Expertise%20in%20Software.htm

    View Slide

  36. MASTER YOUR CRAFT
    MASTER YOUR CRAFT
    http://www.wayland-informatics.com/The%20Seven%20Stages%20of%20Expertise%20in%20Software.htm
    http://www.wayland-informatics.com/The%20Seven%20Stages%20of%20Expertise%20in%20Software.htm
    Productivity
    Productivity
    Stage
    Stage
    1
    1 6
    6
    5
    5
    4
    4
    3
    3
    2
    2 7
    7

    View Slide

  37. MEASURE WHAT MATTERS
    MEASURE WHAT MATTERS

    View Slide

  38. MEASURE WHAT MATTERS
    MEASURE WHAT MATTERS
    X
    X

    View Slide

  39. MEASURE WHAT MATTERS
    MEASURE WHAT MATTERS
    Measure systems
    Measure systems
    Don't measure people
    Don't measure people
    (they'll just mess it up)
    (they'll just mess it up)
    X
    X

    View Slide

  40. MEASURE WHAT MATTERS
    MEASURE WHAT MATTERS
    Measure systems
    Measure systems
    Don't measure people
    Don't measure people
    (they'll just mess it up)
    (they'll just mess it up)
    A metric helps you achieve a goal,
    A metric helps you achieve a goal,
    don't chase the metric if you achieve the goal.
    don't chase the metric if you achieve the goal.
    X
    X

    View Slide


  41. “T
    T”
    ” SHAPED PEOPLE
    SHAPED PEOPLE

    View Slide


  42. “T
    T”
    ” SHAPED PEOPLE
    SHAPED PEOPLE

    View Slide


  43. “T
    T”
    ” SHAPED PEOPLE
    SHAPED PEOPLE
    Valve Software – Employee Handbook
    Valve Software – Employee Handbook
    http://www.valvesoftware.com/jobs/
    http://www.valvesoftware.com/jobs/

    View Slide


  44. “T
    T”
    ” SHAPED PEOPLE
    SHAPED PEOPLE

    View Slide

  45. NOT THE SHARPEST TOOL
    NOT THE SHARPEST TOOL

    View Slide

  46. NOT THE SHARPEST TOOL
    NOT THE SHARPEST TOOL
    If you're the smartest person in the room,
    If you're the smartest person in the room,
    you're probably not learning anything
    you're probably not learning anything

    View Slide

  47. THE SHARPEST TOOL
    THE SHARPEST TOOL

    View Slide

  48. NOT THE SHARPEST TOOL
    NOT THE SHARPEST TOOL

    View Slide

  49. NOT THE SHARPEST TOOL
    NOT THE SHARPEST TOOL

    View Slide

  50. NOT THE SHARPEST TOOL
    NOT THE SHARPEST TOOL

    “It took working with John Carmack and other
    It took working with John Carmack and other
    high productivity programmers and admitting
    high productivity programmers and admitting
    that they were way more productive than me
    that they were way more productive than me
    before I really understood how much more
    before I really understood how much more
    productive I could be.”
    productive I could be.”
    Brian Hook
    Brian Hook
    http://bookofhook.blogspot.co.uk/2013/03/smart-guy-productivity-pitfalls.html
    http://bookofhook.blogspot.co.uk/2013/03/smart-guy-productivity-pitfalls.html

    View Slide

  51. THE SHARPEST TOOL
    THE SHARPEST TOOL
    John Carmack – id Software
    John Carmack – id Software

    View Slide

  52. THE SHARPEST TOOL
    THE SHARPEST TOOL
    John Carmack – id Software
    John Carmack – id Software
    float
    float Q_rsqrt
    Q_rsqrt(
    ( float
    float number
    number )
    )
    {
    {
    long
    long i
    i;
    ;
    float
    float x2
    x2,
    , y
    y;
    ;
    const float
    const float threehalfs
    threehalfs =
    = 1.5F
    1.5F;
    ;
    x2
    x2 =
    = number
    number *
    * 0.5F
    0.5F;
    ;
    y
    y =
    = number
    number;
    ;
    i
    i =
    = *
    * (
    ( long
    long *
    * )
    ) &y
    &y;
    ; // evil floating point bit level hacking
    // evil floating point bit level hacking
    i
    i =
    = 0x5f3759df
    0x5f3759df - (
    - ( i
    i >>
    >> 1
    1 );
    ); // what the fuck?
    // what the fuck?
    y
    y =
    = *
    * (
    ( float
    float *
    * )
    ) &
    &i
    i;
    ;
    y
    y =
    = y
    y *
    * (
    ( threehalfs
    threehalfs - (
    - ( x2
    x2 *
    * y
    y *
    * y
    y ) );
    ) ); // 1st iteration
    // 1st iteration
    // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
    // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
    return
    return y
    y;
    ;
    }
    }

    View Slide

  53. THE SHARPEST TOOL
    THE SHARPEST TOOL
    John Carmack – id Software
    John Carmack – id Software
    float
    float Q_rsqrt
    Q_rsqrt(
    ( float
    float number
    number )
    )
    {
    {
    long
    long i
    i;
    ;
    float
    float x2
    x2,
    , y
    y;
    ;
    const float
    const float threehalfs
    threehalfs =
    = 1.5F
    1.5F;
    ;
    x2
    x2 =
    = number
    number *
    * 0.5F
    0.5F;
    ;
    y
    y =
    = number
    number;
    ;
    i
    i =
    = *
    * (
    ( long
    long *
    * )
    ) &y
    &y;
    ; // evil floating point bit level hacking
    // evil floating point bit level hacking
    i
    i =
    = 0x5f3759df
    0x5f3759df - (
    - ( i
    i >>
    >> 1
    1 );
    ); // what the fuck?
    // what the fuck?
    y
    y =
    = *
    * (
    ( float
    float *
    * )
    ) &
    &i
    i;
    ;
    y
    y =
    = y
    y *
    * (
    ( threehalfs
    threehalfs - (
    - ( x2
    x2 *
    * y
    y *
    * y
    y ) );
    ) ); // 1st iteration
    // 1st iteration
    // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
    // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
    return
    return y
    y;
    ;
    }
    }
    http://www.beyond3d.com/content/articles/8/
    http://www.beyond3d.com/content/articles/8/

    View Slide

  54. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    View Slide

  55. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    View Slide

  56. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    “The Dude abides.”
    The Dude abides.”

    View Slide

  57. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    “The Dude abides.”
    The Dude abides.”
    Being passionate and authoritative
    Being passionate and authoritative
    is not the same as being an angry asshole
    is not the same as being an angry asshole

    View Slide

  58. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    View Slide

  59. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    View Slide

  60. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    “To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    CRAP even if it didn't break applications.”
    CRAP even if it didn't break applications.”

    View Slide

  61. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    “To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    CRAP even if it didn't break applications.”
    CRAP even if it didn't break applications.”

    “Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    garbage and idiocy”
    garbage and idiocy”

    View Slide

  62. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    “To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    CRAP even if it didn't break applications.”
    CRAP even if it didn't break applications.”

    “Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    garbage and idiocy”
    garbage and idiocy”

    “And you've shown yourself to not be competent in this issue, so I'll
    And you've shown yourself to not be competent in this issue, so I'll
    apply it directly and immediately myself.”
    apply it directly and immediately myself.”

    View Slide

  63. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    “To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    CRAP even if it didn't break applications.”
    CRAP even if it didn't break applications.”

    “Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    garbage and idiocy”
    garbage and idiocy”

    “And you've shown yourself to not be competent in this issue, so I'll
    And you've shown yourself to not be competent in this issue, so I'll
    apply it directly and immediately myself.”
    apply it directly and immediately myself.”

    “Fix your f*cking "compliance tool", because it is obviously broken.”
    Fix your f*cking "compliance tool", because it is obviously broken.”

    View Slide

  64. A DIFFERENT ATTITUDE
    A DIFFERENT ATTITUDE

    “Mauro, SHUT THE FUCK UP!”
    Mauro, SHUT THE FUCK UP!”

    “To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    To make matters worse, commit f0ed2ce840b3 is clearly total and utter
    CRAP even if it didn't break applications.”
    CRAP even if it didn't break applications.”

    “Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
    garbage and idiocy”
    garbage and idiocy”

    “And you've shown yourself to not be competent in this issue, so I'll
    And you've shown yourself to not be competent in this issue, so I'll
    apply it directly and immediately myself.”
    apply it directly and immediately myself.”

    “Fix your f*cking "compliance tool", because it is obviously broken.”
    Fix your f*cking "compliance tool", because it is obviously broken.”
    Linus Torvalds
    Linus Torvalds
    https://lkml.org/lkml/2012/12/23/75
    https://lkml.org/lkml/2012/12/23/75

    View Slide

  65. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    View Slide

  66. ADJUST YOUR ATTITUDE
    ADJUST YOUR ATTITUDE

    “There's a grocery store near my house that
    There's a grocery store near my house that
    I don't like. It's small, dark, and dirty, and it
    I don't like. It's small, dark, and dirty, and it
    just makes me uncomfortable. So I never go
    just makes me uncomfortable. So I never go
    there. It doesn't make me angry, it doesn't
    there. It doesn't make me angry, it doesn't
    offend me, it's just not a place I want to be;
    offend me, it's just not a place I want to be;
    there are other grocery stores around that I
    there are other grocery stores around that I
    like better. It's not worth my energy to try
    like better. It's not worth my energy to try
    and change the place.”
    and change the place.”
    Elizabeth Naramore
    Elizabeth Naramore
    http://naramore.net/blog/uncomfortable
    http://naramore.net/blog/uncomfortable

    View Slide

  67. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD

    View Slide

  68. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD

    View Slide

  69. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD
    Being rational and accepting
    Being rational and accepting
    does not mean giving up your principles
    does not mean giving up your principles

    View Slide

  70. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD
    Being rational and accepting
    Being rational and accepting
    does not mean giving up your principles
    does not mean giving up your principles
    Attack ideas, not people
    Attack ideas, not people

    View Slide

  71. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD
    Being rational and accepting
    Being rational and accepting
    does not mean giving up your principles
    does not mean giving up your principles
    Deliver bad news early
    Deliver bad news early

    View Slide

  72. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD
    Being rational and accepting
    Being rational and accepting
    does not mean giving up your principles
    does not mean giving up your principles
    Learn to say “no”
    Learn to say “no”

    View Slide

  73. SPEAK OUT AND BE HEARD
    SPEAK OUT AND BE HEARD
    Being rational and accepting
    Being rational and accepting
    does not mean giving up your principles
    does not mean giving up your principles
    Ask the DFQs
    Ask the DFQs

    View Slide

  74. JOIN THE COMMUNITY
    JOIN THE COMMUNITY

    View Slide

  75. JOIN THE COMMUNITY
    JOIN THE COMMUNITY

    View Slide

  76. JOIN THE COMMUNITY
    JOIN THE COMMUNITY
    Ok, you can be a hero – just not on your own
    Ok, you can be a hero – just not on your own

    View Slide

  77. JOIN THE COMMUNITY
    JOIN THE COMMUNITY
    Conferences
    Conferences
    Blogs
    Blogs
    Podcasts
    Podcasts
    Mailing lists
    Mailing lists
    Bug reports
    Bug reports
    User groups
    User groups
    Mentoring
    Mentoring
    Patches
    Patches
    Pull requests
    Pull requests
    Adding tests
    Adding tests
    Money
    Money
    Pizza and beer
    Pizza and beer
    Equipment
    Equipment
    Build RCs
    Build RCs
    Invest in employees
    Invest in employees
    Test-fests
    Test-fests
    Sponsor stuff
    Sponsor stuff
    Buy subscriptions
    Buy subscriptions
    Ok, you can be a hero – just not on your own
    Ok, you can be a hero – just not on your own

    View Slide

  78. JOIN THE COMMUNITY
    JOIN THE COMMUNITY
    Conferences
    Conferences
    Blogs
    Blogs
    Podcasts
    Podcasts
    Mailing lists
    Mailing lists
    Bug reports
    Bug reports
    User groups
    User groups
    Mentoring
    Mentoring
    Patches
    Patches
    Pull requests
    Pull requests
    Adding tests
    Adding tests
    Money
    Money
    Pizza and beer
    Pizza and beer
    Equipment
    Equipment
    Build RCs
    Build RCs
    Invest in employees
    Invest in employees
    Test-fests
    Test-fests
    Sponsor stuff
    Sponsor stuff
    Buy subscriptions
    Buy subscriptions
    Ok, you can be a hero – just not on your own
    Ok, you can be a hero – just not on your own
    WRITE CODE
    WRITE CODE

    View Slide

  79. ENJOY WHAT YOU DO
    ENJOY WHAT YOU DO

    View Slide

  80. ENJOY WHAT YOU DO
    ENJOY WHAT YOU DO

    View Slide

  81. ENJOY WHAT YOU DO
    ENJOY WHAT YOU DO

    “Let's put a smile on that face.”
    Let's put a smile on that face.”

    View Slide

  82. ENJOY WHAT YOU DO
    ENJOY WHAT YOU DO

    “Let's put a smile on that face.”
    Let's put a smile on that face.”
    This is a career, a profession, a life-style choice,
    This is a career, a profession, a life-style choice,
    not just a 9 'til 5 job
    not just a 9 'til 5 job

    View Slide

  83. Could this Dev...
    Could this Dev...
    Be you?
    Be you?

    View Slide

  84. HTTPS://JOIND.IN/12576
    HTTPS://JOIND.IN/12576
    Thank you !
    Thank you !
    GO AND BE AWESOME
    GO AND BE AWESOME
    MANNEQUIN FROM
    MANNEQUIN FROM DIRECTMANNEQUINS.CO.UK
    DIRECTMANNEQUINS.CO.UK - NO MANNEQUINS WERE HARMED IN THE MAKING OF THIS PRESENTATION.
    - NO MANNEQUINS WERE HARMED IN THE MAKING OF THIS PRESENTATION.

    View Slide