39
A Case For Elixir

New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

A Case For Elixir

Page 2: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Making a Case

✓ How are languages chosen today?✓ Why should Elixir get chosen?✓ How do I get Elixir adopted?

Page 3: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Part 1How are languages chosen today?

Page 4: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts

✓ Risk✓ Hiring✓ Productivity✓ Cost✓ Adoption

Page 5: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Risk

✓ Language instability✓ Dependency instability✓ Learning Curve✓ Support✓ Knowledge Silos

Page 6: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Hiring

✓ Diverse candidate pool✓ Language specific expertise✓ Variety in skill sets and expertise

Page 7: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Productivity

✓ Maintaining engineer "flow"✓ Increased delivery of engineering value✓ Quality and maintainability of software

Page 8: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Cost

✓ Expenditures for servers✓ Expenditures for training/learning✓ Context switches

Page 9: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Adoption

✓ Community size✓ Searchability✓ Dependencies✓ Internal interest or competency in language

Page 10: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Part 2Why should Elixir get chosen?

Page 11: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Risk

✓ Language stable✓ Learning curve similar to Ruby✓ Loads of support (forums, slack, dashbit, github, etc)✓ Number of maintained, updated dependencies

lacking

Page 12: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Risk

✓ Language stable✓ Learning curve similar to Ruby✓ Loads of support (forums, slack, dashbit, github, etc)✓ Number of maintained, updated dependencies can

be lacking, but you have Erlang!

Page 13: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Hiring

✓ Increase in applications for job postings mentioning Elixir

✓ Large presence on slack (~25,000 users)✓ Wide array of professionals and expertise available

Page 14: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Productivity

✓ Language ergonomics best in class✓ Community standards on formatting, documentation✓ Compile times not too long

Page 15: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Productivity

Pinterest Case Study1

1 Click here for more details on the Pinterest case study.

Page 16: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir ProductivityPinterest Case Study1

✓ Notification system rewrite from Java to Elixir

1 Click here for more details on the Pinterest case study.

Page 17: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir ProductivityPinterest Case Study1

✓ Notification system rewrite from Java to Elixir✓ Reduced infrastructure costs by 2x (30 servers to 15

servers)

1 Click here for more details on the Pinterest case study.

Page 18: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir ProductivityPinterest Case Study1

✓ Notification system rewrite from Java to Elixir✓ Reduced infrastructure costs by 2x (30 servers to 15

servers)✓ Reduce amount of code by tenfold

1 Click here for more details on the Pinterest case study.

Page 19: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir ProductivityPinterest Case Study1

✓ Notification system rewrite from Java to Elixir✓ Reduced infrastructure costs by 2x (30 servers to 15

servers)✓ Reduce amount of code by tenfold✓ Huge success, want...moar...Elixir1 Click here for more details on the Pinterest case study.

Page 20: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Cost

✓ Small learning curve, similar to Ruby✓ Staying in context with fast test suite, CL tools,

native documentation and more

Page 21: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir Cost

Bleacher Report Case Study2

2 Click here for more details on the Bleacher Report case study.

Page 22: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir CostBleacher Report Case Study2

✓ Reduced infrastructure needs (150 servers -> 5 servers)

2 Click here for more details on the Bleacher Report case study.

Page 23: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Context: Elixir CostBleacher Report Case Study2

✓ Reduced infrastructure needs (150 servers -> 5 servers)

✓ Ease of training due to Ruby familiarity3

3 Click here for more details on Ben Marx's views on Ruby to Elixir learning curve.

2 Click here for more details on the Bleacher Report case study.

Page 24: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Adoption

✓ Large community on slack (~ 25,000 users)✓ Consultancies specialize in Elixir (Dockyard, Dashbit)✓ Google searches yield helpful results✓ Fantastic tools for IoT (nerves) and web (phoenix)

Page 25: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir Adoption

Mixpanel Case Study4

4 Click here for more details on Mixpanel's change from Erlang to Python.

Page 26: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir AdoptionMixpanel Case Study4

✓ One service in Mixpanel using Erlang (deemed business critical).

4 Click here for more details on Mixpanel's change from Erlang to Python.

Page 27: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir AdoptionMixpanel Case Study4

✓ One service in Mixpanel using Erlang (deemed business critical).

✓ Rewritten because no internal Erlang expert.

4 Click here for more details on Mixpanel's change from Erlang to Python.

Page 28: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Business Contexts: Elixir AdoptionMixpanel Case Study4

✓ One service in Mixpanel using Erlang (deemed business critical).

✓ Rewritten because no internal Erlang expert.✓ Moved to Python due to internal competencies.

4 Click here for more details on Mixpanel's change from Erlang to Python.

Page 29: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Part 3How do I get Elixir adopted?

Page 30: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Start Small

Page 31: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Expect Resistance

Page 32: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Leverage the Community

Page 33: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Experimentation Time Box

Page 34: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Strength in Numbers

Page 35: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Leverage Opportunity

Page 36: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

defp allocate_engineers(%{conference: false}), do: :elixirdefp allocate_engineers(%{conference: true}), do: :conference

Page 37: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Leverage Proven Processes

Page 38: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Define Success

Page 39: New A Case For Elixir · 2020. 8. 18. · Business Contexts: Elixir Adoption Mixpanel Case Study4 One service in Mixpanel using Erlang (deemed business critical). Rewritten because

Thank youYou can find me online!

phereford full_stackory

phereford phereford

Sterling Woods