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

2 Years Challenge as Engineering Manager in Rakuma

darquro
November 19, 2020

2 Years Challenge as Engineering Manager in Rakuma

2020/11/19 「コマーステックで実現するモバイルエンジニアキャリア」

darquro

November 19, 2020
Tweet

More Decks by darquro

Other Decks in Programming

Transcript

  1. 2 Years Challenge as Engineering Manager in Rakuma The mobile

    app engineering career realize at Commerce Tech Nov 19th, 2020 Yuki Kuroda EC Incubation Development Dept. Rakuten, Inc.
  2. 2 About Me Yuki Kuroda Vice Manager Service Application Group

    C2C Service Development Section EC Incubation Development Dept. Commerce Company Engineering Manager / iOS Engineer @darquro
  3. 3 About Me 2009 2015 2016 2018 Graduated Univ. Started

    iOS App Dev.
  4. 4 Rakuma Launch July, 2012 Download 20 million (July, 2019)

    Distribution Amount ¥140 billion (Feb. 2018)
  5. 5 Rakuma Mobile Application Development Team • Around 33 years

    old • Middle or Senior Engineer
  6. Career

  7. Fellow Principal Tech Lead Tech Lead Director of Engineering Sinner

    Engineering Manager Engineering Manager Sinner Member Middle Member Junior Member Software Engineer Ladder
  8. 8 Role as Rakuma Engineering Manager Quality Improvement Service Improvement

    Technology Strategy Plan Problem Investigation & Judgement Tech Technical Member Support Human Development Team Building Engagement Management Evaluation & Feedback 1on1 Team / People Management Internal Negotiations Reporting Project & Product Management Project Member Assignment Hiring Attendance Check & Work Hour Management Various Approvals Budgeting Internal Appeal or Share External Appeal or Share Product / Organization Operation Appeal / Share
  9. 9 Contents • Daily Work as Engineering Manager • Team

    Building, Culture Development • Face own product as Mobile Engineer 2018 2020 ~ What made for my career advancement on this 2 years at Rakuten
  10. Management Tech https://www.pakutaso.com/20150609167post-5637.html

  11. Management Tech https://www.pakutaso.com/20150609167post-5637.html

  12. 12 History July, 2012 Nov, 2014 Feb, 2018

  13. 13 Culture Development Mission Vision Core Value

  14. 14 Rakuma Mobile Application Development Team 0 1 2 3

    4 5 6 7 8 9 10 2018.10 2019.01 2019.04 2019.07 2019.10 2020.01 2020.04 2020.07 2020.10 Member Count iOS Android
  15. 15 Project Management Search Experience Improvement Listing Experience Improvement Customer

    Support Experience Improvement Purchase Experience Improvement Security Support Marketing Enhancement New OS Support
  16. 16 Project Management Search Experience Improvement Listing Experience Improvement Customer

    Support Experience Improvement Purchase Experience Improvement
  17. 17 Hiring, Evaluation Hiring • Resume Screening • Tech Interview

    • Culture Match Interview • Wantedly Scouting Evaluation • Objective Setting • Evaluation & Calibration • Feedback
  18. 18 Team Management • Project Management • Project Promotion Ownership

    • Share vision • Build team each member can work independently 真⽥茂⼈ 『サーバント・リーダーシップ実践講座』 2012 中央経済社 • Hiring • Evaluation
  19. Management Tech https://www.pakutaso.com/20150609167post-5637.html

  20. 20 Develop Environment

  21. 21 Automation • Unit Test • Deploy Test App •

    Upload Release App
  22. 22 Risk Management • Release update over 7-day period using

    phased release • Feature Toggles 30% 70%
  23. 23 A/B Testing Firebase Remote Config x A/B Testing

  24. 24 Customer Support Investigation • BigQuery • Firebase Crashlytics extension

    Crashlytics { func recordHTTPURLResponseError(httpMethod: String, url: URL, statusCode: Int, queryParameters: [String: Any]?, errorInfo: [String: Any]?) { let params: [String: Any] = { guard let queryParameters = queryParameters else { return [:] } return Dictionary(uniqueKeysWithValues: filtered.map { ("param:\($0.key)", $0.value) }) }() let userInfo = errorInfo?.merging(params) { "\($0) \($1)" } let error = NSError(domain: "\(httpMethod) \(url.path)", code: statusCode, userInfo: userInfo) Crashlytics.crashlytics().record(error: error) } } * This is sample code
  25. 25 Customer Support Investigation • BigQuery • Firebase Crashlytics

  26. 26 Refactoring • What to start with • How to

    do • Some Cautionary note when refactoring Objective-C ObjC Swift Swift Unit Test Unit Test Unit Test Swift 32% 68% ObjC Swift 65% 35% ObjC Swift 2018.10 2020.10
  27. 27 Fraud Countermeasures • Should use Message Authentication Code? •

    Should store the data in Secure? • Is URL Redirect safety? • Is the binary obfuscated? • What about older app version? • What about announcement to user? • etc.
  28. 28 Team Development Customer Support Platform Update Data Analytics Outside

    Situation Web Engineer Designer Producer Director
  29. 29 Trouble Reporting, Retrospect • How to share • Escalation

    • Communication • Investigation of Impact • Provisional / Permanent Measures • Retrospective Solve by systematization as much as possible Rakuten Shugi Hypothesize → Practice → Validate → Shikumika
  30. Summary

  31. 31 Summary I grew up in both management and engineering.

    Looking back, having core values has helped me advance my career. Creating a team that values "Ownership" Face the product with “User First” “Fail Smart” systemization and challenges Team Growth Own Growth
  32. Thank you for your listening!

  33. None