From Ravioli Maker to International Speaker
Michele Riva
Michele Riva
Senior Software Architect @NearForm
Google Developer Expert
Microsoft MVP
MicheleRivaCode
My background
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
puts "Hello, world!"
IO.puts "Hello, world!"
Ruby
Elixir
MicheleRivaCode
Me with Ruby
MicheleRivaCode
Me with Elixir
Things to learn
- Functional programming patterns
MicheleRivaCode
Things to learn
- Functional programming patterns
- Recursion
MicheleRivaCode
Things to learn
- Functional programming patterns
- Recursion
- Immutability
MicheleRivaCode
Things to learn
- Functional programming patterns
- Recursion
- Immutability
- Distributed computing
MicheleRivaCode
Things to learn
- Functional programming patterns
- Recursion
- Immutability
- Distributed computing
- BEAM (Erlang VM)
MicheleRivaCode
MicheleRivaCode
Functional programming community is a niche
MicheleRivaCode
MicheleRivaCode
Contributingto Haskell
OSS projects
Growing in my current company
Me
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
ES6
Haskell has been very influential for JavaScript
MicheleRivaCode
MicheleRivaCode
var numbers = [1, 2, 3, 4];
for (var i = 0; i < numbers.length; i++) {
numbers[i] = numbers[i] * 2;
}
console.log(numbers);
const numbers = [1, 2, 3, 4];
const multiplied = numbers
.map((number) => number * 2);
console.log(multiplied);
Until ES5
Starting with ES6
Why calling it .map?
MicheleRivaCode
MicheleRivaCode
"In mathematics, specifically category theory, a functorย is a mappingย between categories"
https://en.wikipedia.org/wiki/Functor
MicheleRivaCode
"Haskell, at its core, is simple: it is just a polymorphic lambda calculus with lazy evaluation plus algebraic data types and type classes"
MicheleRivaCode
"Haskell, at its core, is simple: it is just a polymorphic lambda calculus with lazy evaluation plus algebraic data types and type classes"
MicheleRivaCode
Category theory can be helpful in understanding Haskell's type system. There exists a "Haskell category", of which the objects are Haskell types, and the morphisms from types a to b are Haskell functions of type a -> b.
MicheleRivaCode
Category theory can be helpful in understanding Haskell's type system. There exists a "Haskell category", of which the objects are Haskell types, and the morphisms from types a to b are Haskell functions of type a -> b.
MicheleRivaCode
map (3*) [1,2,3,4,5]
[1,2,3,4,5].map((x) => x * 3);
Haskell
JavaScript
MicheleRivaCode
fold (+) [1,2,3,4,5]
[1,2,3,4,5].reduce((acc, val) => acc + val);
Haskell
JavaScript
MicheleRivaCode
filter (>5) [1,2,3,4,5,6,7,8]
[1,2,3,4,5,6,7,8].filter((x) => x > 5);
Haskell
JavaScript
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
From Software Engineer
to Sr. Engineer & Technical Evangelist
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
I got into the top 0.01% of Medium writers for two months in a row
MicheleRivaCode
How do you succeed writing?
MicheleRivaCode
MicheleRivaCode
Find a niche
MicheleRivaCode
-
22 Sep 2022, Web Developer Conf Hamburg ๐ฉ๐ช Compiling and bundling JavaScript, the painless way
-
19 Jul 2022, StackConf ๐ฉ๐ช Are all programming languages in English?
-
22 Jun 2022, SailsConf ๐ณ๐ฌ Solving imaginary scaling issues
-
17 Jun 2022, React Summit ๐ณ๐ฑ You donโt want to server-side render your Next.js app
-
15 Jun 2022, WeAreDevelopers World Congress ๐ฉ๐ช Building a full-text search engine from scratch in TypeScript
-
3 Jun 2022, CODEStantine ๐ท๐ธ Compiling and bundling JavaScript, the painless way
-
18 May 2022, Codemotion ๐ฎ๐น Microfrontend discussion panel
-
16 May 2022, Sci-fi DevCon ๐ซ๐ท Are all programming languages in English?
-
13 May 2022, BeJS Brussels ๐ง๐ช Compiling and bundling JavaScript, the painless way
-
11 May 2022, Codemotion DevCast ๐ฎ๐น Microfrontends with WebPack and module federation
-
22 Apr 2022, JSDay ๐ฎ๐น Refactoring large JavaScript codebases
-
24 Mar 2022, Codemotion ๐ฎ๐น Are all programming in English?
-
10 Mar 2022, WebDay ๐ฎ๐น Understanding JavaScript compilation
-
18 Feb 2022, Node Congress ๐ณ๐ฑ Understanding JavaScript compilation
-
7 Feb 2022, GRUSP ๐ฎ๐น Building a full-text search engine from scratch in TypeScript
-
20 Jan 2022, Google DevFest Norway ๐ณ๐ด Solving imaginary scaling issues
-
16 Jan 2022, Google DevFest Pakistan ๐ต๐ฐ Solving Imaginary Scaling Issues
MicheleRivaCode
MicheleRivaCode
MicheleRivaCode
Find a niche
Collect feedback
Grow
MicheleRivaCode
Be consistent
MicheleRivaCode
MicheleRivaCode
@MicheleRiva
@MicheleRivaCode
/in/MicheleRiva95
www.micheleriva.dev
From ravioli maker to international speaker
By Michele Riva
From ravioli maker to international speaker
- 443