Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to become Senior iOS Engineer

How to become Senior iOS Engineer

- Why it’s needed
- Definition of Senior iOS Engineer
- How to achieve
- Toolset from 2016

Petro Korienev

September 04, 2016
Tweet

More Decks by Petro Korienev

Other Decks in Programming

Transcript

  1. #se2016 Petro Korienev How to become Senior iOS Engineer CONTENTS

    • Why it’s needed • Definition of Senior iOS Engineer • How to achieve • Toolset from 2016
  2. #se2016 Petro Korienev How to become Senior iOS Engineer DEFINITION

    MESS • Nobody understands requirements • Nobody can handle responsibilities • Nobody can manage efficient resources utilisation
  3. #se2016 Petro Korienev How to become Senior iOS Engineer FAKE

    SELF-CONFIDENCE • Result of isolation • Result of business model
 “money right here, right now” • Low quality - overall industry
 devaluation • Multiplicative effect
  4. #se2016 Petro Korienev How to become Senior iOS Engineer EVERYBODY

    UNHAPPY Developers are assholes Managers are assholes “Legacy code and boring tasks”
  5. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    • Defined by size and complexity tasks he can do • Defined by quality of provided solution and amount of
 “hidden costs” or “technical debt” • Defined by critical thinking • Is able to produce reliable estimations • Is able to make complete decompositions • Is able to make solid integrations • Brings value to the product • Brings technical excellence • Brings communication experience
  6. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    - SIZE AND COMPLEXITY Complexity (% of highest known) 0% 25% 50% 75% 100% Size (% of total scope) 0.5% 1% 2% 4% 8% 16% 32% 64% Junior Middle Senior
  7. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    - QUALITY • Good understanding of task => Technical debt close to zero • Good understanding of complexity => Almost zero TODOs • Well-defined requirements => Almost no bugs • Experience to distinguish between important / auxiliary => 
 Saves time to everybody in team - qa, ba, pm, designer etc.
  8. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    - CRITICAL THINKING • As little as possible is based on trust • As little as possible “to be clarified” • Pessimistic estimations • Considering all possible risks • Always sees problems
  9. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    - COMMUNICATION • Senior is outstanding communicator • Daily, grooming, retro, interview etc. • Smart escalation
  10. #se2016 Petro Korienev How to become Senior iOS Engineer SENIOR

    - DECOMPOSITION & INTEGRATION • Is able to decompose scope / solutions
 endlessly upon infinite time constraints • Is able to integrate modules of any
 complexity upon infinite time constraints • Has good balance between decomposition &
 integrations in both scope / solutions
  11. #se2016 Petro Korienev How to become Senior iOS Engineer IOS

    • Mostly closed-source (until very recent point of time) system • Completely Apple-dependent operations / development • Random backward-forward compatibility • Not much target devices, however excellent support required • Many restrictions • Great open-source and community
  12. #se2016 Petro Korienev How to become Senior iOS Engineer IOS

    - OPEN-SOURCE AND COMMUNITY • opensource.apple.com • cocoapods.org • cocoacontrols.com • Thousands of blogs and tutorials - objc.io, nshipster.com, mikeash.com, cocoanetics.org, raywenderlich.com etc.
  13. #se2016 Petro Korienev How to become Senior iOS Engineer IOS

    - DEVICES & VERSIONS • iPhone 4/s,5/c/s,6/s Plus • iPad Mini 1 - 4, 3-4, Air 1-2 • iPad Pro • iOS 7(!), 8, 9, 10(?)
  14. #se2016 Petro Korienev How to become Senior iOS Engineer IOS

    - RESTRICTIONS • FileSystem • IPC • Hardware capabilities • Background operating • etc..
  15. #se2016 Petro Korienev How to become Senior iOS Engineer IOS

    - BE UP-TO-DATE • https://developer.apple.com/videos/wwdc2016/ • https://github.com/vsouza/awesome-ios
  16. #se2016 Petro Korienev How to become Senior iOS Engineer ENGINEER

    • It’s usually painful to be an 
 engineer
  17. #se2016 Petro Korienev How to become Senior iOS Engineer ENGINEER

    vs DEVELOPER • Solve problems vs Make tasks • Understand business vs Fight business • Deliver value vs Write code • Self-managed & self-sufficient vs Chaos-driven
  18. #se2016 Petro Korienev How to become Senior iOS Engineer READ,

    WRITE, LISTEN, TALK • Read books and code • Write code, docs, blogs etc. • Listen talks at conferences. Communicate • Talk. This systematises your knowledge
  19. #se2016 Petro Korienev How to become Senior iOS Engineer READ

    CODE • Open-source libraries • Teammates pull-requests • Tutorials
  20. #se2016 Petro Korienev How to become Senior iOS Engineer WRITE

    • Experiment a lot • Short feedback loop • Write tests • Write tools
  21. #se2016 Petro Korienev How to become Senior iOS Engineer LISTEN

    • Ideas • Inspiration • Experience and cases
  22. #se2016 Petro Korienev How to become Senior iOS Engineer TALK

    • Ideal way to systematise your knowledge • Get a feedback on your content • Practice expressing your thoughts • Knowledge sharing is bidirectional
  23. #se2016 Petro Korienev How to become Senior iOS Engineer TOOLSET

    2016 • fastlane • cocoapods, carthage
  24. #se2016 Petro Korienev How to become Senior iOS Engineer ME:

    https://twitter.com/soxjke https://github.com/soxjke https://www.facebook.com/soxjke https://stackoverflow.com/users/2392973 Join our team! [email protected]