Spotify Numbers
58 markets
Over 30 million Songs
75 million Active Users
(20 million Subscribers)
Slide 4
Slide 4 text
iOS Client Numbers
50 monthly contributors 0.5 million lines of code millions of users
Slide 5
Slide 5 text
1. Scale
Slide 6
Slide 6 text
2. Innovation
Slide 7
Slide 7 text
3. Modular Organization
Slide 8
Slide 8 text
3. Modular Organization
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Slide 9
Slide 9 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 10
Slide 10 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 11
Slide 11 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 12
Slide 12 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 13
Slide 13 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 14
Slide 14 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 15
Slide 15 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 16
Slide 16 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 17
Slide 17 text
Radio Running Album Show
Player Browse Artist Playlist
Social Conce
Car
Chart
scover Genre
Ads Equalizer Inbox Podcast
Slide 18
Slide 18 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh
S C
Pl Br Ar Pl C
C
A Eq In Po
Slide 19
Slide 19 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh
S C
Pl Br Ar Pl C
C
A Eq In Po
Slide 20
Slide 20 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh
S C
Pl Br Ar Pl C
C
A Eq In Po
Slide 21
Slide 21 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh
S C
Pl Br Ar Pl C
C
A Eq In Po
Slide 22
Slide 22 text
Spotify.xcworkspace
Slide 23
Slide 23 text
Spotify.xcworkspace
Spotify.xcworkspace
forks?
Slide 24
Slide 24 text
Spotify.xcworkspace
master
Slide 25
Slide 25 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh
S C
Pl Br Ar Pl C
C
A Eq In Po
master
Slide 26
Slide 26 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh C
Pl Br Ar Pl C
C
A Eq In Po
A
master
Slide 27
Slide 27 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh C
Pl Br Ar Pl C
C
A Eq In Po
B
master
Slide 28
Slide 28 text
Ra Ru Al Sh
Pl Br Ar Pl
S C
C
C
Di G
Ra Ru Al Sh C
Pl Br Ar Pl C
C
A Eq In Po
A
master
Slide 29
Slide 29 text
From ‘git
commit’ to
the User
Slide 30
Slide 30 text
Step 0: Agile - Flavored Culture
Plan Work Done
Slide 31
Slide 31 text
Step 0: Agile - Flavored Culture
Plan Work Done
Slide 32
Slide 32 text
Step 0: Agile - Flavored Culture
Slide 33
Slide 33 text
Step 1: Repository
Slide 34
Slide 34 text
Step 1: Repository
◕ ◡ ◕
Slide 35
Slide 35 text
◕ ◡ ◕
Step 1: Repository
Slide 36
Slide 36 text
Step 2: Peer Code Review
◕ ◡ ◕
Slide 37
Slide 37 text
Step 2: Peer Code Review
ಠ _ ಠ ◕ ◡ ◕
Slide 38
Slide 38 text
Step 2: Peer Code Review
ಠ _ ಠ ◕ _ ◕
Slide 39
Slide 39 text
Step 2: Peer Code Review
ಠ ◡ ಠ ◕ _ ◕
Slide 40
Slide 40 text
Step 2: Peer Code Review
ಠ ◡ ಠ ◕ ◡ ◕
Slide 41
Slide 41 text
Step 2: Peer Code Review
•Spread Knowledge.
•Prevent work from being
repeated.
•Opportunity to detect errors
earlier.
•A venue for technical
discussions.
Slide 42
Slide 42 text
Step 3: Continuos Integration
◕ ◡ ◕
Slide 43
Slide 43 text
Step 3: Continuos Integration
•Eases integration issues.
•Notification and Stats.
•Gives clues of where and when
things went wrong to
everybody.
•Executes tests suites
Slide 44
Slide 44 text
Step 4: Unit Tests
1 2 3 4 6
◕ ◡ ◕
Slide 45
Slide 45 text
Step 4: Unit Tests
•Mainly for model and model-
view.
•First channel of feedback to
avoid regressions.
•Can be executed on the
developer’s machine as well.
•Testable code is better code
Slide 46
Slide 46 text
Step 5: Automated Tests
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
No content
Slide 49
Slide 49 text
5. Automated Tests
Slide 50
Slide 50 text
Step 5: Automated Tests
•Test the view components.
•Executed on all supported
devices.
•Best if implemented by the
developers