Slide 1

Slide 1 text

From Noob to Contributing Noob Lisbon |> Elixir

Slide 2

Slide 2 text

$> whoami Lisbon |> Elixir Daniel Serrano Software Engineer Biometrics Team @ @dnlserrano

Slide 3

Slide 3 text

Outline Lisbon |> Elixir • a bit about my early days with Elixir • how I went from not knowing the language to contributing to OSS projects • httpoison • spandex • elixir-thrift • the community behind Elixir

Slide 4

Slide 4 text

Early days Lisbon |> Elixir

Slide 5

Slide 5 text

Beginning Lisbon |> Elixir Nizar Venturini @trenpixster

Slide 6

Slide 6 text

Later on… Lisbon |> Elixir Paulo Pereira @odesassossegado

Slide 7

Slide 7 text

Later on… Lisbon |> Elixir Paulo Pereira @odesassossegado

Slide 8

Slide 8 text

Later on… Lisbon |> Elixir Paulo Pereira @odesassossegado

Slide 9

Slide 9 text

Onfido a Lisbon |> Elixir • using it to run a research pipeline made up of a sequence of Python executables in a fault-tolerant way • very hacky • 1st pull-request in Elixir during hackathon • lots of in-house knowledge that has been building up and more…

Slide 10

Slide 10 text

In the Biometrics Team a Lisbon |> Elixir

Slide 11

Slide 11 text

Motus Lisbon |> Elixir • poolboy • worker pools • fuse • circuit breaking • ex_statsd • metrics • mox • mocks for testing • httpoison • http • spandex • tracing microservices aggregator

Slide 12

Slide 12 text

Boxxie Python microservice Content-Type: multipart/mixed;boundary=firstboundary123 --firstboundary123 Content-Type: application/json {“metadata”: …} --firstboundary123 Content-Type: image/png [binary] --firstboundary123 Content-Type: application/json {“metadata”: …} --firstboundary123 Content-Type: image/png [binary] --firstboundary123-- multipart response request Lisbon |> Elixir

Slide 13

Slide 13 text

Lisbon |> Elixir

Slide 14

Slide 14 text

httpoison • did not support multipart out-of-the-box • depends on hackney Lisbon |> Elixir

Slide 15

Slide 15 text

Lisbon |> Elixir

Slide 16

Slide 16 text

Lisbon |> Elixir

Slide 17

Slide 17 text

Lisbon |> Elixir

Slide 18

Slide 18 text

Lisbon |> Elixir :hackney_multipart.decode_form/2

Slide 19

Slide 19 text

Lisbon |> Elixir

Slide 20

Slide 20 text

before after Lisbon |> Elixir

Slide 21

Slide 21 text

Lisbon |> Elixir

Slide 22

Slide 22 text

commit message Lisbon |> Elixir

Slide 23

Slide 23 text

hexdocs Lisbon |> Elixir

Slide 24

Slide 24 text

README Lisbon |> Elixir

Slide 25

Slide 25 text

httpoison contribution done ✔ Lisbon |> Elixir

Slide 26

Slide 26 text

Distributed Tracing Lisbon |> Elixir

Slide 27

Slide 27 text

spandex Lisbon |> Elixir

Slide 28

Slide 28 text

spandex upgrade news Lisbon |> Elixir

Slide 29

Slide 29 text

spandex v2.4.0 re-implement function decorators in our project Lisbon |> Elixir

Slide 30

Slide 30 text

spandex v2.4.0 “How would you feel about bringing back function decorators?” Lisbon |> Elixir

Slide 31

Slide 31 text

spandex v2.4.0 Lisbon |> Elixir

Slide 32

Slide 32 text

spandex v2.4.0 Lisbon |> Elixir

Slide 33

Slide 33 text

spandex v2.4.0 • recognition for your work • gives you a sense of accomplishment • fosters deeper, broader knowledge • strengthens the community Lisbon |> Elixir

Slide 34

Slide 34 text

spandex contribution done ✔ Lisbon |> Elixir

Slide 35

Slide 35 text

• Uber’s open-source distributed tracing platform • uses Thrift as the underlying communication protocol Lisbon |> Elixir

Slide 36

Slide 36 text

service struct Thrift IDL Lisbon |> Elixir

Slide 37

Slide 37 text

elixir-thrift Lisbon |> Elixir

Slide 38

Slide 38 text

elixir-thrift Lisbon |> Elixir

Slide 39

Slide 39 text

elixir-thrift contribution done ✔ Lisbon |> Elixir

Slide 40

Slide 40 text

Community

Slide 41

Slide 41 text

MINASWAN “Matz is nice and so we are nice” Yukihiro Matsumoto Lisbon |> Elixir

Slide 42

Slide 42 text

JINASWAN José Valim “José is nice and so we are nice” Lisbon |> Elixir

Slide 43

Slide 43 text

Get Involved • follow Elixir community members on Twitter • watch elixirforum.com • sign up for the Plataformatec newsletter on Elixir • listen to podcasts • read (and write) blog posts • present talks at the Lisbon |> Elixir meetup Lisbon |> Elixir

Slide 44

Slide 44 text

Thank you questions? Lisbon |> Elixir