Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Hi! J Christian Bäuerlein • @fabrik42 • github.com/fabrik42

Slide 3

Slide 3 text

Creating mobility using existing resources

Slide 4

Slide 4 text

Creating mobility using existing resources Bringing together drivers and passengers to share a ride.

Slide 5

Slide 5 text

0-5 km Urban 5 - 100 km Regional 100 - 700 km Intercity

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Speed Dating the flinc Tech Stack

Slide 10

Slide 10 text

Backnet

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

Servers in Germany (owned by German Company) All Servers running in VMs Provisioning via Chef

Slide 13

Slide 13 text

Ruby on Rails

Slide 14

Slide 14 text

5 Years

Slide 15

Slide 15 text

> 330k Users

Slide 16

Slide 16 text

~100k LOC Ruby

Slide 17

Slide 17 text

20 API Clients RESTful JSON API oAuth 2 Provider Detailled test suite

Slide 18

Slide 18 text

PostgreSQL

Slide 19

Slide 19 text

Extensions

Slide 20

Slide 20 text

Stored Procedures User Defined Functions

Slide 21

Slide 21 text

Exceeded 32 Bit Int in 2013

Slide 22

Slide 22 text

WE LOVE IT!

Slide 23

Slide 23 text

Background Processing Sending Emails Calculating Routes Processing User Uploads External Services

Slide 24

Slide 24 text

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.

Slide 25

Slide 25 text

Microservices Sending Email, Push, SMS Accessing/processing 3rd party services Ruby/Go/C++/Java

Slide 26

Slide 26 text

Routing Server High Performance Tailored to the flinc use cases

Slide 27

Slide 27 text

Business Intelligence

Slide 28

Slide 28 text

Business Intelligence

Slide 29

Slide 29 text

Testing

Slide 30

Slide 30 text

~7500 Tests

Slide 31

Slide 31 text

~3 min for full suite

Slide 32

Slide 32 text

Rspec Jasmine Protractor

Slide 33

Slide 33 text

Deployment

Slide 34

Slide 34 text

Make your code accessible

Slide 35

Slide 35 text

Communicate changes

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

Thank you! flinc.org/jobs Christian Bäuerlein • @fabrik42 • github.com/fabrik42

Slide 38

Slide 38 text

No content