---
title: "克服恐懼 追求夢想 Instagram iOS 4年經驗分享"
tags: "iPlayground2020"
---
# 克服恐懼 追求夢想 Instagram iOS 4年經驗分享
{%hackmd vUibBZG0ToSRiPuj0wOKvg %}
> 請從這裡開始
# 克服恐懼 追求夢想 Instagram iOS 4年經驗分享
Jacky
## Instagram
整個 App 都是用 IGListKit 做的,讓 collectionView 更有效率
Data -> Adapter -> Section Controller -> Cell
Section Controller 不用依賴在 viewController 上,任何的地方都可以使用
## Working with large codebased
- 超過 100 個 iOS engineers
- 需要清楚 code 的 ownership
- Alert system:當有人動自己的 code 時會提醒
- 設計出不容易改壞的 code
- Monorepo
## Monorepo
IG/FBMessenger/WhatsApp... 30+ App iOS/Android/Server 都在同一個 Repo
- 容易找 code
- 很多 framework 可以 share module
- 整個公司統一的開發環境
- Dependancy 需要特別注意
## Testing
講者在 FB 四年沒寫什麼 testing(難怪常常爆炸?
“Move fast and break things” 如果東西沒有壞,表示迭代的不夠快
## Instagram vs Facebook
- Instagram is more simple / product driven
- Facebook is more complex / engineering driven
## US vs Asia
- Transparency:很多時候亞洲公司在開發東西,並不能了解其背後的原因,不知為何而做,在國外通常都會拿出來一起討論,有參與感
- Comunication Style:外國人習慣邊講邊想,比較勇於表達自我,東方人覺得要自己想清楚再提出來,常常錯過機會。國外溝通一般也比較直接。
- 重視 Feedback:feedback is a gift。
## Pros and Cons at Big Company
- Pros
- Greate perks
- More user base/ impact/ AB testing
- Scale
- Cons
- Old technology, more disconnected with developer world
- Less freedom/ growths in different
## Position
IC3 - Junior Software Engineer
IC4 - Software Engineer
IC5 - Senior Software Engineer
M0
## Performance
- Impact
- Better Engineering:Code 寫的如何
- Direction:做 planning,影響 team
- People:招募或是帶新人
## Lesson: Kill Your Darlings
寫作/寫程式,最難的是砍自己寫的東西,要去蕪存菁,要懂得為公司犧牲自己的成果
- A failed project is only a failure if you didn’t learn form it
- Detach the result from the process
- Fall in love with the problem, not your solution
## Lesson: Occam’s Razor/ Simplicity
做的假設越多,越容易失敗
- The simplest solution is usually the right one
當我們遇到很複雜的事情/程式碼/邏輯時,應該退一步想,是否方向錯了,是否有更簡單的解法
- Product
- Do the simple thing first
- Remove extra features
Facebook/ Instagram 都有 team 專門砍 feature,找出沒人用的 feature把他砍掉。
## Lesson: The importance Soft Skills
- Facebook engineers = engineer + PM
- Best engineers = strong technically, very strong communications
- Brainstorm a feature, get buy in, plan road map, get resources, execute test, present, explain results, convince team/ other team the ship
- “Easier done than say” 做出 Demo 給 design team 看
- Writing 寫作寫文件
## Lesson: Extreme Ownership
- DRI: Directly Responsible Individual
- Things that happen to you are not always your fault but are always your full responsibility
- Your code
- Your teammates
- Your manager
- Take extreme ownership over your code base, your project, your career, your mindfulness, and your relationship....
## Lesson: Importance of Mentorship
- I started my career thanks to mentorship from KKBOX
- the most rewarding thing is not focusing on what you’ve empowered others to be able to do, that’s the best way to increase....
## Lesson: Be Bold
“What would you do if you weren’t afraid”
跳出舒適圈
###### tags:`iPlayground2020`