"
14 | }
15 | ],
16 | "postContent": [
17 | {
18 | "format": "_A few talks have been omitted or have gone into oblivion._"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/instructions.md:
--------------------------------------------------------------------------------
1 | Welcome to your new place on the web where all of your speaking engagements are tracked 🎉
2 |
3 | How to get started?
4 | 1. Hit the green button on the top-right that says `Use this template` and create your own repository out of this one.
5 | 2. In your new repository, create a new file of your recent speaking activity. There's an [example file](./pages/2021/2021-01-01.md) at `pages/2021/2021-01-01.md` to give you an idea of the format, and structure. If in doubt, head over to the [gigsboat CLI repository](https://github.com/gigsboat/cli) for even more information.
6 | 3. Update [gigsboat.json](./gigsboat.json) so that `markdownFile` config option is set to `README.md`.
7 | 4. Commit the file changes, and push to the main branch. Every time you make changes that merge into the `main` branch, a GitHub Actions [workflow](.github/workflows/main.yml) executes, parses all the data files under the `pages` directory, and commits to the repository a newly generated `README.md` file.
8 |
9 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "public-speaking",
3 | "version": "1.0.0",
4 | "description": "Matteo Collina public speaking gigs",
5 | "private": true,
6 | "scripts": {
7 | "build": "npx @gigsboat/cli && cp README.md gigsboat-eleventy-starter/index.md && npx @11ty/eleventy"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/mcollina/public-speaking.git"
12 | },
13 | "author": "Matteo Collina ",
14 | "bugs": {
15 | "url": "https://github.com/mcollina/public-speaking/issues"
16 | },
17 | "homepage": "https://github.com/mcollina/public-speaking#readme",
18 | "dependencies": {
19 | "@11ty/eleventy": "^1.0.0",
20 | "@gigsboat/cli": "github:gigsboat/cli",
21 | "markdown-it": "^12.3.2",
22 | "markdown-it-anchor": "^8.4.1"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/pages/2013/make-things-that-work-with-us.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2013-08-09
3 | tags: post
4 | name: Distill by EngineYard
5 | type: conference
6 | title: Making things that work with us
7 | slides_url: https://www.slideshare.net/matteocollina/making-things-that-work-with-us-distill
8 | recording_url:
9 | city: San Francisco
10 | country: United States
11 | country_code: US
12 | language: English
13 | recognitions:
14 | image_header:
15 | images:
16 | ---
17 |
18 |
--------------------------------------------------------------------------------
/pages/2013/mqtt-and-nodejs.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2013-09-09
3 | tags: post
4 | name: NodeConf.eu
5 | url: https://nodeconf.eu
6 | type: conference
7 | title: MQTT and Node.js, Messaging in the Internet of Things
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=WE7GVIFRV7Q
10 | city: Waterford
11 | country: Ireland
12 | country_code: IE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | "MQTT" is a publish/subscribe protocol for the Internet of Things (IoT). In this talk, we discuss what problems it solves, why the IoT need such a protocol, and the "Node.js" implementations!
20 | "MQTT" has been around for 20 years, but it is getting a lot of hype recently because it has almost no overhead, it is FAST, and it supports an offline mode.
21 | Using "MQTT", you are now able to send and receive messages to and from things, directly in your "javascript" application, both in "Node.js" and the browser.
22 | You can even receive the messages from your thing if you are offline, just when you connect back!
23 |
24 | You can find all the software cited in the presentation in the following links:
25 |
26 | http://mqtt.org
27 | https://github.com/adamvr/MQTT.js
28 | https://github.com/mcollina/mosca
29 | https://github.com/mcollina/mows
30 | https://github.com/mcollina/node-coap
31 | https://github.com/mcollina/ponte
32 |
33 | Update: The "MQTT-over-websocket" that was presented in the talk is now released and integrated into "Mosca".
34 |
--------------------------------------------------------------------------------
/pages/2014/full-stack-through-microservices.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2014-09-07
3 | tags: post
4 | name: NodeConf.eu
5 | url: http://nodeconf.eu
6 | type: conference
7 | title: Full Stack Through Microservices
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=l4Oc3E1hvTQ
10 | city: Waterford
11 | country: Ireland
12 | country_code: IE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In this talk, I present a new way to compose microservices as through streams
20 |
--------------------------------------------------------------------------------
/pages/2014/harware-hacking-on-stage.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2014-11-21
3 | tags: post
4 | name: NodeConf Budapest 2014
5 | url:
6 | type: conference
7 | title: Hardware Hacking on Stage
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=6qF_x_wGLl0
10 | city: Budapest
11 | country: Hungary
12 | country_code: HU
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Matteo did some wild hardware hacking live on stage: a connected device piece by piece and connect it to a Web Application.
20 |
--------------------------------------------------------------------------------
/pages/2014/live-code-a-robot.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2014-06-27
3 | tags: post
4 | name: LXJS
5 | url:
6 | type: conference
7 | title: Live Code a Robot and Control it from the Web
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=BxJ-27Nnakc
10 | city: Lisbon
11 | country: Portugal
12 | country_code: PT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2014/live-code-the-internet-of-things.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2014-10-23
3 | tags: post
4 | name: FullStack
5 | url: https://skillsmatter.com/conferences/6361-fullstack-node-and-javascript-conference#overview
6 | type: conference
7 | title: Live Code the Intenet of Things
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/5779-live-code-the-internet-of-things
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2014/mqtt-and-nodejs.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2014-05-14
3 | tags: post
4 | name: JSDay
5 | url: https://2014.jsday.it
6 | type: conference
7 | title: Taking your things to your web app using MQTT and Node.js
8 | slides_url:
9 | recording_url: https://vimeo.com/128349453
10 | city: Verona
11 | country: Italy
12 | country_code: IT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | MQTT is a publish/subscribe protocol for the Internet of Things (IoT). In this talk, we discuss what problems it solves, why the IoT need such a protocol, and the Node.js implementation!
20 |
21 | MQTT has been around for 20 years, but it is getting a lot of hype recently because it has almost no overhead, it is FAST, and it supports an offline mode.
22 |
23 | Using MQTT, you are now able to send and receive messages to and from things, directly in your Javascript application, both in Node.js and in the browser.
24 | You can even receive the messages from your thing if you are offline, just when you connect back!
25 |
--------------------------------------------------------------------------------
/pages/2015/no-la-sottile-arte-di-trovare-il-tempo-dove-non-esiste.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2015-03-25
3 | tags: post
4 | name: Codemotion Rome
5 | url:
6 | type: conference
7 | title: NO. La sottile arte di trovare il tempo dove non esiste - Codemotion Rome 2015
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=9Pbu5rMiz5g
10 | city: Rome
11 | country: Italy
12 | country_code: IT
13 | language: Italian
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2015/reaching-ludicrous-speed.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2015-12-08
3 | tags: post
4 | name: Node.js Interactive 2015
5 | url: http://events17.linuxfoundation.org/events/archive/2015/node-interactive
6 | type: conference
7 | title: Reaching Ludicrous Speed
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=_0W_822Dijg
10 | city: Portland
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | How can our Node.js can be faster? What does faster means?
20 | In this journey we would walk through different performance optimization techniques you can apply to your code.
21 | We will see start from --v8-options, and we will discover how to leverage what v8 tells us to optimize our code.
22 | We will discuss hidden classes, function optimizations and deoptimizations, and inlining. We will discuss the tools
23 | and the libraries you can use to do perf analysis on your code. In this journey, we will discover that the main villain
24 | is Lord GC, and we will fight him to reclaim our memory!
25 |
--------------------------------------------------------------------------------
/pages/2015/we-are-not-object-oriented-anymore-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2015-10-26
3 | tags: post
4 | name: FullStack
5 | url: https://skillsmatter.com/conferences/6612-fullstack#skillscasts
6 | type: conference
7 | title: We are not Object Oriented anymore
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/6819-we-are-not-object-oriented-anymore-or-why-the-node-callback-style-is-awesome
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2015/we-are-not-object-oriented-anymore-ucon-london.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2015-11-09
3 | tags: post
4 | name: uCon
5 | url: https://skillsmatter.com/conferences/6612-fullstack#skillscasts
6 | type: conference
7 | title: We are not Object Oriented anymore
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/7014-we-are-not-object-oriented-anymore
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2015/we-are-not-object-oriented-anymore-ucon.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2015-11-05
3 | tags: post
4 | name: uCon Stockholm
5 | url: https://skillsmatter.com/conferences/7279-mucon-stockholm-2015-the-microservices-conference
6 | type: conference
7 | title: We are not Object Oriented anymore
8 | slides_url:
9 | recording_url:
10 | city: Stockholm
11 | country: Sweden
12 | country_code: SE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2016/scaling-state-ucon.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-11-07
3 | tags: post
4 | name: uCon
5 | url: https://skillsmatter.com/conferences/6612-fullstack#skillscasts
6 | type: conference
7 | title: Scaling State
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/8747-scaling-state
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2016/the-cost-of-logging-node-interactive.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-09-15
3 | tags: post
4 | name: Node.js Interactive Europe 2016
5 | url:
6 | type: conference
7 | title: The Cost of Logging
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=Dnx2SPdcDSU
10 | city: Amsterdam
11 | country: Netherlands
12 | country_code: NL
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Sunday morning and your phone rings: production is down.
20 | After two hours, you manage to solve it: you could have fixed it in one minute
21 | if you had the right information from the start. To avoid this issue you add logging everywhere,
22 | then your application requires twice as many servers to run.
23 | This talk is for you: Learn about [Pino](https://www.getpino.io). It logs in JSON, and it’s up to 17 times faster
24 | than traditional loggers, and it comes with nice Express and Hapi integrations.
25 |
--------------------------------------------------------------------------------
/pages/2016/the-cost-of-logging-node-summit.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-07-26
3 | tags: post
4 | name: Node.js Summit 2016
5 | url:
6 | type: conference
7 | title: The Cost of Logging
8 | slides_url:
9 | recording_url: https://vimeo.com/180476148
10 | city: San Francisco
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Sunday morning and your phone rings: production is down.
20 | After two hours, you manage to solve it: you could have fixed it in one minute
21 | if you had the right information from the start. To avoid this issue you add logging everywhere,
22 | then your application requires twice as many servers to run.
23 | This talk is for you: Learn about [Pino](https://www.getpino.io). It logs in JSON, and it’s up to 17 times faster
24 | than traditional loggers, and it comes with nice Express and Hapi integrations.
25 |
--------------------------------------------------------------------------------
/pages/2016/the-cost-of-logging-nodeconf.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-10-20
3 | tags: post
4 | name: NodeConf.eu
5 | url:
6 | type: conference
7 | title: The Cost of Logging
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=zja-_IYNrFc
10 | city: Waterford
11 | country: Ireland
12 | country_code: IE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Sunday morning and your phone rings: production is down.
20 | After two hours, you manage to solve it: you could have fixed it in one minute
21 | if you had the right information from the start. To avoid this issue you add logging everywhere,
22 | then your application requires twice as many servers to run.
23 | This talk is for you: Learn about [Pino](https://www.getpino.io). It logs in JSON, and it’s up to 17 times faster
24 | than traditional loggers, and it comes with nice Express and Hapi integrations.
25 |
--------------------------------------------------------------------------------
/pages/2016/we-are-not-object-oriented-anymore.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-03-18
3 | tags: post
4 | name: Codemotion Rome 2016
5 | url:
6 | type: conference
7 | title: We are not Object-Oriented Anymore
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=5uucS0LH-oM
10 | city: Rome
11 | country: Italy
12 | country_code: IE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | All of you have been taught that GOOD code is Object Oriented.
20 | Why do you find so difficult to write distributed code?
21 | Why should be that hard to move a piece of code from the current machines to another?
22 | With this talk will explore what Object Oriented code is good and not good for,
23 | and why the node.js is an extremely good fit for microservices architectures.
24 |
--------------------------------------------------------------------------------
/pages/2017/how-open-source-changed-my-life.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-05-10
3 | tags: post
4 | name: JSDay
5 | url: https://2017.jsday.it/
6 | type: conference
7 | title: How Open Source Changed My Life!
8 | slides_url:
9 | recording_url: https://vimeo.com/236315423
10 | city: Verona
11 | country: Italia
12 | country_code: IT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 | At some point in my career I decided I wanted to quit software development and do an MBA. For a stroke of luck, I failed the admission test and I kept developing software. It was early 2010, and I did not know Node.js existed, and the impact it would have on my life.
19 |
20 | I wanted to speak at conferences, and I was terrible at it.
21 |
22 | Then, I was lucky to find a job that allowed me time to develop Open Source libraries. I was lucky that someone noticed one, and I went speaking at NodeConf.eu 2013.
23 |
24 | Now I travel the world as a consultant and conference speaker, and I maintain close to 200 OSS libraries. Open Source can change your life too, because there is no such thing as luck.
25 |
--------------------------------------------------------------------------------
/pages/2017/scalable-pub-sub.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-06-01
3 | tags: post
4 | name: Web Rebels
5 | url: https://2017.webrebels.org/
6 | type: conference
7 | title: Scaling State
8 | slides_url:
9 | recording_url: https://2017.webrebels.org/
10 | city: Oslo
11 | country: Norway
12 | country_code: NO
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | The world is real-time: our users expect to receive live notifications, updates, and use extremely reactive interfaces. In a real-time world, we might want to connect physical things, each of them with their own live connection to the cloud. Delivering live notifications has always been a complex task, but tools like WebSockets and Socket.io have enabled a wide range of applications to flourish.
20 |
21 | Scaling those systems often turns out to be problematic. Generally an external publish/subscribe broker is leveraged to deliver the messages, with our application or the framework acting as a proxy. These brokers are usually central points of failure, and extremely difficult to scale.
22 |
23 | UpRing is a distributed system framework for building applications on top of a Consistent Hashring. In other words, UpRing is a P2P system for cloud applications. With UpRing, all the notifications for a single element are routed through the same server, removing the central point of failure and allowing for fine-grained elastic scalability in ratio to the amount of current users.
24 |
--------------------------------------------------------------------------------
/pages/2017/take-your-http-server-to-ludicrous-speed-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-07-12
3 | tags: post
4 | name: FullStack
5 | type: conference
6 | url: https://skillsmatter.com/conferences/8264-fullstack-2017-the-conference-on-javascript-node-and-internet-of-things#skillscasts
7 | title: Take Your Http Server to Ludicrous Speed
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed
10 | city: Londong
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Express, Hapi, Restify, or just plain Node.js core? Which framework should I choose? In my journey in nodeland, I always wonder about the cost of my abstractions. require(‘http’) can reach 25k requests/sec, Express 9k, and Hapi 2k.
20 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 20k requests/sec, Fastify can halve your cloud server bill.
21 | How can Fastify be so.. fast? We will see start by analyzing flamegraphs with 0x, and then delve into --v8-options, discovering how to leverage V8’s feedback and optimize our code. We will discuss function inlining, optimizations and deoptimizations. We will discuss the tools and the libraries you can use to do performance analysis on your code. In Fastify we reach a point where even allocating a callback is too slow: Ludicrous Speed.
22 |
--------------------------------------------------------------------------------
/pages/2017/take-your-http-server-to-ludicrous-speed.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-10-04
3 | tags: post
4 | name: Node.js Interactive 2017
5 | url: http://events17.linuxfoundation.org/events/node-interactive
6 | type: conference
7 | title: Take Your Http Server to Ludicrous Speed
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=gltzZjKYK1I
10 | city: Vancouver
11 | country: Canada
12 | country_code: CA
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Express, Hapi, Restify, or just plain Node.js core? Which framework should I choose? In my journey in nodeland, I always wonder about the cost of my abstractions. require(‘http’) can reach 25k requests/sec, Express 9k, and Hapi 2k.
20 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 20k requests/sec, Fastify can halve your cloud server bill.
21 | How can Fastify be so.. fast? We will see start by analyzing flamegraphs with 0x, and then delve into --v8-options, discovering how to leverage V8’s feedback and optimize our code. We will discuss function inlining, optimizations and deoptimizations. We will discuss the tools and the libraries you can use to do performance analysis on your code. In Fastify we reach a point where even allocating a callback is too slow: Ludicrous Speed.
22 |
--------------------------------------------------------------------------------
/pages/2017/the-cost-of-logging-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-07-12
3 | tags: post
4 | name: FullStack
5 | type: conference
6 | url: https://skillsmatter.com/conferences/8264-fullstack-2017-the-conference-on-javascript-node-and-internet-of-things#skillscasts
7 | title: The Cost of Logging
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/10479-the-cost-of-logging-intermediate
10 | city: Londong
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Sunday morning and your phone rings: production is down.
20 | After two hours, you manage to solve it: you could have fixed it in one minute
21 | if you had the right information from the start. To avoid this issue you add logging everywhere,
22 | then your application requires twice as many servers to run.
23 | This talk is for you: Learn about [Pino](https://www.getpino.io). It logs in JSON, and it’s up to 17 times faster
24 | than traditional loggers, and it comes with nice Express and Hapi integrations.
25 |
--------------------------------------------------------------------------------
/pages/2017/the-node-movement-and-how-to-play-a-part.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2017-10-04
3 | tags: post
4 | name: Node.js Interactive 2017
5 | url: http://events17.linuxfoundation.org/events/node-interactive
6 | type: conference
7 | title: The Node movement and how to play a part
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=OekXkuZ2u7o
10 | city: Vancouver
11 | country: Canada
12 | country_code: CA
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | As with every significant movement, the node movement will be marked in the history books.
20 | This talk covers how open source is really an art and best practices in making it a sustainable art throughout time.
21 |
22 | This talk should have been delivered by Cian O'Maidin, NearForm CEO.
23 | Unfortunately he fell sick the day before, and he was not be able to travel
24 |
--------------------------------------------------------------------------------
/pages/2018/a-new-way-to-profile-node-js-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-06-28
3 | tags: post
4 | name: FullStack
5 | url: https://skillsmatter.com/conferences/9815-fullstack-2018-the-conference-on-javascript-node-and-internet-of-things#skillscasts
6 | type: conference
7 | title: A New Way to Profile Node.js
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/11781-a-new-way-to-profile-node-js
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | It’s been weeks and the organization you work for seems to be slowly turning against you.
20 | At least that’s what it feels like. User experience is poor because of slow API’s,
21 | sales are being missed, performance-linked SEO heuristics are causing a drop in page ranking.
22 | Mobile users have all but given up. Operations have reported that a critical Node.js service
23 | owned by your team is spinning at 70-100% CPU, and all parts of the application dependent on
24 | the service are experiencing intermittent slowdowns or in some cases, complete unavailability.
25 | What are you going to do now?
26 |
27 | In this talk we’ll present a new and straightforward way to identify bottlenecks in Node.js and beyond.
28 |
--------------------------------------------------------------------------------
/pages/2018/a-new-way-to-profile-node-js-workerconf.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-06-28
3 | tags: post
4 | name: WorkerConf
5 | url: https://www.alpine-conferences.com/
6 | type: conference
7 | title: A New Way to Profile Node.js
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=DOIpzLJ1oN8
10 | city: Dornbirn
11 | country: Austria
12 | country_code: AT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | It’s been weeks and the organization you work for seems to be slowly turning against you.
20 | At least that’s what it feels like. User experience is poor because of slow API’s,
21 | sales are being missed, performance-linked SEO heuristics are causing a drop in page ranking.
22 | Mobile users have all but given up. Operations have reported that a critical Node.js service
23 | owned by your team is spinning at 70-100% CPU, and all parts of the application dependent on
24 | the service are experiencing intermittent slowdowns or in some cases, complete unavailability.
25 | What are you going to do now?
26 |
27 | In this talk we’ll present a new and straightforward way to identify bottlenecks in Node.js and beyond.
28 |
--------------------------------------------------------------------------------
/pages/2018/graphql-accelerated.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-06-28
3 | tags: post
4 | name: NodeConf.eu
5 | url: https://nodeconf.eu
6 | type: conference
7 | title: GraphQL Accelerated
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=-V86BB9wrG8
10 | city: Waterford
11 | country: Ireland
12 | country_code: IE
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | GraphQL is a query language that is rapidly gaining wide adoption across the community. It combines type validation with a query and filtering syntax that makes it easy to get up-and-running with a powerful web API in almost no time.
20 |
21 | Features like running parallel queries or update-all become much easier, because they are first class citizens of GraphQL. Add to that a vibrant community that keeps creating excellent tooling and documentation, it’s clear why GraphQL has become so popular with developers.
22 |
23 | Every abstraction has a cost, and GraphQL is no exception. The added complexity and a new schema format to parse and execute mean new performance bottlenecks.
24 |
25 | In addition to performance issues, the wrong use of GraphQL can lead to architectural bottlenecks. Instead of viewing this as a problem we took this as a challenge.
26 |
27 | In this talk we’ll cover what GraphQL is, why it’s great and how we made it run a lot faster on Node.js, in fact *much* faster, using different performance techniques that we have learned in the last few years.
28 |
--------------------------------------------------------------------------------
/pages/2018/my-nodejs-process-is-on-fire-jsday.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-04-09
3 | tags: post
4 | name: JSDay
5 | url: https://2018.jsday.it/
6 | type: conference
7 | title: My Node.js Process is on Fire!
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=mR5AhImHjZU
10 | city: Verona
11 | country: Italia
12 | country_code: IT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | At 10am on Black Friday, your phone rings: the new JS application you deployed came under too much load, and the site has gone down!
20 | Your employer is losing sales opportunities... your employer is losing money! But you don’t lose your cool.
21 | You log into your cloud provider and tweak your autoscaling settings. Now the deployment can handle the load spike but with four times
22 | the number of servers, which is four times the cost. The next day, you try to analyze what happened and begin to optimize your application
23 | to prepare for future load spikes. This talk is a journey into the world of Node.js performance, taking a look at the available tools and
24 | optimization techniques inspired by insight gained from glimpsing under the hood of Node and V8.
25 |
--------------------------------------------------------------------------------
/pages/2018/my-nodejs-process-is-on-fire.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-01-25
3 | tags: post
4 | name: JSConf Asia 2018
5 | url:
6 | type: conference
7 | title: My Node.js Process is on Fire!
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=G9Vkpe55Gu8
10 | city: Singapore
11 | country: Singapore
12 | country_code: SG
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | At 10am on Black Friday, your phone rings: the new JS application you deployed came under too much load, and the site has gone down!
20 | Your employer is losing sales opportunities... your employer is losing money! But you don’t lose your cool.
21 | You log into your cloud provider and tweak your autoscaling settings. Now the deployment can handle the load spike but with four times
22 | the number of servers, which is four times the cost. The next day, you try to analyze what happened and begin to optimize your application
23 | to prepare for future load spikes. This talk is a journey into the world of Node.js performance, taking a look at the available tools and
24 | optimization techniques inspired by insight gained from glimpsing under the hood of Node and V8.
25 |
--------------------------------------------------------------------------------
/pages/2018/the-nodejs-performance-workshop-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-07-11
3 | tags: post
4 | name: FullStack
5 | url: https://skillsmatter.com/conferences/9815-fullstack-2018-the-conference-on-javascript-node-and-internet-of-things#skillscasts
6 | title: The Node.js Performance Workshop
7 | slides_url:
8 | type: workshop
9 | recording_url:
10 | city: Londong
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Sunday morning and your phone rings: production is down.
20 | After two hours, you manage to solve it: you could have fixed it in one minute
21 | if you had the right information from the start. To avoid this issue you add logging everywhere,
22 | then your application requires twice as many servers to run.
23 | This talk is for you: Learn about [Pino](https://www.getpino.io). It logs in JSON, and it’s up to 17 times faster
24 | than traditional loggers, and it comes with nice Express and Hapi integrations.
25 |
--------------------------------------------------------------------------------
/pages/2018/the-state-of-nodejs-core.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-11-26
3 | tags: post
4 | name: Nodejsconf.it 2018
5 | url:
6 | type: conference
7 | title: The State of Node.js Core
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=IgLDtvo6kLM
10 | city: Verona
11 | country: Italia
12 | country_code: IT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | What's the current state of Node.js core?
20 | What's new? What's coming? How is the project doing? This talk will dive deep into the project and highlight everything that is happening.
21 |
--------------------------------------------------------------------------------
/pages/2018/there-is-no-such-thing-as-luck.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-04-11
3 | tags: post
4 | name: Codemotion Rome 2018
5 | url:
6 | type: conference
7 | title: There is no such thing as Luck
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=SJjvafV7xlU
10 | city: Rome
11 | country: Italy
12 | country_code: IT
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | “How lucky you are that you are paid to work on Open Source Software!” Thanks, but that was not luck.
20 | I was lucky that my father put me in front of a Commodore64 when I was four.
21 | I was lucky when my application for an MBA got rejected… but I developed OSS libraries for two years before anyone noticed.
22 | The truth is that there is absolutely no luck in becoming an OSS developer.
23 | You need dedication, will and grit. Along with a strong desire for learning new things: from mastering version control to convincing others of your ideas.
24 | The good news is that you can become an OSS developer too!
25 |
--------------------------------------------------------------------------------
/pages/2019/a-new-way-to-profile-node-js-qcon.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-03-06
3 | tags: post
4 | name: QCon London 2019
5 | url: https://qconlondon.com/schedule/london2019/list
6 | type: conference
7 | title: A New Way to Profile Node.js
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=ASv8188AkVk
10 | city: London
11 | country: United Kingdom
12 | country_code: UK
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | It’s been weeks and the organization you work for seems to be slowly turning against you.
20 | At least that’s what it feels like. User experience is poor because of slow API’s,
21 | sales are being missed, performance-linked SEO heuristics are causing a drop in page ranking.
22 | Mobile users have all but given up. Operations have reported that a critical Node.js service
23 | owned by your team is spinning at 70-100% CPU, and all parts of the application dependent on
24 | the service are experiencing intermittent slowdowns or in some cases, complete unavailability.
25 | What are you going to do now?
26 |
27 | In this talk we’ll present a new and straightforward way to identify bottlenecks in Node.js and beyond.
28 |
--------------------------------------------------------------------------------
/pages/2019/bubble-up-your-node-io-jsconf-hawaii.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-02-07
3 | tags: post
4 | name: JSConf Hawaii 2019
5 | url: https://2019.jsconfhi.com/
6 | type: conference
7 | title: Bubble Up Your Node.js I/O - JSConf Hawaii 2019
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=rYqh5LYfw0Y
10 | city: Honolulu
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | One of the more difficult concepts to grasp when debugging a Node.js application is the flow of asynchronous context.
20 | To make it easier for us, we have created a new open source visualization tool that brings the Node.js asynchronous flow to life.
21 | This talk will dive deep into trace events, async_hooks, and context tracking through a Node.js process.
22 | We will show that while the amount of data is staggering, it is possible to visualize it through.. bubbles!
23 |
--------------------------------------------------------------------------------
/pages/2019/graphql-simplified.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-12-11
3 | tags: post
4 | name: Node.js Interactive 2019
5 | url: https://events19.linuxfoundation.org/events/nodejs-interactive-2019/
6 | type: conference
7 | title: GraphQL Simplified
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=E7KDpZYO_1o
10 | city: Montreal
11 | country: Canada
12 | country_code: CA
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Use React? Use GraphQL? Love Hooks? `graphql-hooks` is a new GraphQL client for React with a hooks-first API.
20 | It’s super fast and weighs only 1.9kB gzipped.
21 |
22 | The motivation behind graphql-hooks was a barebones GraphQL Client, focused on speed and lightweight.
23 | Both Apollo and Relay have pioneered how to use GraphQL on the client.
24 | However, over the years they’ve grown in size and complexity. This has increased the barrier to entry
25 | for new developers excited to try out GraphQL.
26 |
27 | In this workshop, David and Matteo will be demonstrating how quick and simple it is to get up and running
28 | with the graphql-hooks client and fastify-gql GraphQL server library to produce an easily maintainable and
29 | high performance fullstack GraphQL implementation.
30 |
--------------------------------------------------------------------------------
/pages/2019/jsparty-streams.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-11-14
3 | tags: post
4 | name: JS Party
5 | url: https://changelog.com/jsparty
6 | type: podcast
7 | title: You're probably using streams
8 | slides_url:
9 | recording_url: https://changelog.com/jsparty/103
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2019/microsoft-build.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-05-06
3 | tags: post
4 | name: Microsoft Build
5 | url:
6 | type: conference
7 | title: Build Scalable APIs with GraphQL
8 | slides_url:
9 | recording_url:
10 | city: Seattle
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
--------------------------------------------------------------------------------
/pages/2019/realtalkjavascript-nodejs-optimization-and-performance.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-11-14
3 | tags: post
4 | name: Real Talk JavaScript
5 | url: https://webrush.io/
6 | type: podcast
7 | title: Node.js Optimization and Performance - Matteo Collina
8 | slides_url:
9 | recording_url: https://webrush.io/episodes/56c29daf-a173683b
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2019/stream-into-the-future-interactive.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-12-11
3 | tags: post
4 | name: Node.js Conference Netherlands 2019
5 | url: https://www.nodeconference.nl/
6 | type: conference
7 | title: Stream Into the Future
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=RVcd1c-sTjU
10 | city: Amsterdam
11 | country: Netherlands
12 | country_code: NL
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | There was a time when Node.js streams were all the rage but over time the Node.js Core Streams
20 | codebase became extremely complex and hard to understand. Worse still, WHATWG introduced an API
21 | for browser Streams. The two Streams API’s are incompatible with each other and both are complex
22 | and leaky abstractions. In this talk, a Node.js Core Streams maintainer presents a stream-less
23 | future by demonstrating how to use pure JavaScript: Async Iterators and Generators can give us
24 | everything Streams can while being completely cross-platform and highly performant.
25 |
--------------------------------------------------------------------------------
/pages/2019/stream-into-the-future-netherlands.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-12-11
3 | tags: post
4 | name: Node.js Interactive 2019
5 | url: http://events17.linuxfoundation.org/events/archive/2019/node-interactive
6 | type: conference
7 | title: Stream Into the Future
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=dEFdt_6fW-0
10 | city: Montreal
11 | country: Canada
12 | country_code: CA
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | There was a time when Node.js streams were all the rage but over time the Node.js Core Streams
20 | codebase became extremely complex and hard to understand. Worse still, WHATWG introduced an API
21 | for browser Streams. The two Streams API’s are incompatible with each other and both are complex
22 | and leaky abstractions. In this talk, a Node.js Core Streams maintainer presents a stream-less
23 | future by demonstrating how to use pure JavaScript: Async Iterators and Generators can give us
24 | everything Streams can while being completely cross-platform and highly performant.
25 |
--------------------------------------------------------------------------------
/pages/2019/stream-into-the-future-workerconf.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-06-27
3 | tags: post
4 | name: WorkerConf
5 | url: https://www.alpine-conferences.com/
6 | type: conference
7 | title: Stream Into the Future
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=bD8OrK50SuQ
10 | city: Amsterdam
11 | country: Netherlands
12 | country_code: NL
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | There was a time when Node.js streams were all the rage but over time the Node.js Core Streams
20 | codebase became extremely complex and hard to understand. Worse still, WHATWG introduced an API
21 | for browser Streams. The two Streams API’s are incompatible with each other and both are complex
22 | and leaky abstractions. In this talk, a Node.js Core Streams maintainer presents a stream-less
23 | future by demonstrating how to use pure JavaScript: Async Iterators and Generators can give us
24 | everything Streams can while being completely cross-platform and highly performant.
25 |
--------------------------------------------------------------------------------
/pages/2019/take-your-http-server-to-ludicrous-speed-fullstack.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2019-05-12
3 | tags: post
4 | name: FullStack NYC
5 | type: conference
6 | url: https://skillsmatter.com/conferences/11077-fullstack-nyc-2019-the-conference-on-javascript-node-and-internet-of-things#skillscasts
7 | title: Take Your Http Server to Ludicrous Speed
8 | slides_url:
9 | recording_url: https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed
10 | city: New York
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Express, Hapi, Restify, or just plain Node.js core? Which framework should I choose? In my journey in nodeland, I always wonder about the cost of my abstractions. require(‘http’) can reach 25k requests/sec, Express 9k, and Hapi 2k.
20 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 20k requests/sec, Fastify can halve your cloud server bill.
21 | How can Fastify be so.. fast? We will see start by analyzing flamegraphs with 0x, and then delve into --v8-options, discovering how to leverage V8’s feedback and optimize our code. We will discuss function inlining, optimizations and deoptimizations. We will discuss the tools and the libraries you can use to do performance analysis on your code. In Fastify we reach a point where even allocating a callback is too slow: Ludicrous Speed.
22 |
--------------------------------------------------------------------------------
/pages/2020/build-a-community-not-a-framework-jsday.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-22
3 | tags: post
4 | name: JSDay
5 | url: https://2020.jsday.it/
6 | type: conference
7 | title: Build a community, not a framework!
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=QO_LLYx3mAQ
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | You are watching from the sides, dreaming about building the next (popular?) framework or library in your field. You dream about presenting your creation in front of hundreds of people at [NameOfConference]. You believe in yourself, and all of a sudden you have thousands of downloads per month and developers relying on you to maintain your library. You think you made it, instead it all starts here.
20 | What does make an Open Source library or framework successful? Can something become popular just because it’s technologically superior, or shows a clear innovation path? A single maintainer can only do so much, trying to divide their time between adding new features, bug fixes, and dependency updates.
21 | Maintaining a successful Open Source project is too much of a burden for a single individual, often working on its own time. You need something else, you need a community.
22 |
23 |
--------------------------------------------------------------------------------
/pages/2020/build-a-community-not-a-framework.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-22
3 | tags: post
4 | name: Open.js World 2020
5 | url: https://events.linuxfoundation.org/openjs-world/
6 | type: conference
7 | title: Build a community, not a framework!
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=e0rdy7APH-o
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | You are watching from the sides, dreaming about building the next (popular?) framework or library in your field. You dream about presenting your creation in front of hundreds of people at [NameOfConference]. You believe in yourself, and all of a sudden you have thousands of downloads per month and developers relying on you to maintain your library. You think you made it, instead it all starts here.
20 | What does make an Open Source library or framework successful? Can something become popular just because it’s technologically superior, or shows a clear innovation path? A single maintainer can only do so much, trying to divide their time between adding new features, bug fixes, and dependency updates.
21 | Maintaining a successful Open Source project is too much of a burden for a single individual, often working on its own time. You need something else, you need a community.
22 |
23 |
--------------------------------------------------------------------------------
/pages/2020/can-we-double-http-client-throughput.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-11-02
3 | tags: post
4 | name: NodeConf Remote
5 | url: https://nodeconfremote.com
6 | type: conference
7 | title: Can We Double HTTP Client Throughput?
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=D9xblqBAHO8
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | The Node.js HTTP client is a fundamental part of any application, yet many think it cannot be improved. I took this as a challenge and I’m now ready to present a new HTTP client for Node.js, undici, that doubles the throughput of your application
20 | The story behind this improvement begins with the birth of TCP/IP and it is rooted in one of the fundamental limitations of networking: head-of-line blocking (HOL blocking). HOL blocking is one of those topics that developers blissfully ignore and yet it deeply impacts the runtime experience of the distributed applications that they build every day. Undici is a HTTP/1.1 client that avoids HOL blocking by using keep-alive and pipelining, resulting in a doubling of your application throughput.
21 |
22 |
--------------------------------------------------------------------------------
/pages/2020/graphql-accelerated.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-10-02
3 | tags: post
4 | name: Nodejsday
5 | url: https://2020.nodejsday.it/
6 | type: conference
7 | title: GraphQL Accelerated
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=CQ1KgfVcL2E
10 | language: English
11 | recognitions:
12 | image_header:
13 | images:
14 | ---
15 |
16 | GraphQL is a query language that is rapidly gaining wide adoption across the community. It combines type validation with a query and filtering syntax that makes it easy to get up-and-running with a powerful web API in almost no time.
17 |
18 | Features like running parallel queries or update-all become much easier, because they are first class citizens of GraphQL. Add to that a vibrant community that keeps creating excellent tooling and documentation, it’s clear why GraphQL has become so popular with developers.
19 |
20 | Every abstraction has a cost, and GraphQL is no exception. The added complexity and a new schema format to parse and execute mean new performance bottlenecks.
21 |
22 | In addition to performance issues, the wrong use of GraphQL can lead to architectural bottlenecks. Instead of viewing this as a problem we took this as a challenge.
23 |
24 | In this talk we’ll cover what GraphQL is, why it’s great and how we made it run a lot faster on Node.js, in fact *much* faster, using different performance techniques that we have learned in the last few years.
25 |
--------------------------------------------------------------------------------
/pages/2020/jsnation-broken-promises-workshop.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-11
3 | tags: post
4 | name: JSNation
5 | url: https://jsnation.com/
6 | type: workshop
7 | title: Broken Promises
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In our experience, if you are using promises, you are likely using them wrong (and nearly everybody else is too). This is most often due to misunderstandings about how Promises work, choices that were made by TC39 when designing the promises API, inconsistencies in how Promises are used, or failure to account for the cost of using Promises in an application, and ultimately how the event loop works.
20 |
21 | In this workshop, we aim to help developers do the right thing with Promises. Through a series of hands on exercises and puzzles, developers will learn the ins and outs of developing with Promises in Node.js, learning everything they should do, and most importantly what they shouldn’t do, in order to maximize the effectiveness of their code and avoid common performance pitfalls.
22 |
--------------------------------------------------------------------------------
/pages/2020/one-two-three-fastify-nottjs.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-07-14
3 | tags: post
4 | name: NOTTjs
5 | url: https://nottsjs.org/events/2020-07-14-one-two-three-fastify/
6 | type: meetup
7 | title: 1, 2, 3.. Fastify!
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In my journey through nodeland, I always wonder about the cost of my abstractions.
20 |
21 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 90k requests/sec, Fastify can halve your cloud server bill.
22 |
23 | In this talk, I will walk you through the basics of the framework: how to route requests, write tests, and use the plugin system.
24 |
--------------------------------------------------------------------------------
/pages/2020/one-two-three-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-17
3 | tags: post
4 | name: JSNation
5 | url: https://portal.gitnation.org/events/jsnation-live-2020
6 | type: conference
7 | title: 1, 2, 3.. Fastify!
8 | slides_url:
9 | recording_url: https://portal.gitnation.org/contents/1-2-3-fastify
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In my journey through nodeland, I always wonder about the cost of my abstractions.
20 |
21 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 90k requests/sec, Fastify can halve your cloud server bill.
22 |
23 | In this talk, I will walk you through the basics of the framework: how to route requests, write tests, and use the plugin system.
24 |
--------------------------------------------------------------------------------
/pages/2020/openhive-alessandro-polidori.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-10-07
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Alessandro Polidori on Open Source and VoIP
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Alessandro-Polidori-on-Open-Source-and-VoIP-ekno7f
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-anthony-aragues-data-viz.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-10-07
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Anthony Aragues on Data Visualisation
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Anthony-Aragues-on-Data-Visualisation-emau0n
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-kenigbolo.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-08-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Kenigbolo Meya Stephen on Documentation
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Kenigbolo-Meya-Stephen-on-Documentation-ejc6a7
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-laurie-bath.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-08
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Laurie Barth on Maintaining Gatsby
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Laurie-Barth-on-Maintaining-Gatsby-ef6p8i
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-liran-tal.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-08
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Liran Tal on Empowering Open Source
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Liran-Tal-on-Empowering-Open-Source-ef6lt7
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-mikeal-decentralized-databases.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-12-09
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Mikeal Rogers on Decentralised Databases
8 | recording_url: https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-Decentralised-Databases-eniueg
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2020/openhive-nearform-contact-tracing.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-08-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: NearForm on Building Contact Tracing Apps
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/NearForm-on-Building-Contact-Tracing-Apps-ei1ujq
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-philip-dunkel.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-08
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Philipp Dunkel on Temporal
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Philipp-Dunkel-on-Temporal-ef562f
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/openhive-ramon-guijarro.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-07-06
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Ramón Guijarro on Modern Web APIs
8 | slides_url:
9 | recording_url: https://anchor.fm/openhivejs/episodes/Ramn-Guijarro-on-Modern-Web-APIs-egcfq3
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2020/openjsworld-broken-promises-workshop.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-06-11
3 | tags: post
4 | name: OpenJS World
5 | url: https://openjsworld2020.sched.com/
6 | type: workshop
7 | title: Broken Promises
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In our experience, if you are using promises, you are likely using them wrong (and nearly everybody else is too). This is most often due to misunderstandings about how Promises work, choices that were made by TC39 when designing the promises API, inconsistencies in how Promises are used, or failure to account for the cost of using Promises in an application, and ultimately how the event loop works.
20 |
21 | In this workshop, we aim to help developers do the right thing with Promises. Through a series of hands on exercises and puzzles, developers will learn the ins and outs of developing with Promises in Node.js, learning everything they should do, and most importantly what they shouldn’t do, in order to maximize the effectiveness of their code and avoid common performance pitfalls.
22 |
--------------------------------------------------------------------------------
/pages/2020/realtalkjavascript-expressway-to-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-08-11
3 | tags: post
4 | name: Real Talk JavaScript
5 | url: https://webrush.io/
6 | type: podcast
7 | title: Expressway to Fastify with Matteo Collina
8 | slides_url:
9 | recording_url: https://webrush.io/episodes/episode-96-expressway-to-fastify-with-matteo-collina
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/storie-di-developers.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-05-20
3 | tags: post
4 | name: Storie di developers
5 | url:
6 | type: webinar
7 | title: Intervista a Matteo Collina
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=VHoyXNqjuGY
10 | language: Italian
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2020/stream-into-the-future-node-tlv.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-03-03
3 | tags: post
4 | name: Node.TLV
5 | url: https://www.node.tlv/
6 | type: conference
7 | title: Stream Into the Future
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=PIfg1AXwtQo
10 | city: Tel Aviv (remote)
11 | country: Israel
12 | country_code: IL
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | There was a time when Node.js streams were all the rage but over time the Node.js Core Streams
20 | codebase became extremely complex and hard to understand. Worse still, WHATWG introduced an API
21 | for browser Streams. The two Streams API’s are incompatible with each other and both are complex
22 | and leaky abstractions. In this talk, a Node.js Core Streams maintainer presents a stream-less
23 | future by demonstrating how to use pure JavaScript: Async Iterators and Generators can give us
24 | everything Streams can while being completely cross-platform and highly performant.
25 |
--------------------------------------------------------------------------------
/pages/2020/vddd.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-08-04
3 | tags: post
4 | name: Virtual Domain-Driven Design
5 | url:
6 | type: podcast
7 | title: What can we learn from open-source with Matteo Collina
8 | slides_url:
9 | recording_url: https://virtualddd.libsyn.com/panel-what-can-we-learn-from-open-source-with-matteo-collina
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 |
--------------------------------------------------------------------------------
/pages/2020/why-there-are-no-incentives-for-security-in-oss-snykcon.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-10-21
3 | tags: post
4 | name: SnykCon
5 | type: conference
6 | title: Why there are no incentives for security in Open Source
7 | slides_url: https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit
8 | recording_url: https://www.youtube.com/watch?v=7eDcZz-6eQg
9 | city:
10 | country:
11 | country_code:
12 | language: English
13 | recognitions:
14 | image_header:
15 | images:
16 | ---
17 |
18 | Open Source has both “won” and “lost” at the same time. Every company in the world leverages Open Source Software (OSS) to build products. However, every software is vulnerable, and OSS is no exception. Yet, despite the strong incentive for companies all over the world to discover and fix them, the majority use open source without paying for it.
19 |
20 | Security scanners allow companies to discover vulnerable OSS they depend upon, but those vulnerabilities should also be fixed. While there are some incentives in discovering security vulnerabilities via bounty programs, there are none to fix them. A typical email to an OSS maintainer is more like a threat: if you do not fix it in the next month or so, I am going to make this public.
21 |
22 | In Node.js we have experimented with a public bounty program with https://github.com/nodejs/security-wg, and several companies sponsor full-time researchers to discover vulnerabilities. However, the OSS maintainers receive no compensation for their time in fixing the vulnerability. How can we solve this conundrum?
23 |
--------------------------------------------------------------------------------
/pages/2020/why-there-are-no-incentives-for-security-in-oss.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2020-11-02
3 | tags: post
4 | name: NodeConf Remote
5 | url: https://nodeconfremote.com
6 | type: conference
7 | title: Why there are no incentives for security in Open Source
8 | slides_url: https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit
9 | recording_url: https://www.youtube.com/watch?v=l7EbDZRjwXA
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Open Source has both “won” and “lost” at the same time. Every company in the world leverages Open Source Software (OSS) to build products. However, every software is vulnerable, and OSS is no exception. Yet, despite the strong incentive for companies all over the world to discover and fix them, the majority use open source without paying for it.
20 |
21 | Security scanners allow companies to discover vulnerable OSS they depend upon, but those vulnerabilities should also be fixed. While there are some incentives in discovering security vulnerabilities via bounty programs, there are none to fix them. A typical email to an OSS maintainer is more like a threat: if you do not fix it in the next month or so, I am going to make this public.
22 |
23 | In Node.js we have experimented with a public bounty program with https://github.com/nodejs/security-wg, and several companies sponsor full-time researchers to discover vulnerabilities. However, the OSS maintainers receive no compensation for their time in fixing the vulnerability. How can we solve this conundrum?
24 |
--------------------------------------------------------------------------------
/pages/2021/a-fast-introduction-to-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-06-02
3 | tags: post
4 | name: Open.js World 2021
5 | url: https://openjsf.org/openjs-world-2021/
6 | type: conference
7 | title: A fast introduction to Fastify
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=MOvLdfUhqrU
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Fastify is a web framework for Node.js that has a great satisfaction across developers with a 89% rating in the last state of javascript. Fastify combines an amazing developer experience with top of the class performance, with minimal reduction on top of Node.js core. In this talk, we will go through the fundamentals of the framework as well as a live coded example.
20 |
--------------------------------------------------------------------------------
/pages/2021/can-we-double-http-client-throughput.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-06-09
3 | tags: post
4 | name: JSNation
5 | url: https://portal.gitnation.org/events/jsnation-live-2021
6 | type: conference
7 | title: Can We Double HTTP Client Throughput?
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=tr057sP4VBM
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | The Node.js HTTP client is a fundamental part of any application, yet many think it cannot be improved. I took this as a challenge and I’m now ready to present a new HTTP client for Node.js, undici, that doubles the throughput of your application
20 | The story behind this improvement begins with the birth of TCP/IP and it is rooted in one of the fundamental limitations of networking: head-of-line blocking (HOL blocking). HOL blocking is one of those topics that developers blissfully ignore and yet it deeply impacts the runtime experience of the distributed applications that they build every day. Undici is a HTTP/1.1 client that avoids HOL blocking by using keep-alive and pipelining, resulting in a doubling of your application throughput.
21 |
22 |
--------------------------------------------------------------------------------
/pages/2021/codemotion-be-the-glue.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-03-23
3 | tags: post
4 | name: Codemotion Italian Edition
5 | url: https://events.codemotion.com/conferences/online/2021/online-tech-conference-italian-edition-spring#home
6 | type: conference
7 | title: Be the glue
8 | slides_url:
9 | recording_url: https://talks.codemotion.com/be-the-glue
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | I spent years perfecting my skills as a software developer because I once believed that I had to be the best in my craft to be successful and that the code always comes first. The truth is, I was wrong.
20 |
21 | The days where a talented individual could lock themselves in their basement and ship successful software are long gone. Shipping a working application is a team business, as there is a limit to what we can develop alone.
22 |
23 | I'm going to present to you an old/new way of building your career, and why I decided to walk the management path: Be the glue that lets your teams ship amazing products.
24 |
--------------------------------------------------------------------------------
/pages/2021/codemotion-devcast-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-02-25
3 | tags: post
4 | name: Codemotion DevCast
5 | url: https://live.codemotion.com/devcast
6 | type: webinar
7 | title: Fastify - Un framework cucinato a Bologna
8 | slides_url:
9 | recording_url: https://talks.codemotion.com/fastify-un-framework-cucinato-a-bologna
10 | city:
11 | country:
12 | country_code:
13 | language: Italian
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 |
--------------------------------------------------------------------------------
/pages/2021/codemotion-devcast-sicurezza.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-06-10
3 | tags: post
4 | name: Codemotion DevCast
5 | url: https://live.codemotion.com/devcast
6 | type: webinar
7 | title: Open Source e sicurezza, amore e odio
8 | slides_url:
9 | recording_url: https://live.codemotion.com/devcast/devcast-italian-edition-10062021
10 | city:
11 | country:
12 | country_code:
13 | language: Italian
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 |
--------------------------------------------------------------------------------
/pages/2021/codemotion-devcast-undici.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-04-22
3 | tags: post
4 | name: Codemotion DevCast
5 | url: https://live.codemotion.com/devcast
6 | type: webinar
7 | title: Undici - come ho raddoppiato le performance del HTTP client di Node.js
8 | slides_url:
9 | recording_url: https://live.codemotion.com/devcast/devcast---italian-edition-22042021
10 | city:
11 | country:
12 | country_code:
13 | language: Italian
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 |
--------------------------------------------------------------------------------
/pages/2021/defiance-ventures.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-05-17
3 | tags: post
4 | name: The Defiance_ Ventures Podcast
5 | url: https://anchor.fm/defiance-ventures
6 | type: podcast
7 | title: Interview with Matteo Collina
8 | recording_url: https://anchor.fm/defiance-ventures/episodes/72---Matteo-Collina--NearForm--Creator-of-Fastify--and-Node-js-Steering-Committee-Member-e111pon
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/gitbar-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-04-29
3 | tags: post
4 | name: Gitbar
5 | url: https://changelog.com/jsparty
6 | type: podcast
7 | title: Nodejs, fastify e opensource con Matteo Collina (Nearform)
8 | slides_url:
9 | recording_url: https://www.gitbar.it/episodes/ep71-matteo-collina_2
10 | language: Italian
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2021/graphql-galaxy-mercurius-cache.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-12-09
3 | tags: post
4 | name: GraphQL Galaxy
5 | url: https://graphqlgalaxy.com/
6 | type: conference
7 | title: GraphQL Caching Demystified
8 | slides_url:
9 | recording_url: https://portal.gitnation.org/contents/graphql-caching-demystified
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | How would you implement a performant GraphQL cache? How can we design a good algorithm for it? Is there a good Open Source solution that is efficient, scalable and easy to deploy? How is the caching key computed? What about cache invalidations? Would it be possible to deduplicate resolver execution? This might be seen as daunting but in reality is all code and algorithms. In this talk we are going to walk through a GraphQL caching system that we have developed for Mercurius - one of the fastest GraphQL servers for Node.js.
20 |
--------------------------------------------------------------------------------
/pages/2021/itclass-webinar-graphql-caching-demystified.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-11-16
3 | tags: post
4 | name: ITClass
5 | type: webinar
6 | title: GraphQL Caching Demystified
7 | slides_url:
8 | recording_url: https://www.youtube.com/watch?v=uA1exBqZ9i0
9 | city:
10 | country:
11 | country_code:
12 | language: English
13 | recognitions:
14 | image_header:
15 | images:
16 | ---
17 |
18 | How would you implement a performant GraphQL cache? How can we design a good algorithm for it? Is there a good Open Source solution that is efficient, scalable and easy to deploy? How is the caching key computed? What about cache invalidations? Would it be possible to deduplicate resolver execution? This might be seen as daunting but in reality is all code and algorithms. In this talk we are going to walk through a GraphQL caching system that we have developed for Mercurius - one of the fastest GraphQL servers for Node.js.
19 |
--------------------------------------------------------------------------------
/pages/2021/jsconf-india-pino-multithread.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-11-15
3 | tags: post
4 | name: JSConf India
5 | url: https://www.jsconf.in/
6 | type: conference
7 | title: Multithreaded Logging with Pino
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user. In this talk, we will show how we solve this problem and increase throughput at the same time: in pino v7 we released pino.transport() to start a worker thread that you can use to transfer your logs sfely to other destinations, without sacrificing neither performance nor the developer experience.a
20 |
--------------------------------------------------------------------------------
/pages/2021/jsparty-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-10-07
3 | tags: post
4 | name: JS Party
5 | url: https://changelog.com/jsparty
6 | type: podcast
7 | title: Fastify served with a refreshing Pino 🍷
8 | slides_url:
9 | recording_url: https://changelog.com/jsparty/197
10 | language: English
11 | ---
12 |
--------------------------------------------------------------------------------
/pages/2021/nearform-decoded-episode-8.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-05-11
3 | tags: post
4 | name: NearForm Decoded
5 | url: https://www.nearform.com/decoded/
6 | type: webinar
7 | title: The promise of DevOps
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=zR_Xn32HXuc
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | DevOps done well brings a range of benefits, from streamlined processes and faster deployment to better communication across teams — so why isn’t everyone doing it?
20 |
--------------------------------------------------------------------------------
/pages/2021/nearform-presents-broken-promises-workshop.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-03-31
3 | tags: post
4 | name: "NearForm Presents: Node Core + Broken Promises workshop"
5 | url: https://www.nearform.com/events/
6 | type: workshop
7 | title: Broken Promises
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In our experience, if you are using promises, you are likely using them wrong (and nearly everybody else is too). This is most often due to misunderstandings about how Promises work, choices that were made by TC39 when designing the promises API, inconsistencies in how Promises are used, or failure to account for the cost of using Promises in an application, and ultimately how the event loop works.
20 |
21 | In this workshop, we aim to help developers do the right thing with Promises. Through a series of hands on exercises and puzzles, developers will learn the ins and outs of developing with Promises in Node.js, learning everything they should do, and most importantly what they shouldn’t do, in order to maximize the effectiveness of their code and avoid common performance pitfalls.
22 |
--------------------------------------------------------------------------------
/pages/2021/nearform-presents-learn-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-06-16
3 | tags: post
4 | name: "NearForm Presents: Backend Development with Node.js"
5 | url: https://www.nearform.com/events/
6 | type: workshop
7 | title: Learn Fastify One Plugin at a Time
8 | slides_url:
9 | recording_url:
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Fastify is an HTTP framework for Node.js that focuses on providing a good developer experience without compromising on performance metrics. What makes Fastify special is not its technical details, but its community which is open for contributions of any kind. Part of the secret sauce is the Fastify plugin architecture that has enabled developers to write more than a hundred plugins.
20 |
21 | This hands-on workshop is structured around a series of exercises that covers from basic “hello world” to how to structure a project, perform database access and authentication.
22 |
--------------------------------------------------------------------------------
/pages/2021/nearform-presents-unsung-story-events-streams-promises.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-03-31
3 | tags: post
4 | name: "NearForm Presents: Node Core + Broken Promises workshop"
5 | url: https://www.nearform.com/events/
6 | type: conference
7 | title: The Unsung Story of Events, Streams and Promises
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=qOHgQAV2ydo
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Once upon a time, Node.js shipped with promises. Then, promises were no more. Finally, promises were back in JavaScript, and therefore in Node.js. However much had change in node-land, and all Node APIs were either callbacks or based on the reliable EventEmitter. Our hero story starts here: how could we navigate a world of EventEmitters with just promises? Crashes and memory leaks were daily perils, but our hero was not alone: the Node.js team started working in eager to add several tools they could wield to protect themselves from the perils!
20 |
--------------------------------------------------------------------------------
/pages/2021/nodeconf-pino-multithread.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-10-18
3 | tags: post
4 | name: NodeConf Remote
5 | url: https://nodeconfremote.com
6 | type: conference
7 | title: Multithreaded Logging with Pino
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=vETUVN-KEgc
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user. In this talk, we will show how we solve this problem and increase throughput at the same time: in pino v7 we released pino.transport() to start a worker thread that you can use to transfer your logs sfely to other destinations, without sacrificing neither performance nor the developer experience.a
20 |
--------------------------------------------------------------------------------
/pages/2021/nodetlv-pino-multithread.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-11-15
3 | tags: post
4 | name: Node.TLV
5 | url: https://www.node.tlv/
6 | type: conference
7 | title: Multithreaded Logging with Pino
8 | slides_url:
9 | recording_url:
10 | city: Tel Aviv (remote)
11 | country: Israel
12 | country_code: IL
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user. In this talk, we will show how we solve this problem and increase throughput at the same time: in pino v7 we released pino.transport() to start a worker thread that you can use to transfer your logs sfely to other destinations, without sacrificing neither performance nor the developer experience.a
20 |
--------------------------------------------------------------------------------
/pages/2021/one-two-three-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-11-23
3 | tags: post
4 | name: We are developers - JavaScript Congress
5 | url: https://www.wearedevelopers.com/javascript-congress
6 | type: conference
7 | title: 1, 2, 3.. Fastify!
8 | slides_url:
9 | recording_url: https://www.wearedevelopers.com/en/videos/1-2-3-fastify
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In my journey through nodeland, I always wonder about the cost of my abstractions.
20 |
21 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 90k requests/sec, Fastify can halve your cloud server bill.
22 |
23 | In this talk, I will walk you through the basics of the framework: how to route requests, write tests, and use the plugin system.
24 |
--------------------------------------------------------------------------------
/pages/2021/openhive-charlie-robbins.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-07-29
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Charlie Robbins on JavaScript, TypeScript and the history and future of Node.js
8 | recording_url: https://anchor.fm/openhivejs/episodes/Charlie-Robbins-on-JavaScript--TypeScript-and-the-history-and-future-of-Node-js-e156dab
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-danielle-adams.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-05-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Danielle Adams on Cloud Native Buildpacks
8 | recording_url: https://anchor.fm/openhivejs/episodes/Danielle-Adams-on-Cloud-Native-Buildpacks-e10of7p
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-gil-tayar.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-07-29
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Gil Tayar on ECMAScript modules (ESM) with JavaScript
8 | recording_url: https://anchor.fm/openhivejs/episodes/Gil-Tayar-on-ECMAScript-modules-ESM-with-JavaScript-e156djb
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-kent-c-dodds.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-04-07
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Kent C. Dodds on JavaScript Training
8 | recording_url: https://anchor.fm/openhivejs/episodes/Kent-C--Dodds-on-JavaScript-Training-eudrdn
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-liz-parody-communities.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-02-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Liz Parody on Building Communities
8 | recording_url: https://anchor.fm/openhivejs/episodes/Liz-Parody-on-Building-Communities-es6o5e
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-mikeal-open-source.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-01-06
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Mikeal Rogers on Open Source
8 | recording_url: https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-the-Open-Source-Model-eokfbo
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-next-25-years-of-js.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-02-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: The Next 25 Years of JavaScript
8 | recording_url: https://anchor.fm/openhivejs/episodes/The-Next-25-Years-of-JavaScript-eqahde
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-rob-palmer.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-05-12
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Rob Palmer on Server Side Javascript and TypeScript
8 | recording_url: https://anchor.fm/openhivejs/episodes/Rob-Palmer-on-Server-Side-Javascript-and-TypeScript-e12gu0a
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/openhive-yoni-goldberg.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-07-09
3 | tags: post
4 | name: OpenHive.js
5 | url: https://anchor.fm/openhivejs
6 | type: podcast
7 | title: Yoni Goldberg on Integration Tests with JavaScript
8 | recording_url: https://anchor.fm/openhivejs/episodes/Yoni-Goldberg-on-Integration-Tests-with-JavaScript-e144ash
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2021/redisconf.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2021-05-21
3 | tags: post
4 | name: RedisConf
5 | url: https://redis.com/redisconf
6 | type: conference
7 | title: Solving Head-Of-Line blocking with auto pipelining
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=0L0ER4pZbX4
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | ioredis is a popular client for Node.js. Node.js is an asynchronous runtime that can process multiple requests per second, all of which could be hitting Redis. All the TCP and network overhead negatively affects performance. Commands are stuck in the send queue until the previous ones are correctly delivered to the server. This is a problem known as Head-Of-Line blocking (HOL). NearForm added a new feature to ioredis called “auto pipelining.” When enabled, all commands issued during an event loop iteration are enqueued in a pipeline. At the end of the iteration, the pipeline is executed and all commands are sent to the server at the same time. This feature can dramatically improve throughput and avoids HOL blocking, with NearForm's benchmarks showing 35-50% improvement.
20 |
--------------------------------------------------------------------------------
/pages/2022/design-talk.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-02-25
3 | tags: post
4 | name: Design Talk
5 | url: https://shows.acast.com/design-talk
6 | type: podcast
7 | title: Always put the client first
8 | recording_url: https://shows.acast.com/design-talk/episodes/always-put-the-client-first
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/pages/2022/graphql-berlin-meetup.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-02-01
3 | tags: post
4 | name: GraphQL Berlin Meetup #25
5 | url: https://www.meetup.com/graphql-berlin/?_cookie-check=ZZyjfCoh_VLbXb7y
6 | type: meetup
7 | title: GraphQL Caching Demystified
8 | slides_url:
9 | recording_url: https://youtu.be/srkTmlFNOyw
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | How would you implement a performant GraphQL cache? How can we design a good algorithm for it? Is there a good Open Source solution that is efficient, scalable and easy to deploy? How is the caching key computed? What about cache invalidations? Would it be possible to deduplicate resolver execution? This might be seen as daunting but in reality is all code and algorithms. In this talk we are going to walk through a GraphQL caching system that we have developed for Mercurius - one of the fastest GraphQL servers for Node.js.
20 |
--------------------------------------------------------------------------------
/pages/2022/jspoland.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-01-26
3 | tags: post
4 | name: JS Poland 2022
5 | url: https://js-poland.pl
6 | type: conference
7 | title: 1, 2, 3.. Fastify!
8 | slides_url:
9 | recording_url: https://js-poland.pl/javascript-matteo-collina.html
10 | city:
11 | country:
12 | country_code:
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In my journey through nodeland, I always wonder about the cost of my abstractions.
20 |
21 | I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 90k requests/sec, Fastify can halve your cloud server bill.
22 |
23 | In this talk, I will walk you through the basics of the framework: how to route requests, write tests, and use the plugin system.
24 |
--------------------------------------------------------------------------------
/pages/2022/openjs-world-fastify.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-06-06
3 | tags: post
4 | name: OpenJS World 2022
5 | url: https://events.linuxfoundation.org/openjs-world/
6 | type: conference
7 | title: A Fastify tale of Shapes
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=g-6Ig8k6Nzc&list=PLyspMSh4XhLMSpb4yqi0aPxSioNaP1Wkn
10 | city: Austin, TX
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | In my journey through nodeland, I went into the woods. After a nice stroll, I started seeing V8 shapes everywhere. They led into a dark cave and there was a new one every time I turned my head. My mind became megamorphic. What's a V8 shape? Why does it matter? Are there any problems if we created many? Could we reduce the overhead by keeping the shapes constants? This is the story of Fastify v4 on how I optimised the throughput by 10% by ensuring that all requests were created with the same shapes.
20 |
--------------------------------------------------------------------------------
/pages/2022/openjs-world-performance.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-06-06
3 | tags: post
4 | name: OpenJS World 2022
5 | url: https://events.linuxfoundation.org/openjs-world/
6 | type: conference
7 | title: Everybody is Responsible for Performance
8 | slides_url:
9 | recording_url: https://www.youtube.com/watch?v=A99zkgoFd18
10 | city: Austin, TX
11 | country: United States
12 | country_code: US
13 | language: English
14 | recognitions:
15 | image_header:
16 | images:
17 | ---
18 |
19 | It's 2030 and all companies are now digital but users are dissatisfied and keep loving a few brands. The best ones offer a seamless digital experience. The worst are sluggish and they wonder how they got there and how to improve. In short, nothing has changed since 2022.
20 |
21 | As developers, we are struggling to satisfy all the non-functional requirements.
22 | Our applications need to be easy to develop and even simpler to maintain. They need to be cheap to run and to have the capability to scale. They must be packed with new features. Multiple teams must work on them to deliver new features on a bi-weekly (or more frequent) basis. Unfortunately it is impossible to achieve those goals and tradeoffs are required… and they result in unusable, unmaintainable or poorly scalable applications.
23 |
24 | There is another way. Small teams that develop applications built on the same language that runs on Web, Mobile, in the backend and on the edge. They can complement each other's skills to develop ground-breaking user experiences at a high velocity.
25 |
--------------------------------------------------------------------------------
/pages/2022/podrocket.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2022-02-25
3 | tags: post
4 | name: PodRocket
5 | url: https://podrocket.logrocket.com
6 | type: podcast
7 | title: Fastify and Pino with Matteo Collina
8 | recording_url: https://podrocket.logrocket.com/fastify
9 | language: English
10 | ---
11 |
--------------------------------------------------------------------------------
/static/matteo-collina-header-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcollina/public-speaking/216548c072c382edfa84ea89a8cef03a54905eda/static/matteo-collina-header-image.jpg
--------------------------------------------------------------------------------