Slide 1

Slide 1 text

EVALUATING TECH STACKS Christian Nelson @xianpants

Slide 2

Slide 2 text

NO SHORTAGE OF… • Shiny new toys • Emphatic opinions about those toys • Success (and sometimes failure) stories

Slide 3

Slide 3 text

https://twitter.com/bcardarella/status/735507961775304706

Slide 4

Slide 4 text

https://m.signalvnoise.com/ruby-has-been-fast-enough-for-13-years-afff4a54abc7

Slide 5

Slide 5 text

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/

Slide 6

Slide 6 text

https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=fortune

Slide 7

Slide 7 text

https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=fortune 100x FASTER! OMG!!!

Slide 8

Slide 8 text

Who is right?!

Slide 9

Slide 9 text

They all are! (mostly)

Slide 10

Slide 10 text

How can this be?

Slide 11

Slide 11 text

Reality is nuanced, complicated, and there are many sets of circumstances.

Slide 12

Slide 12 text

Product Stage Nascent products face very different challenges from established products.

Slide 13

Slide 13 text

Day 0 0 25 50 75 100 What to Build? Building it Running it

Slide 14

Slide 14 text

2 Years 0 25 50 75 100 What to Build? Building it Running it

Slide 15

Slide 15 text

EARLY STAGES (CONSUMER PRODUCT SEEKING USERS) • Searching for product market fit • Build and test ideas to see what sticks • Quickly enhance features

Slide 16

Slide 16 text

EARLY STAGES (CONSUMER PRODUCT SEEKING USERS) Tech should enable rapid iteration and learning, to answer the “What?” question very quickly. Lack of agility can be existential.

Slide 17

Slide 17 text

LATER STAGES (I.E. LOTS OF USERS) • Scaling and Operational costs • Stability • Security • Maintenance

Slide 18

Slide 18 text

LATER STAGES (I.E. LOTS OF USERS) Critical that the technology doesn’t require excessive time or money to keep the product running. Innovation is still very important, lack thereof can be existential.

Slide 19

Slide 19 text

CAN YOU HAVE BOTH? There are always tradeoffs. But, some hands are better (for you and your situation) than others.

Slide 20

Slide 20 text

WHAT SHOULD I CONSIDER? When checking out new tech stacks.

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

TECHNICAL CONSTRAINTS • Embedded • Real-time • Game Engine • Drivers • Proprietary SDKs • Massive Concurrency • Platform (Windows?)

Slide 23

Slide 23 text

PRODUCTIVITY • Get started quickly • Get features on pages and feedback, pronto • Whether authored or integrated via libs or services

Slide 24

Slide 24 text

PHILOSOPHY • “Developer Happiness” • Convention/ Configuration • Typing • Static/Dynamic • Testing culture

Slide 25

Slide 25 text

COMMUNITY • Active • Positive • Inclusive • Growing • Supportive

Slide 26

Slide 26 text

OSS ECOSYSTEM • Active • Quality packages
 (well tested) • Applicable to your domain

Slide 27

Slide 27 text

COST PER USER • (Almost) anything can “scale” • What does it cost to do so? • $s on servers (cheap) • Time spent optimizing and ops-ing to get there (people - not cheap)

Slide 28

Slide 28 text

HIRE-ABILITY • Supply • Desirability

Slide 29

Slide 29 text

MATURITY - GARTNER’S HYPE CYCLE

Slide 30

Slide 30 text

MATURITY - GARTNER’S HYPE CYCLE

Slide 31

Slide 31 text

MATURITY - GARTNER’S HYPE CYCLE

Slide 32

Slide 32 text

HOW WE WEIGH THEM… • Productivity • Philosophy • Community • OSS Ecosystem • Operational Cost Per User • Hire-Ability • Maturity

Slide 33

Slide 33 text

WHY ELIXIR + PHOENIX? • Friendly functional programming • Familiar(ish) to Ruby on Rails developers
 language syntax, toolchain, and framework design • Reached “escape velocity” (won’t disappear tomorrow) • Strong community (even if small) • Low cost per user

Slide 34

Slide 34 text

SO YOU WANNA GIVE SOMETHING A TRY? • Feet wet with a simple tutorial (e.g. blog) • Build or rewrite something small, but real (i.e. with some users) • Drive it into production • Live with it for a little while (or a long while!)

Slide 35

Slide 35 text

What if we can have the productivity we love with Rails, and low cost per user at the same time? THE QUESTION

Slide 36

Slide 36 text

What if we can have the productivity we love with Rails, and low cost per user at the same time? THE QUESTION

Slide 37

Slide 37 text

CHECK IT OUT • Surviving the Framework Hype - Brandon Hayes
 https://www.youtube.com/watch?v=0MojR1XUEc0 • Rails to Phoenix - Brian Carderella
 https://www.youtube.com/watch?v=OxhTQdcieQE • Ruby Has Been Fast Enough For 13 Years - DHH
 https://m.signalvnoise.com/ruby-has-been-fast-enough-for-13-years-afff4a54abc7 • Programming Elixir / Phoenix • Elixir and Phoenix: The Future of Web APIs and Apps?
 http://blog.carbonfive.com/2016/04/19/elixir-and-phoenix-the-future-of-web-apis-and-apps/

Slide 38

Slide 38 text

THANKS! CHRISTIAN NELSON / @XIANPANTS / [email protected]