stackdive: yesware

41
StackDive February 12, 2015

Upload: stackdive

Post on 17-Jul-2015

218 views

Category:

Technology


1 download

TRANSCRIPT

StackDive – February 12, 2015

Who am I?

2

Who am I?

3

• Justin Mills

• Engineer at Yesware (2 years)

• Work many layers of the stack

• Currently working on our data team

What is Yesware?

4

Yesware is an all-in-one sales toolkit for

data-driven sales organizations. We help you

connect with prospects, track customer

engagement, and close more deals, right from

Gmail, Outlook, or your iPhone.

What is Yesware?

6

Culture

7

Culture

Small autonomous teams

8

CultureFull stack T-shaped people

9

Culture

Firmly established internal open source model

10

Culture

No QA, ops or tooling teams

11

Boxes and Lines

12

Architecture

Evolution from a single app…

13

ArchitectureBefore

14

Architecture

…into a big app and many smaller ones.

15

ArchitectureNow

16

Evolution

17

Architecture Evolution

Some necessity

18

ArchitectureSome refactoring

19

Architecture Evolution

Some general goodness

20

ArchitectureSome new apps

21

Architecture Evolution

Some by closing the repository!

22

Architecture

Ongoing evolution

23

Architecture Evolution

Lessons learned

● Closing repo works!

● 2+ gets easier.

● Everything is faster with smaller apps.

● We need more tooling!24

Patterns

25

Architecture Patterns

RESTful services (mostly)

26

Architecture Patterns

Queues for asynchronous communication

27

Architecture PatternsWhat a typical app looks like?

28

Architecture PatternsSample system pattern we repeat a lot

29

Architecture Patterns

Did I mention queues?

● Delayed Job (PostreSQL)

● Resque (Redis)

● Sidekiq (Redis)

● Sneakers (RabbitMQ)30

Architecture Patterns

Client libraries as our API’s

31

Production

32

Production

Hosted on Heroku

33

Production

Providers for nearly all of our systems

34

Production

Leverage AWS where we need to

35

Challenges

36

Challenges

Culture

● Who owns what?

● Operations responsibility.

● Case for non-feature work.

37

Challenges

Architecture

● Bad patterns still exist

● Interdependencies

● Complexity

● Technology baggage38

Challenges

Production

● Long road to happiness on Heroku

● Containerized

● Freedom is limited

39

Thanks!

40