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.

Transcript

  1. 10 years later

  2. @listochkin

  3. I <3 Ruby

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

    2012
  5. RubyC talk 2015

  6. <10 days!

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

    Ruby
  8. Go beats Ruby

  9. Offered: Software Architect ZERO days of Go

  10. <3 Ruby Ruby Community RobyMeditation

  11. 2007

  12. 10+

  13. 1 day of Ruby per year?

  14. 10 years Long? Short?

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

  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
  17. 10 years later we still have framework wars Rails vs

    Hanami vs dry-rb React won … but Vue, Svetle
  18. Young Impressionable

  19. Sponge

  20. Before internet

  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)
  22. Just for Fun The Cathedral and the Bazaar Burroughs B5000

    Oral History The Mythical Man Month
  23. 2007 - my first internet year

  24. 1st Google rejection

  25. Blogs

  26. Steve Yegge Joel Spolsky Kenneth Downs Patrick McKenzie Bill Venners

    Why the Lucky Stiff
  27. So much to learn So little time

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

  29. Programming Architecture Engineering practices

  30. Blogs

  31. Joel Interviews

  32. Kenneth Software lives and dies Databases stay forever

  33. Steve Languages matter JavaScript is the future

  34. Patrick Charge more Ask for more

  35. “Middle”

  36. 800+ engineers

  37. “Priorities”

  38. Sell your idea

  39. Fight for mindshare

  40. “Convince your boss”

  41. “Soft skills”

  42. 2007-2008 Bank Users next door Instant gratification

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

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

    my app
  45. I want to talk to users

  46. Since 2008 Server-side is DONE

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

  48. UI turmoil

  49. Flex Silverlight HTML5

  50. Dojo Extjs YUI GCL GWT Air RIA Backbone Spine Batman

    SproutCore Cappuccino Angular Knockout Canjs jQuery UI & Mobile Titanium RubyMotion Xamarin
  51. Users speak UI Customers speak UI Business speaks UI

  52. $€ UI ¥£

  53. Leadership Mentoring

  54. Conference talks Workshops Community work

  55. I used to hear “NO”

  56. Now I’m telling “NO”

  57. My “learning how to lead” strategy

  58. Watch what others do

  59. Do the opposite

  60. Give the hardest tasks to least experienced people

  61. Give them ownership

  62. Give them freedom

  63. Sense of Pride & Accomplishment

  64. Boring Moot tasks go to me

  65. Team Motivation = My Motivation

  66. Some of my junior people hated me

  67. They got over it :)

  68. Following Loyalty Commitment Cohesion

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

  70. Seniority? 2011 2012

  71. 3rd Google email I haven’t replied

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

  73. I made it With it we earned $X

  74. Architecture? Engineering Practices?

  75. Optimize for Change

  76. 3 month of IE8 profiling

  77. I’ve seen some

  78. None
  79. None
  80. Code can rot Developers may suffer

  81. Making the impossible possible

  82. None
  83. Not something people expect of me

  84. Older lessons come back to me

  85. Data > Code

  86. Survivability bias in tech

  87. The older the tech that is still in use the

    more likely it will be used 50 years from now
  88. Shell SQL C Vim PCRE

  89. Company Platforms

  90. IBM Sun Oracle Microsoft Apple SalesForce Automatic Google

  91. Most developers are <Company> Developers

  92. Some companies are very good at maintaining their platform

  93. Apple 40+ years Transitions: few, smooth

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

    baked revolutions
  95. Hard to stay independent <10%

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

    FB & G
  97. Violent Independence

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

    Ember
  99. 10X Developer

  100. 10+ / 20+ Experienced Few hours ≈ 10 people in

    a week
  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
  102. Software X% code Y% communication

  103. X↓ Y↑

  104. I talk

  105. Requirements Scenarios Context Roadmaps

  106. “Why?”

  107. I talk And people listen to me

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

    pride
  109. Patrick Don't Call Yourself A Programmer

  110. MVP

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

  112. Junior Mid Senior

  113. Junior Ideas Reading a lot Apply very few lessons

  114. Paradox

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

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

    them
  117. Mid Making choices Opportunities

  118. Different people Choose different paths

  119. Early soft skills vs No soft skills

  120. Fascinating Same background Different outcomes

  121. Senior Solidifying beliefs Making a difference

  122. Next 10 years?

  123. 20+

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

  125. Programming is never boring

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