Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Coding Night 2015
Christian Bäuerlein
July 17, 2015
Technology
0
110
Coding Night 2015
Christian Bäuerlein
July 17, 2015
Tweet
Share
More Decks by Christian Bäuerlein
See All by Christian Bäuerlein
fabrik42
1
41
fabrik42
0
57
fabrik42
0
19
fabrik42
0
120
fabrik42
0
41
fabrik42
0
140
fabrik42
1
54
fabrik42
0
110
fabrik42
0
91
Other Decks in Technology
See All in Technology
yosshi_
3
270
satoryu
0
2.2k
hsano
0
130
oracle4engineer
0
2.6k
natsusan
0
180
soachr
1
150
layerx
1
830
torisoup
0
290
clustervr
0
160
hamadakoji
0
1.1k
harshbothra
0
120
kawaguti
0
120
Featured
See All Featured
malarkey
119
16k
skipperchong
7
670
hannesfritz
27
930
tanoku
258
24k
shpigford
165
19k
keathley
17
640
jensimmons
207
10k
edds
56
9.3k
jnunemaker
PRO
40
4.5k
mthomps
39
2.3k
chriscoyier
145
19k
malarkey
192
8.5k
Transcript
None
Hi! J Christian Bäuerlein • @fabrik42 • github.com/fabrik42
Creating mobility using existing resources
Creating mobility using existing resources Bringing together drivers and passengers
to share a ride.
0-5 km Urban 5 - 100 km Regional 100 -
700 km Intercity
None
None
None
Speed Dating the flinc Tech Stack
Backnet
Load Balancer Load Balancer Rev. Proxy Rev. Proxy App Server
App Server App Server App Server App Server ... Static Assets Caching DB Queue Ext. Service Worker Worker Worker Worker Worker ... Micro service Simplified version of our backnet server setup.
Servers in Germany (owned by German Company) All Servers running
in VMs Provisioning via Chef
Ruby on Rails
5 Years
> 330k Users
~100k LOC Ruby
20 API Clients RESTful JSON API oAuth 2 Provider Detailled
test suite
PostgreSQL
Extensions
Stored Procedures User Defined Functions
Exceeded 32 Bit Int in 2013
WE LOVE IT!
Background Processing Sending Emails Calculating Routes Processing User Uploads External
Services
Essential part of our architecture Don‘t let the user wait.
Don‘t let the user see errors from external services. Retry yourself in the background. Come back to the user later.
Microservices Sending Email, Push, SMS Accessing/processing 3rd party services Ruby/Go/C++/Java
Routing Server High Performance Tailored to the flinc use cases
Business Intelligence
Business Intelligence
Testing
~7500 Tests
~3 min for full suite
Rspec Jasmine Protractor
Deployment
Make your code accessible
Communicate changes
None
Thank you! flinc.org/jobs Christian Bäuerlein • @fabrik42 • github.com/fabrik42
None