growth & change at starling bank rampant pragmatism · frederick p. brooks, jr. - the mythical...

68
Rampant Pragmatism Growth & Change at Starling Bank Dan Osborne - Web Technology Practice Lead Martin Dow - Engineering Lead for Core Banking

Upload: others

Post on 09-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Rampant PragmatismGrowth & Change at Starling Bank

Dan Osborne - Web Technology Practice LeadMartin Dow - Engineering Lead for Core Banking

Page 2: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● 2014 - Founded● UK mobile retail bank.● Joint accounts, sole traders, limited companies.● Loans, Euro payments, foreign currency payments.● Internet Bank● 2019 - 1 million customers, £1 billion on deposit● 2020 - Europe? 2+ million customers? ...

Starling Bank

Page 3: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● The Rest of the System● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 4: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● The Rest of the System● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 5: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

No Silver Bullet

Essence and Accidentin Software Engineering

Frederick P. Brooks, Jr. - The Mythical Man-Month

Page 6: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

“The fashioning of the complex conceptual structures that compose the abstract software entity”

Essential Tasks

Page 7: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

“The representation of these abstract entities in programming languages and the mapping of these into

machine languages within space and speed constraints.”

Accidental Tasks

Page 8: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Spectrum of Complexity

Page 9: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● The Rest of the System● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 10: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

“I don’t care how much you really love the syntax of your favourite programming language, it’s inferior to

data in every way”

Rich Hickey (referencing Gerald Sussman)

Page 11: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Essential Complexity

Data Modellingas

System Design

Page 12: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Essential Complexity&

Data Modelling

Page 13: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Flex the Model

Page 14: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Access Path Independence

Relational Modelling

Page 15: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Postgres

● SQL: Access path independence● Constraints: A declarative barrier

Page 16: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● The Rest of the System● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 17: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Spectrum of Complexity

Page 18: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Not a System Yet

Page 19: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Out of the Tar Pit

What not How

Page 20: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

… you use Java?!

But hang on...

Page 21: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 22: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 23: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 24: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 25: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 26: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

FRP System Components

Page 27: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Avoid● Separate

Page 28: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Avoid● Separate

Page 29: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Observers&

Feeders

Page 30: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● Functional Relational Programming● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 31: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

React

Page 32: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 33: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

PROPS

Page 34: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

STA

TE

Page 35: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

“... provide a much clearer mapping between your ideas about how the program works and the code you

actually write.”

Peter Seibel – Practical Common Lisp, 2005

Functional Programs

Page 36: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Redux

Page 37: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 38: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Redux CHANGESTATE

HERE

Page 39: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Web Development

Page 40: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 41: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Web Development

… is FRP?!

Page 42: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● Functional Relational Programming● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 43: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

A Bank is an Accounting Machine

Page 44: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Detailed & Diverse

to

Unified & Generic

A Bank is an Accounting Machine

Page 45: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Denormalisation&

Projection of Essential Data

Page 46: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Denormalised Postings

Page 47: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Separate Services?

Page 48: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Self Contained Systems

● Reduce blast radius● Avoid distributed monolith● Minimise synchronous calls● Each service has its own database

Page 49: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Splitting the (Relational) Core

Page 50: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Each system as event source● Database queues

Pushing Data Around

Page 51: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Kafka?● Postgres Logical Replication?

Pushing Data Around

Page 52: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Complexity: Essence vs Accident● A Relational Core● Functional Relational Programming● Our Web Stack ● Our Ledger● Starling’s Engineering Principles

Agenda

Page 53: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Software Engineering

The Art of Compromise

Page 54: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Pragmatism

Moving Deliberately

Page 55: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Bets

Page 56: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Bets

Page 57: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Bets

Page 58: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Bets

Page 59: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Bets + Principles = Architecture

Page 60: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Optimise&

Empower

Bets + Principles = Architecture

Page 61: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Understandability

Bets + Principles = Architecture

Page 62: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Simplicity&

Consistency

Bets + Principles = Architecture

Page 63: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Rampant Pragmatism

Change & Growth at Starling Bank

Page 64: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract
Page 65: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

“Most startups (and big companies) don’t need the tech stack they have.”

Vicki Boykis“You don’t need Kafka. Really.”Normcore Tech Newsletter

Page 66: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

Thank you!https://developer.starlingbank.com

https://www.starlingbank.com/careers/engineering/

@dtpo@martin_dow@StarlingDev

Page 67: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● No Silver Bullet - https://www.researchgate.net/publication/220477127_No_Silver_Bullet_Essence_and_Accidents_of_Software_Engineering

● A Relational Model for Large Shared Data Banks - https://www.semanticscholar.org/paper/A-Relational-Model-for-Large-Shared-Data-Banks-Codd/c4bd2f89039031f09b9ddec07e6d456b0d08aab4

● Out of the Tar Pit - https://www.semanticscholar.org/paper/Out-of-the-Tar-Pit-Moseley-Marks/41dc590506528e9f9d7650c235b718014836a39d

● Simple Made Easy - https://www.infoq.com/presentations/Simple-Made-Easy-QCon-London-2012/

Page 68: Growth & Change at Starling Bank Rampant Pragmatism · Frederick P. Brooks, Jr. - The Mythical Man-Month “The fashioning of the complex conceptual structures that compose the abstract

● Object Oriented Software Construction - https://www.semanticscholar.org/paper/Object-Oriented-Software-Construction-Meyer/5f0e007b600d595b9c75cf3949d29b6ae21eed63

● Mythical Man Month - https://www.bookdepository.com/Mythical-Man-Month-Frederick-P-Brooks-Jr/9780201835953

● Practical Common Lisp - https://www.bookdepository.com/Practical-Common-Lisp-Peter-Seibel/9781430211617

● Applied Mathematics for Database Professionalshttps://www.apress.com/gp/book/9781590597453