Rampant Pragmatism Growth & Change at Starling Bank Dan Osborne - - PowerPoint PPT Presentation

rampant pragmatism
SMART_READER_LITE
LIVE PREVIEW

Rampant Pragmatism Growth & Change at Starling Bank Dan Osborne - - PowerPoint PPT Presentation

Rampant Pragmatism Growth & Change at Starling Bank Dan Osborne - Web Technology Practice Lead Martin Dow - Engineering Lead for Core Banking Starling Bank 2014 - Founded UK mobile retail bank. Joint accounts, sole traders,


slide-1
SLIDE 1

Rampant Pragmatism

Growth & Change at Starling Bank

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

slide-2
SLIDE 2
  • 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

slide-3
SLIDE 3
  • Complexity: Essence vs Accident
  • A Relational Core
  • The Rest of the System
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-4
SLIDE 4
  • Complexity: Essence vs Accident
  • A Relational Core
  • The Rest of the System
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-5
SLIDE 5

No Silver Bullet Essence and Accident in Sofuware Engineering

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

slide-6
SLIDE 6

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

Essential Tasks

slide-7
SLIDE 7

“The representation of these abstract entities in programming languages and the mapping of these into machine languages within space and speed constraints.”

Accidental Tasks

slide-8
SLIDE 8

Spectrum of Complexity

slide-9
SLIDE 9
  • Complexity: Essence vs Accident
  • A Relational Core
  • The Rest of the System
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-10
SLIDE 10

“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)

slide-11
SLIDE 11

Essential Complexity Data Modelling as System Design

slide-12
SLIDE 12

Essential Complexity & Data Modelling

slide-13
SLIDE 13

Flex the Model

slide-14
SLIDE 14

Access Path Independence Relational Modelling

slide-15
SLIDE 15

Postgres

  • SQL: Access path independence
  • Constraints: A declarative barrier
slide-16
SLIDE 16
  • Complexity: Essence vs Accident
  • A Relational Core
  • The Rest of the System
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-17
SLIDE 17

Spectrum of Complexity

slide-18
SLIDE 18

Not a System Yet

slide-19
SLIDE 19

Out of the Tar Pit

What not How

slide-20
SLIDE 20

… you use Java?! But hang on...

slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

FRP System Components

slide-27
SLIDE 27
  • Avoid
  • Separate
slide-28
SLIDE 28
  • Avoid
  • Separate
slide-29
SLIDE 29

Observers & Feeders

slide-30
SLIDE 30
  • Complexity: Essence vs Accident
  • A Relational Core
  • Functional Relational Programming
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-31
SLIDE 31

React

slide-32
SLIDE 32
slide-33
SLIDE 33

P R O P S

slide-34
SLIDE 34

STATE

slide-35
SLIDE 35

“... 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

slide-36
SLIDE 36

Redux

slide-37
SLIDE 37
slide-38
SLIDE 38

Redux

CHANGE STATE HERE

slide-39
SLIDE 39

Web Development

slide-40
SLIDE 40
slide-41
SLIDE 41

Web Development … is FRP?!

slide-42
SLIDE 42
  • Complexity: Essence vs Accident
  • A Relational Core
  • Functional Relational Programming
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-43
SLIDE 43

A Bank is an Accounting Machine

slide-44
SLIDE 44

Detailed & Diverse to Unified & Generic

A Bank is an Accounting Machine

slide-45
SLIDE 45

Denormalisation & Projection of Essential Data

slide-46
SLIDE 46

Denormalised Postings

slide-47
SLIDE 47

Separate Services?

slide-48
SLIDE 48

Self Contained Systems

  • Reduce blast radius
  • Avoid distributed monolith
  • Minimise synchronous calls
  • Each service has its own database
slide-49
SLIDE 49

Splituing the (Relational) Core

slide-50
SLIDE 50
  • Each system as event source
  • Database queues

Pushing Data Around

slide-51
SLIDE 51
  • Kafka?
  • Postgres Logical Replication?

Pushing Data Around

slide-52
SLIDE 52
  • Complexity: Essence vs Accident
  • A Relational Core
  • Functional Relational Programming
  • Our Web Stack
  • Our Ledger
  • Starling’s Engineering Principles

Agenda

slide-53
SLIDE 53

Software Engineering The Art of Compromise

slide-54
SLIDE 54

Pragmatism Moving Deliberately

slide-55
SLIDE 55

Bets

slide-56
SLIDE 56

Bets

slide-57
SLIDE 57

Bets

slide-58
SLIDE 58

Bets

slide-59
SLIDE 59

Bets + Principles = Architecture

slide-60
SLIDE 60

Optimise & Empower Bets + Principles = Architecture

slide-61
SLIDE 61

Understandability Bets + Principles = Architecture

slide-62
SLIDE 62

Simplicity & Consistency Bets + Principles = Architecture

slide-63
SLIDE 63

Rampant Pragmatism Change & Growth at Starling Bank

slide-64
SLIDE 64
slide-65
SLIDE 65

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

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

slide-66
SLIDE 66

Thank you!

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

@dtpo @martin_dow @StarlingDev

slide-67
SLIDE 67
  • No Silver Bullet -

https:/ /www.researchgate.net/publication/2204771 27_No_Silver_Bullet_Essence_and_Accidents_of_So ftware_Engineering

  • A Relational Model for Large Shared Data Banks -

https:/ /www.semanticscholar.org/paper/A-Relation al-Model-for-Large-Shared-Data-Banks-Codd/c4bd 2f89039031f09b9ddec07e6d456b0d08aab4

  • Out of the Tar Pit -

https:/ /www.semanticscholar.org/paper/Out-of-the

  • Tar-Pit-Moseley-Marks/41dc590506528e9f9d7650c

235b718014836a39d

  • Simple Made Easy -

https:/ /www.infoq.com/presentations/Simple-Made

  • Easy-QCon-London-2012/
slide-68
SLIDE 68
  • Object Oriented Software Construction -

https:/ /www.semanticscholar.org/paper/Object-Ori ented-Software-Construction-Meyer/5f0e007b600d 595b9c75cf3949d29b6ae21eed63

  • Mythical Man Month -

https:/ /www.bookdepository.com/Mythical-Man-M

  • nth-Frederick-P-Brooks-Jr/9780201835953
  • Practical Common Lisp -

https:/ /www.bookdepository.com/Practical-Commo n-Lisp-Peter-Seibel/9781430211617

  • Applied Mathematics for Database Professionals

https://www.apress.com/gp/book/9781590597453