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

10 Years Later

10 Years Later

Back in a day I used to think that 10 years of experience is a lot. Today it feels like just a number. I’ll talk about how my perspective on writing code, working in teams, talking to users, etc. has changed over time. If you’re still at the start of your career that may be my advice for you, if you’re in the 10+ club let’s compare the notes.

More Decks by Андрей Листочкин (Andrey Listochkin)

Other Decks in Programming

Transcript

  1. 10 years later

    View Slide

  2. @listochkin

    View Slide

  3. I <3 Ruby

    View Slide

  4. ICFP Contest
    Teams
    3 days
    1 problem
    Very interesting
    2011 2012

    View Slide

  5. RubyC talk
    2015

    View Slide

  6. <10 days!

    View Slide

  7. Offered:
    Software Architect
    at a RoR project
    <10 days of Ruby

    View Slide

  8. Go beats Ruby

    View Slide

  9. Offered:
    Software Architect
    ZERO days of Go

    View Slide

  10. <3
    Ruby
    Ruby Community
    RobyMeditation

    View Slide

  11. 2007

    View Slide

  12. 10+

    View Slide

  13. 1 day of Ruby per year?

    View Slide

  14. 10 years
    Long?
    Short?

    View Slide

  15. 2007
    iPhone
    IE, Opera, Firefox
    PHP, ASP.NET

    View Slide

  16. Framework wars
    Struts vs Tapestry vs Stripes vs Wicket
    Django vs Pylons vs TurboGears
    Rails vs Camping vs Merb vs Ramaze
    Prototype vs Dojo vs jQuery

    View Slide

  17. 10 years later
    we still have framework wars
    Rails vs Hanami vs dry-rb
    React won … but Vue, Svetle

    View Slide

  18. Young
    Impressionable

    View Slide

  19. Sponge

    View Slide

  20. Before internet

    View Slide

  21. All paper books I could find
    All Turbo Pascal Docs
    All Delphy Docs
    Borland jBuilder + JDK + J2EE
    Mandrake man pages and Books
    (Picaxe 1st ed)

    View Slide

  22. Just for Fun
    The Cathedral and the Bazaar
    Burroughs B5000 Oral History
    The Mythical Man Month

    View Slide

  23. 2007 - my first internet year

    View Slide

  24. 1st Google rejection

    View Slide

  25. Blogs

    View Slide

  26. Steve Yegge
    Joel Spolsky
    Kenneth Downs
    Patrick McKenzie
    Bill Venners
    Why the Lucky Stiff

    View Slide

  27. So much to learn
    So little time

    View Slide

  28. 2-3 hours to close JIRA
    tickets
    10+ hours of reading

    View Slide

  29. Programming
    Architecture
    Engineering practices

    View Slide

  30. Blogs

    View Slide

  31. Joel
    Interviews

    View Slide

  32. Kenneth
    Software lives and dies
    Databases stay forever

    View Slide

  33. Steve
    Languages matter
    JavaScript is the future

    View Slide

  34. Patrick
    Charge more
    Ask for more

    View Slide

  35. “Middle”

    View Slide

  36. 800+ engineers

    View Slide

  37. “Priorities”

    View Slide

  38. Sell your idea

    View Slide

  39. Fight for mindshare

    View Slide

  40. “Convince your boss”

    View Slide

  41. “Soft skills”

    View Slide

  42. 2007-2008
    Bank
    Users next door
    Instant gratification

    View Slide

  43. 2008-2010
    Opera
    Hundreds of Engineers
    2+ years
    3 days of press

    View Slide

  44. 100m+ users of my code
    People on the street
    using my app

    View Slide

  45. I want to talk to users

    View Slide

  46. Since 2008
    Server-side is DONE

    View Slide

  47. Router + Middleware
    DTO
    Controllers
    Repositories
    Entities
    R+E ≈ ActiveRecord

    View Slide

  48. UI turmoil

    View Slide

  49. Flex
    Silverlight
    HTML5

    View Slide

  50. Dojo Extjs YUI GCL GWT
    Air RIA Backbone Spine Batman
    SproutCore Cappuccino
    Angular Knockout Canjs
    jQuery UI & Mobile
    Titanium RubyMotion Xamarin

    View Slide

  51. Users speak UI
    Customers speak UI
    Business speaks UI

    View Slide

  52. $€ UI ¥£

    View Slide

  53. Leadership
    Mentoring

    View Slide

  54. Conference talks
    Workshops
    Community work

    View Slide

  55. I used to hear “NO”

    View Slide

  56. Now I’m telling “NO”

    View Slide

  57. My
    “learning how to lead”
    strategy

    View Slide

  58. Watch what others do

    View Slide

  59. Do the opposite

    View Slide

  60. Give the hardest tasks to
    least experienced people

    View Slide

  61. Give them ownership

    View Slide

  62. Give them freedom

    View Slide

  63. Sense of
    Pride & Accomplishment

    View Slide

  64. Boring Moot tasks go to me

    View Slide

  65. Team Motivation
    =
    My Motivation

    View Slide

  66. Some of my junior people hated me

    View Slide

  67. They got over it :)

    View Slide

  68. Following
    Loyalty
    Commitment
    Cohesion

    View Slide

  69. Years later:
    “Good Tech Lead Bad Tech Lead”

    View Slide

  70. Seniority?
    2011
    2012

    View Slide

  71. 3rd Google email
    I haven’t replied

    View Slide

  72. Full cycle:
    Specify
    Implement
    Launch
    Measure impact
    Measure revenue

    View Slide

  73. I made it
    With it we earned $X

    View Slide

  74. Architecture?
    Engineering Practices?

    View Slide

  75. Optimize for Change

    View Slide

  76. 3 month of IE8 profiling

    View Slide

  77. I’ve seen some

    View Slide

  78. View Slide

  79. View Slide

  80. Code can rot
    Developers may suffer

    View Slide

  81. Making the impossible possible

    View Slide

  82. View Slide

  83. Not something people expect of
    me

    View Slide

  84. Older lessons come back to me

    View Slide

  85. Data > Code

    View Slide

  86. Survivability bias in tech

    View Slide

  87. The older the tech that is
    still in use
    the more likely it will be
    used
    50 years from now

    View Slide

  88. Shell
    SQL
    C
    Vim
    PCRE

    View Slide

  89. Company Platforms

    View Slide

  90. IBM
    Sun
    Oracle
    Microsoft
    Apple
    SalesForce
    Automatic
    Google

    View Slide

  91. Most developers are
    Developers

    View Slide

  92. Some companies are very good
    at maintaining their platform

    View Slide

  93. Apple
    40+ years
    Transitions: few, smooth

    View Slide

  94. Microsoft / Google
    Internal conflicts bleed
    through
    Too many half baked
    revolutions

    View Slide

  95. Hard to stay independent
    <10%

    View Slide

  96. Unix
    Ruby / Perl / Python G
    C/C++ MS
    JavaScript FB & G

    View Slide

  97. Violent Independence

    View Slide

  98. Java => JS
    IJ => Sublime / Vim
    YUI => Ember

    View Slide

  99. 10X Developer

    View Slide

  100. 10+ / 20+ Experienced
    Few hours

    10 people in a week

    View Slide

  101. I make fewer bugs
    I use more tools to catch bugs
    earlier
    I can predict bugs
    I can predict features
    My code is ugly yet extendible

    View Slide

  102. Software
    X% code
    Y% communication

    View Slide

  103. X↓ Y↑

    View Slide

  104. I talk

    View Slide

  105. Requirements
    Scenarios
    Context
    Roadmaps

    View Slide

  106. “Why?”

    View Slide

  107. I talk
    And people listen to me

    View Slide

  108. My features
    My ideas
    My product direction
    My accomplishments
    My pride

    View Slide

  109. Patrick
    Don't Call Yourself A
    Programmer

    View Slide

  110. MVP

    View Slide

  111. A good lawyer
    A good doctor
    A good financial advisor

    View Slide

  112. Junior
    Mid
    Senior

    View Slide

  113. Junior
    Ideas
    Reading a lot
    Apply very few lessons

    View Slide

  114. Paradox

    View Slide

  115. As a junior I learned all
    things I’ve talked about today

    View Slide

  116. Yet I was able to apply
    only a handful of them

    View Slide

  117. Mid
    Making choices
    Opportunities

    View Slide

  118. Different people
    Choose different paths

    View Slide

  119. Early soft skills
    vs
    No soft skills

    View Slide

  120. Fascinating
    Same background
    Different outcomes

    View Slide

  121. Senior
    Solidifying beliefs
    Making a difference

    View Slide

  122. Next 10 years?

    View Slide

  123. 20+

    View Slide

  124. Jobs => Topics
    Stories => Sagas
    Experience => Wisdom

    View Slide

  125. Programming is never boring

    View Slide

  126. I’m looking forward
    to my next 10 years

    View Slide