├── .eleventy.js ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .npmrc ├── README.md ├── docs ├── index.html └── styles.css ├── gigsboat-eleventy-starter ├── _includes │ └── gigsboat-layout.liquid ├── index.json ├── index.md └── styles.css ├── gigsboat.json ├── instructions.md ├── package-lock.json ├── package.json ├── pages ├── 2013 │ ├── make-things-that-work-with-us.md │ └── mqtt-and-nodejs.md ├── 2014 │ ├── full-stack-through-microservices.md │ ├── harware-hacking-on-stage.md │ ├── live-code-a-robot.md │ ├── live-code-the-internet-of-things.md │ └── mqtt-and-nodejs.md ├── 2015 │ ├── no-la-sottile-arte-di-trovare-il-tempo-dove-non-esiste.md │ ├── reaching-ludicrous-speed.md │ ├── we-are-not-object-oriented-anymore-fullstack.md │ ├── we-are-not-object-oriented-anymore-ucon-london.md │ └── we-are-not-object-oriented-anymore-ucon.md ├── 2016 │ ├── scaling-state-ucon.md │ ├── the-cost-of-logging-node-interactive.md │ ├── the-cost-of-logging-node-summit.md │ ├── the-cost-of-logging-nodeconf.md │ └── we-are-not-object-oriented-anymore.md ├── 2017 │ ├── how-open-source-changed-my-life.md │ ├── scalable-pub-sub.md │ ├── take-your-http-server-to-ludicrous-speed-fullstack.md │ ├── take-your-http-server-to-ludicrous-speed.md │ ├── the-cost-of-logging-fullstack.md │ └── the-node-movement-and-how-to-play-a-part.md ├── 2018 │ ├── a-new-way-to-profile-node-js-fullstack.md │ ├── a-new-way-to-profile-node-js-workerconf.md │ ├── graphql-accelerated.md │ ├── my-nodejs-process-is-on-fire-jsday.md │ ├── my-nodejs-process-is-on-fire.md │ ├── the-nodejs-performance-workshop-fullstack.md │ ├── the-state-of-nodejs-core.md │ └── there-is-no-such-thing-as-luck.md ├── 2019 │ ├── a-new-way-to-profile-node-js-qcon.md │ ├── bubble-up-your-node-io-jsconf-hawaii.md │ ├── graphql-simplified.md │ ├── jsparty-streams.md │ ├── microsoft-build.md │ ├── realtalkjavascript-nodejs-optimization-and-performance.md │ ├── stream-into-the-future-interactive.md │ ├── stream-into-the-future-netherlands.md │ ├── stream-into-the-future-workerconf.md │ └── take-your-http-server-to-ludicrous-speed-fullstack.md ├── 2020 │ ├── build-a-community-not-a-framework-jsday.md │ ├── build-a-community-not-a-framework.md │ ├── can-we-double-http-client-throughput.md │ ├── graphql-accelerated.md │ ├── jsnation-broken-promises-workshop.md │ ├── one-two-three-fastify-nottjs.md │ ├── one-two-three-fastify.md │ ├── openhive-alessandro-polidori.md │ ├── openhive-anthony-aragues-data-viz.md │ ├── openhive-kenigbolo.md │ ├── openhive-laurie-bath.md │ ├── openhive-liran-tal.md │ ├── openhive-mikeal-decentralized-databases.md │ ├── openhive-nearform-contact-tracing.md │ ├── openhive-philip-dunkel.md │ ├── openhive-ramon-guijarro.md │ ├── openjsworld-broken-promises-workshop.md │ ├── realtalkjavascript-expressway-to-fastify.md │ ├── storie-di-developers.md │ ├── stream-into-the-future-node-tlv.md │ ├── vddd.md │ ├── why-there-are-no-incentives-for-security-in-oss-snykcon.md │ └── why-there-are-no-incentives-for-security-in-oss.md ├── 2021 │ ├── a-fast-introduction-to-fastify.md │ ├── can-we-double-http-client-throughput.md │ ├── codemotion-be-the-glue.md │ ├── codemotion-devcast-fastify.md │ ├── codemotion-devcast-sicurezza.md │ ├── codemotion-devcast-undici.md │ ├── defiance-ventures.md │ ├── gitbar-fastify.md │ ├── graphql-galaxy-mercurius-cache.md │ ├── itclass-webinar-graphql-caching-demystified.md │ ├── jsconf-india-pino-multithread.md │ ├── jsparty-fastify.md │ ├── nearform-decoded-episode-8.md │ ├── nearform-presents-broken-promises-workshop.md │ ├── nearform-presents-learn-fastify.md │ ├── nearform-presents-unsung-story-events-streams-promises.md │ ├── nodeconf-pino-multithread.md │ ├── nodetlv-pino-multithread.md │ ├── one-two-three-fastify.md │ ├── openhive-charlie-robbins.md │ ├── openhive-danielle-adams.md │ ├── openhive-gil-tayar.md │ ├── openhive-kent-c-dodds.md │ ├── openhive-liz-parody-communities.md │ ├── openhive-mikeal-open-source.md │ ├── openhive-next-25-years-of-js.md │ ├── openhive-rob-palmer.md │ ├── openhive-yoni-goldberg.md │ └── redisconf.md └── 2022 │ ├── design-talk.md │ ├── graphql-berlin-meetup.md │ ├── jspoland.md │ ├── openjs-world-fastify.md │ ├── openjs-world-performance.md │ └── podrocket.md └── static └── matteo-collina-header-image.jpg /.eleventy.js: -------------------------------------------------------------------------------- 1 | const GIGSBOAT_INPUT_DIR = 'gigsboat-eleventy-starter' 2 | const GIGSBOAT_OUTPUT_DIR = 'docs' // For easy deployment to github pages 3 | 4 | module.exports = function(eleventyConfig) { 5 | const markdownIt = require('markdown-it') 6 | const options = { 7 | html: true, 8 | } 9 | 10 | eleventyConfig.setLibrary('md', markdownIt(options).use(require('markdown-it-anchor'))) 11 | eleventyConfig.addPassthroughCopy(`${GIGSBOAT_INPUT_DIR}/styles.css`) 12 | 13 | return { 14 | dir: { 15 | input: GIGSBOAT_INPUT_DIR, 16 | output: GIGSBOAT_OUTPUT_DIR, 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Create gigs 2 | 3 | on: 4 | push: 5 | branches: [main, master] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | strategy: 12 | matrix: 13 | node-version: [16.x] 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | 18 | - name: Use Node.js ${{ matrix.node-version }} 19 | uses: actions/setup-node@v2 20 | with: 21 | node-version: ${{ matrix.node-version }} 22 | 23 | - name: Install Dependencies 24 | id: install 25 | run: npm install --ignore-scripts 26 | 27 | - name: Build 28 | id: build 29 | run: npm run build 30 | 31 | - name: Push gigs into repository 32 | uses: github-actions-x/commit@v2.9 33 | with: 34 | github-token: ${{ secrets.GITHUB_TOKEN }} 35 | push-branch: 'main' 36 | commit-message: 'chore: updating README with new gigs and create HTML' 37 | files: README.md docs/ 38 | name: Matteo Collina 39 | email: matteo.collina@gmail.com 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | # Snyk Code 107 | .dccache -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Total Events Total Meetups Total Conferences Total Podcasts Total Webinars Total Workshops

2 |
3 |

Matteo Collina - Public Speaking

4 |

Node.js TSC member, PhD, Chief Software Architect NearForm, Lead maintainer Fastify

Twitter Follow LinkedIn Add Me

Matteo Collina public speaking profile

5 | 6 | # Table of Contents 7 | 8 | 9 | - [Year of 2022](#2022) - total events 6 10 | - [Year of 2021](#2021) - total events 29 11 | - [Year of 2020](#2020) - total events 23 12 | - [Year of 2019](#2019) - total events 10 13 | - [Year of 2018](#2018) - total events 8 14 | - [Year of 2017](#2017) - total events 6 15 | - [Year of 2016](#2016) - total events 5 16 | - [Year of 2015](#2015) - total events 5 17 | - [Year of 2014](#2014) - total events 5 18 | - [Year of 2013](#2013) - total events 2 19 | 20 | # 2022 21 | 22 | 23 | ![Total Events](https://img.shields.io/badge/total-6-blue?style=flat-square) ![Total Meetups](https://img.shields.io/badge/meetups-1-violet?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-3-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-2-yellow?style=flat-square) 24 | 25 | 26 | 27 | 28 | | Date | Event | Title | Slides | Recording | Location | Language | 29 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 30 | | 2022-6-6 | OpenJS World 2022 | [A Fastify tale of Shapes](pages/2022/openjs-world-fastify.md) | | [Recording](https://www.youtube.com/watch?v=g-6Ig8k6Nzc&list=PLyspMSh4XhLMSpb4yqi0aPxSioNaP1Wkn) | [🇺🇸](## "United States") | English | 31 | | 2022-6-6 | OpenJS World 2022 | [Everybody is Responsible for Performance](pages/2022/openjs-world-performance.md) | | [Recording](https://www.youtube.com/watch?v=A99zkgoFd18) | [🇺🇸](## "United States") | English | 32 | | 2022-2-25 | Design Talk | [Always put the client first](pages/2022/design-talk.md) | | [Recording](https://shows.acast.com/design-talk/episodes/always-put-the-client-first) | | English | 33 | | 2022-2-25 | PodRocket | [Fastify and Pino with Matteo Collina](pages/2022/podrocket.md) | | [Recording](https://podrocket.logrocket.com/fastify) | | English | 34 | | 2022-2-1 | GraphQL Berlin Meetup | [GraphQL Caching Demystified](pages/2022/graphql-berlin-meetup.md) | | [Recording](https://youtu.be/srkTmlFNOyw) | | English | 35 | | 2022-1-26 | JS Poland 2022 | [1, 2, 3.. Fastify!](pages/2022/jspoland.md) | | [Recording](https://js-poland.pl/javascript-matteo-collina.html) | | English | 36 | 37 | 38 | # 2021 39 | 40 | 41 | ![Total Events](https://img.shields.io/badge/total-29-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-10-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-12-yellow?style=flat-square) ![Total Webinars](https://img.shields.io/badge/webinars-5-lightgrey?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-2-orange?style=flat-square) 42 | 43 | 44 | 45 | 46 | | Date | Event | Title | Slides | Recording | Location | Language | 47 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 48 | | 2021-12-9 | GraphQL Galaxy | [GraphQL Caching Demystified](pages/2021/graphql-galaxy-mercurius-cache.md) | | [Recording](https://portal.gitnation.org/contents/graphql-caching-demystified) | | English | 49 | | 2021-11-23 | We are developers - JavaScript Congress | [1, 2, 3.. Fastify!](pages/2021/one-two-three-fastify.md) | | [Recording](https://www.wearedevelopers.com/en/videos/1-2-3-fastify) | | English | 50 | | 2021-11-16 | ITClass | [GraphQL Caching Demystified](pages/2021/itclass-webinar-graphql-caching-demystified.md) | | [Recording](https://www.youtube.com/watch?v=uA1exBqZ9i0) | | English | 51 | | 2021-11-15 | JSConf India | [Multithreaded Logging with Pino](pages/2021/jsconf-india-pino-multithread.md) | | | | English | 52 | | 2021-11-15 | Node.TLV | [Multithreaded Logging with Pino](pages/2021/nodetlv-pino-multithread.md) | | | [🇮🇱](## "Israel") | English | 53 | | 2021-10-18 | NodeConf Remote | [Multithreaded Logging with Pino](pages/2021/nodeconf-pino-multithread.md) | | [Recording](https://www.youtube.com/watch?v=vETUVN-KEgc) | | English | 54 | | 2021-10-7 | JS Party | [Fastify served with a refreshing Pino 🍷](pages/2021/jsparty-fastify.md) | | [Recording](https://changelog.com/jsparty/197) | | English | 55 | | 2021-7-29 | OpenHive.js | [Charlie Robbins on JavaScript, TypeScript and the history and future of Node.js](pages/2021/openhive-charlie-robbins.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Charlie-Robbins-on-JavaScript--TypeScript-and-the-history-and-future-of-Node-js-e156dab) | | English | 56 | | 2021-7-29 | OpenHive.js | [Gil Tayar on ECMAScript modules (ESM) with JavaScript](pages/2021/openhive-gil-tayar.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Gil-Tayar-on-ECMAScript-modules-ESM-with-JavaScript-e156djb) | | English | 57 | | 2021-7-9 | OpenHive.js | [Yoni Goldberg on Integration Tests with JavaScript](pages/2021/openhive-yoni-goldberg.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Yoni-Goldberg-on-Integration-Tests-with-JavaScript-e144ash) | | English | 58 | | 2021-6-16 | NearForm Presents: Backend Development with Node.js | [Learn Fastify One Plugin at a Time](pages/2021/nearform-presents-learn-fastify.md) | | | | English | 59 | | 2021-6-10 | Codemotion DevCast | [Open Source e sicurezza, amore e odio](pages/2021/codemotion-devcast-sicurezza.md) | | [Recording](https://live.codemotion.com/devcast/devcast-italian-edition-10062021) | | Italian | 60 | | 2021-6-9 | JSNation | [Can We Double HTTP Client Throughput?](pages/2021/can-we-double-http-client-throughput.md) | | [Recording](https://www.youtube.com/watch?v=tr057sP4VBM) | | English | 61 | | 2021-6-2 | Open.js World 2021 | [A fast introduction to Fastify](pages/2021/a-fast-introduction-to-fastify.md) | | [Recording](https://www.youtube.com/watch?v=MOvLdfUhqrU) | | English | 62 | | 2021-5-21 | RedisConf | [Solving Head-Of-Line blocking with auto pipelining](pages/2021/redisconf.md) | | [Recording](https://www.youtube.com/watch?v=0L0ER4pZbX4) | | English | 63 | | 2021-5-17 | The Defiance_ Ventures Podcast | [Interview with Matteo Collina](pages/2021/defiance-ventures.md) | | [Recording](https://anchor.fm/defiance-ventures/episodes/72---Matteo-Collina--NearForm--Creator-of-Fastify--and-Node-js-Steering-Committee-Member-e111pon) | | English | 64 | | 2021-5-12 | OpenHive.js | [Danielle Adams on Cloud Native Buildpacks](pages/2021/openhive-danielle-adams.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Danielle-Adams-on-Cloud-Native-Buildpacks-e10of7p) | | English | 65 | | 2021-5-12 | OpenHive.js | [Rob Palmer on Server Side Javascript and TypeScript](pages/2021/openhive-rob-palmer.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Rob-Palmer-on-Server-Side-Javascript-and-TypeScript-e12gu0a) | | English | 66 | | 2021-5-11 | NearForm Decoded | [The promise of DevOps](pages/2021/nearform-decoded-episode-8.md) | | [Recording](https://www.youtube.com/watch?v=zR_Xn32HXuc) | | English | 67 | | 2021-4-29 | Gitbar | [Nodejs, fastify e opensource con Matteo Collina (Nearform)](pages/2021/gitbar-fastify.md) | | [Recording](https://www.gitbar.it/episodes/ep71-matteo-collina_2) | | Italian | 68 | | 2021-4-22 | Codemotion DevCast | [Undici - come ho raddoppiato le performance del HTTP client di Node.js](pages/2021/codemotion-devcast-undici.md) | | [Recording](https://live.codemotion.com/devcast/devcast---italian-edition-22042021) | | Italian | 69 | | 2021-4-7 | OpenHive.js | [Kent C. Dodds on JavaScript Training](pages/2021/openhive-kent-c-dodds.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Kent-C--Dodds-on-JavaScript-Training-eudrdn) | | English | 70 | | 2021-3-31 | NearForm Presents: Node Core + Broken Promises workshop | [Broken Promises](pages/2021/nearform-presents-broken-promises-workshop.md) | | | | English | 71 | | 2021-3-31 | NearForm Presents: Node Core + Broken Promises workshop | [The Unsung Story of Events, Streams and Promises](pages/2021/nearform-presents-unsung-story-events-streams-promises.md) | | [Recording](https://www.youtube.com/watch?v=qOHgQAV2ydo) | | English | 72 | | 2021-3-23 | Codemotion Italian Edition | [Be the glue](pages/2021/codemotion-be-the-glue.md) | | [Recording](https://talks.codemotion.com/be-the-glue) | | English | 73 | | 2021-2-25 | Codemotion DevCast | [Fastify - Un framework cucinato a Bologna](pages/2021/codemotion-devcast-fastify.md) | | [Recording](https://talks.codemotion.com/fastify-un-framework-cucinato-a-bologna) | | Italian | 74 | | 2021-2-12 | OpenHive.js | [Liz Parody on Building Communities](pages/2021/openhive-liz-parody-communities.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Liz-Parody-on-Building-Communities-es6o5e) | | English | 75 | | 2021-2-12 | OpenHive.js | [The Next 25 Years of JavaScript](pages/2021/openhive-next-25-years-of-js.md) | | [Recording](https://anchor.fm/openhivejs/episodes/The-Next-25-Years-of-JavaScript-eqahde) | | English | 76 | | 2021-1-6 | OpenHive.js | [Mikeal Rogers on Open Source](pages/2021/openhive-mikeal-open-source.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-the-Open-Source-Model-eokfbo) | | English | 77 | 78 | 79 | # 2020 80 | 81 | 82 | ![Total Events](https://img.shields.io/badge/total-23-blue?style=flat-square) ![Total Meetups](https://img.shields.io/badge/meetups-1-violet?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-8-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-11-yellow?style=flat-square) ![Total Webinars](https://img.shields.io/badge/webinars-1-lightgrey?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-2-orange?style=flat-square) 83 | 84 | 85 | 86 | 87 | | Date | Event | Title | Slides | Recording | Location | Language | 88 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 89 | | 2020-12-9 | OpenHive.js | [Mikeal Rogers on Decentralised Databases](pages/2020/openhive-mikeal-decentralized-databases.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-Decentralised-Databases-eniueg) | | English | 90 | | 2020-11-2 | NodeConf Remote | [Can We Double HTTP Client Throughput?](pages/2020/can-we-double-http-client-throughput.md) | | [Recording](https://www.youtube.com/watch?v=D9xblqBAHO8) | | English | 91 | | 2020-11-2 | NodeConf Remote | [Why there are no incentives for security in Open Source](pages/2020/why-there-are-no-incentives-for-security-in-oss.md) | [Slides](https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit) | [Recording](https://www.youtube.com/watch?v=l7EbDZRjwXA) | | English | 92 | | 2020-10-21 | SnykCon | [Why there are no incentives for security in Open Source](pages/2020/why-there-are-no-incentives-for-security-in-oss-snykcon.md) | [Slides](https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit) | [Recording](https://www.youtube.com/watch?v=7eDcZz-6eQg) | | English | 93 | | 2020-10-7 | OpenHive.js | [Alessandro Polidori on Open Source and VoIP](pages/2020/openhive-alessandro-polidori.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Alessandro-Polidori-on-Open-Source-and-VoIP-ekno7f) | | English | 94 | | 2020-10-7 | OpenHive.js | [Anthony Aragues on Data Visualisation](pages/2020/openhive-anthony-aragues-data-viz.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Anthony-Aragues-on-Data-Visualisation-emau0n) | | English | 95 | | 2020-10-2 | Nodejsday | [GraphQL Accelerated](pages/2020/graphql-accelerated.md) | | [Recording](https://www.youtube.com/watch?v=CQ1KgfVcL2E) | | English | 96 | | 2020-8-12 | OpenHive.js | [Kenigbolo Meya Stephen on Documentation](pages/2020/openhive-kenigbolo.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Kenigbolo-Meya-Stephen-on-Documentation-ejc6a7) | | English | 97 | | 2020-8-12 | OpenHive.js | [NearForm on Building Contact Tracing Apps](pages/2020/openhive-nearform-contact-tracing.md) | | [Recording](https://anchor.fm/openhivejs/episodes/NearForm-on-Building-Contact-Tracing-Apps-ei1ujq) | | English | 98 | | 2020-8-11 | Real Talk JavaScript | [Expressway to Fastify with Matteo Collina](pages/2020/realtalkjavascript-expressway-to-fastify.md) | | [Recording](https://webrush.io/episodes/episode-96-expressway-to-fastify-with-matteo-collina) | | English | 99 | | 2020-8-4 | Virtual Domain-Driven Design | [What can we learn from open-source with Matteo Collina](pages/2020/vddd.md) | | [Recording](https://virtualddd.libsyn.com/panel-what-can-we-learn-from-open-source-with-matteo-collina) | | English | 100 | | 2020-7-14 | NOTTjs | [1, 2, 3.. Fastify!](pages/2020/one-two-three-fastify-nottjs.md) | | | | English | 101 | | 2020-7-6 | OpenHive.js | [Ramón Guijarro on Modern Web APIs](pages/2020/openhive-ramon-guijarro.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Ramn-Guijarro-on-Modern-Web-APIs-egcfq3) | | | 102 | | 2020-6-22 | JSDay | [Build a community, not a framework!](pages/2020/build-a-community-not-a-framework-jsday.md) | | [Recording](https://www.youtube.com/watch?v=QO_LLYx3mAQ) | | English | 103 | | 2020-6-22 | Open.js World 2020 | [Build a community, not a framework!](pages/2020/build-a-community-not-a-framework.md) | | [Recording](https://www.youtube.com/watch?v=e0rdy7APH-o) | | English | 104 | | 2020-6-17 | JSNation | [1, 2, 3.. Fastify!](pages/2020/one-two-three-fastify.md) | | [Recording](https://portal.gitnation.org/contents/1-2-3-fastify) | | English | 105 | | 2020-6-11 | JSNation | [Broken Promises](pages/2020/jsnation-broken-promises-workshop.md) | | | | English | 106 | | 2020-6-11 | OpenJS World | [Broken Promises](pages/2020/openjsworld-broken-promises-workshop.md) | | | | English | 107 | | 2020-6-8 | OpenHive.js | [Laurie Barth on Maintaining Gatsby](pages/2020/openhive-laurie-bath.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Laurie-Barth-on-Maintaining-Gatsby-ef6p8i) | | English | 108 | | 2020-6-8 | OpenHive.js | [Liran Tal on Empowering Open Source](pages/2020/openhive-liran-tal.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Liran-Tal-on-Empowering-Open-Source-ef6lt7) | | English | 109 | | 2020-6-8 | OpenHive.js | [Philipp Dunkel on Temporal](pages/2020/openhive-philip-dunkel.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Philipp-Dunkel-on-Temporal-ef562f) | | English | 110 | | 2020-5-20 | Storie di developers | [Intervista a Matteo Collina](pages/2020/storie-di-developers.md) | | [Recording](https://www.youtube.com/watch?v=VHoyXNqjuGY) | | Italian | 111 | | 2020-3-3 | Node.TLV | [Stream Into the Future](pages/2020/stream-into-the-future-node-tlv.md) | | [Recording](https://www.youtube.com/watch?v=PIfg1AXwtQo) | [🇮🇱](## "Israel") | English | 112 | 113 | 114 | # 2019 115 | 116 | 117 | ![Total Events](https://img.shields.io/badge/total-10-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-8-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-2-yellow?style=flat-square) 118 | 119 | 120 | 121 | 122 | | Date | Event | Title | Slides | Recording | Location | Language | 123 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 124 | | 2019-12-11 | Node.js Interactive 2019 | [GraphQL Simplified](pages/2019/graphql-simplified.md) | | [Recording](https://www.youtube.com/watch?v=E7KDpZYO_1o) | [🇨🇦](## "Canada") | English | 125 | | 2019-12-11 | Node.js Conference Netherlands 2019 | [Stream Into the Future](pages/2019/stream-into-the-future-interactive.md) | | [Recording](https://www.youtube.com/watch?v=RVcd1c-sTjU) | [🇳🇱](## "Netherlands") | English | 126 | | 2019-12-11 | Node.js Interactive 2019 | [Stream Into the Future](pages/2019/stream-into-the-future-netherlands.md) | | [Recording](https://www.youtube.com/watch?v=dEFdt_6fW-0) | [🇨🇦](## "Canada") | English | 127 | | 2019-11-14 | JS Party | [You're probably using streams](pages/2019/jsparty-streams.md) | | [Recording](https://changelog.com/jsparty/103) | | English | 128 | | 2019-11-14 | Real Talk JavaScript | [Node.js Optimization and Performance - Matteo Collina](pages/2019/realtalkjavascript-nodejs-optimization-and-performance.md) | | [Recording](https://webrush.io/episodes/56c29daf-a173683b) | | English | 129 | | 2019-6-27 | WorkerConf | [Stream Into the Future](pages/2019/stream-into-the-future-workerconf.md) | | [Recording](https://www.youtube.com/watch?v=bD8OrK50SuQ) | [🇳🇱](## "Netherlands") | English | 130 | | 2019-5-12 | FullStack NYC | [Take Your Http Server to Ludicrous Speed](pages/2019/take-your-http-server-to-ludicrous-speed-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed) | [🇺🇸](## "United States") | English | 131 | | 2019-5-6 | Microsoft Build | [Build Scalable APIs with GraphQL](pages/2019/microsoft-build.md) | | | [🇺🇸](## "United States") | English | 132 | | 2019-3-6 | QCon London 2019 | [A New Way to Profile Node.js](pages/2019/a-new-way-to-profile-node-js-qcon.md) | | [Recording](https://www.youtube.com/watch?v=ASv8188AkVk) | [🇬🇧](## "undefined") | English | 133 | | 2019-2-7 | JSConf Hawaii 2019 | [Bubble Up Your Node.js I/O - JSConf Hawaii 2019](pages/2019/bubble-up-your-node-io-jsconf-hawaii.md) | | [Recording](https://www.youtube.com/watch?v=rYqh5LYfw0Y) | [🇺🇸](## "United States") | English | 134 | 135 | 136 | # 2018 137 | 138 | 139 | ![Total Events](https://img.shields.io/badge/total-8-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-7-red?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-1-orange?style=flat-square) 140 | 141 | 142 | 143 | 144 | | Date | Event | Title | Slides | Recording | Location | Language | 145 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 146 | | 2018-11-26 | Nodejsconf.it 2018 | [The State of Node.js Core](pages/2018/the-state-of-nodejs-core.md) | | [Recording](https://www.youtube.com/watch?v=IgLDtvo6kLM) | [🇮🇹](## "Italy") | English | 147 | | 2018-7-11 | FullStack | [The Node.js Performance Workshop](pages/2018/the-nodejs-performance-workshop-fullstack.md) | | | [🇬🇧](## "undefined") | English | 148 | | 2018-6-28 | FullStack | [A New Way to Profile Node.js](pages/2018/a-new-way-to-profile-node-js-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/11781-a-new-way-to-profile-node-js) | [🇬🇧](## "undefined") | English | 149 | | 2018-6-28 | WorkerConf | [A New Way to Profile Node.js](pages/2018/a-new-way-to-profile-node-js-workerconf.md) | | [Recording](https://www.youtube.com/watch?v=DOIpzLJ1oN8) | [🇦🇹](## "Austria") | English | 150 | | 2018-6-28 | NodeConf.eu | [GraphQL Accelerated](pages/2018/graphql-accelerated.md) | | [Recording](https://www.youtube.com/watch?v=-V86BB9wrG8) | [🇮🇪](## "Ireland") | English | 151 | | 2018-4-11 | Codemotion Rome 2018 | [There is no such thing as Luck](pages/2018/there-is-no-such-thing-as-luck.md) | | [Recording](https://www.youtube.com/watch?v=SJjvafV7xlU) | [🇮🇹](## "Italy") | English | 152 | | 2018-4-9 | JSDay | [My Node.js Process is on Fire!](pages/2018/my-nodejs-process-is-on-fire-jsday.md) | | [Recording](https://www.youtube.com/watch?v=mR5AhImHjZU) | [🇮🇹](## "Italy") | English | 153 | | 2018-1-25 | JSConf Asia 2018 | [My Node.js Process is on Fire!](pages/2018/my-nodejs-process-is-on-fire.md) | | [Recording](https://www.youtube.com/watch?v=G9Vkpe55Gu8) | [🇸🇬](## "Singapore") | English | 154 | 155 | 156 | # 2017 157 | 158 | 159 | ![Total Events](https://img.shields.io/badge/total-6-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-6-red?style=flat-square) 160 | 161 | 162 | 163 | 164 | | Date | Event | Title | Slides | Recording | Location | Language | 165 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 166 | | 2017-10-4 | Node.js Interactive 2017 | [Take Your Http Server to Ludicrous Speed](pages/2017/take-your-http-server-to-ludicrous-speed.md) | | [Recording](https://www.youtube.com/watch?v=gltzZjKYK1I) | [🇨🇦](## "Canada") | English | 167 | | 2017-10-4 | Node.js Interactive 2017 | [The Node movement and how to play a part](pages/2017/the-node-movement-and-how-to-play-a-part.md) | | [Recording](https://www.youtube.com/watch?v=OekXkuZ2u7o) | [🇨🇦](## "Canada") | English | 168 | | 2017-7-12 | FullStack | [Take Your Http Server to Ludicrous Speed](pages/2017/take-your-http-server-to-ludicrous-speed-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed) | [🇬🇧](## "undefined") | English | 169 | | 2017-7-12 | FullStack | [The Cost of Logging](pages/2017/the-cost-of-logging-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10479-the-cost-of-logging-intermediate) | [🇬🇧](## "undefined") | English | 170 | | 2017-6-1 | Web Rebels | [Scaling State](pages/2017/scalable-pub-sub.md) | | [Recording](https://2017.webrebels.org/) | [🇳🇴](## "Norway") | English | 171 | | 2017-5-10 | JSDay | [How Open Source Changed My Life!](pages/2017/how-open-source-changed-my-life.md) | | [Recording](https://vimeo.com/236315423) | [🇮🇹](## "Italy") | English | 172 | 173 | 174 | # 2016 175 | 176 | 177 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 178 | 179 | 180 | 181 | 182 | | Date | Event | Title | Slides | Recording | Location | Language | 183 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 184 | | 2016-11-7 | uCon | [Scaling State](pages/2016/scaling-state-ucon.md) | | [Recording](https://skillsmatter.com/skillscasts/8747-scaling-state) | [🇬🇧](## "undefined") | English | 185 | | 2016-10-20 | NodeConf.eu | [The Cost of Logging](pages/2016/the-cost-of-logging-nodeconf.md) | | [Recording](https://www.youtube.com/watch?v=zja-_IYNrFc) | [🇮🇪](## "Ireland") | English | 186 | | 2016-9-15 | Node.js Interactive Europe 2016 | [The Cost of Logging](pages/2016/the-cost-of-logging-node-interactive.md) | | [Recording](https://www.youtube.com/watch?v=Dnx2SPdcDSU) | [🇳🇱](## "Netherlands") | English | 187 | | 2016-7-26 | Node.js Summit 2016 | [The Cost of Logging](pages/2016/the-cost-of-logging-node-summit.md) | | [Recording](https://vimeo.com/180476148) | [🇺🇸](## "United States") | English | 188 | | 2016-3-18 | Codemotion Rome 2016 | [We are not Object-Oriented Anymore](pages/2016/we-are-not-object-oriented-anymore.md) | | [Recording](https://www.youtube.com/watch?v=5uucS0LH-oM) | [🇮🇪](## "Ireland") | English | 189 | 190 | 191 | # 2015 192 | 193 | 194 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 195 | 196 | 197 | 198 | 199 | | Date | Event | Title | Slides | Recording | Location | Language | 200 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 201 | | 2015-12-8 | Node.js Interactive 2015 | [Reaching Ludicrous Speed](pages/2015/reaching-ludicrous-speed.md) | | [Recording](https://www.youtube.com/watch?v=_0W_822Dijg) | [🇺🇸](## "United States") | English | 202 | | 2015-11-9 | uCon | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-ucon-london.md) | | [Recording](https://skillsmatter.com/skillscasts/7014-we-are-not-object-oriented-anymore) | [🇬🇧](## "undefined") | English | 203 | | 2015-11-5 | uCon Stockholm | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-ucon.md) | | | [🇸🇪](## "Sweden") | English | 204 | | 2015-10-26 | FullStack | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/6819-we-are-not-object-oriented-anymore-or-why-the-node-callback-style-is-awesome) | [🇬🇧](## "undefined") | English | 205 | | 2015-3-25 | Codemotion Rome | [NO. La sottile arte di trovare il tempo dove non esiste - Codemotion Rome 2015](pages/2015/no-la-sottile-arte-di-trovare-il-tempo-dove-non-esiste.md) | | [Recording](https://www.youtube.com/watch?v=9Pbu5rMiz5g) | [🇮🇹](## "Italy") | Italian | 206 | 207 | 208 | # 2014 209 | 210 | 211 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 212 | 213 | 214 | 215 | 216 | | Date | Event | Title | Slides | Recording | Location | Language | 217 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 218 | | 2014-11-21 | NodeConf Budapest 2014 | [Hardware Hacking on Stage](pages/2014/harware-hacking-on-stage.md) | | [Recording](https://www.youtube.com/watch?v=6qF_x_wGLl0) | [🇭🇺](## "Hungary") | English | 219 | | 2014-10-23 | FullStack | [Live Code the Intenet of Things](pages/2014/live-code-the-internet-of-things.md) | | [Recording](https://skillsmatter.com/skillscasts/5779-live-code-the-internet-of-things) | [🇬🇧](## "undefined") | English | 220 | | 2014-9-7 | NodeConf.eu | [Full Stack Through Microservices](pages/2014/full-stack-through-microservices.md) | | [Recording](https://www.youtube.com/watch?v=l4Oc3E1hvTQ) | [🇮🇪](## "Ireland") | English | 221 | | 2014-6-27 | LXJS | [Live Code a Robot and Control it from the Web](pages/2014/live-code-a-robot.md) | | [Recording](https://www.youtube.com/watch?v=BxJ-27Nnakc) | [🇵🇹](## "Portugal") | English | 222 | | 2014-5-14 | JSDay | [Taking your things to your web app using MQTT and Node.js](pages/2014/mqtt-and-nodejs.md) | | [Recording](https://vimeo.com/128349453) | [🇮🇹](## "Italy") | English | 223 | 224 | 225 | # 2013 226 | 227 | 228 | ![Total Events](https://img.shields.io/badge/total-2-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-2-red?style=flat-square) 229 | 230 | 231 | 232 | 233 | | Date | Event | Title | Slides | Recording | Location | Language | 234 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 235 | | 2013-9-9 | NodeConf.eu | [MQTT and Node.js, Messaging in the Internet of Things](pages/2013/mqtt-and-nodejs.md) | | [Recording](https://www.youtube.com/watch?v=WE7GVIFRV7Q) | [🇮🇪](## "Ireland") | English | 236 | | 2013-8-9 | Distill by EngineYard | [Making things that work with us](pages/2013/make-things-that-work-with-us.md) | [Slides](https://www.slideshare.net/matteocollina/making-things-that-work-with-us-distill) | | [🇺🇸](## "United States") | English | 237 | 238 | 239 | 240 | _A few talks have been omitted or have gone into oblivion._ 241 | 242 | Updated on 2022-07-01T16:04:02.983Z -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Public Speaking 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |

Total Events Total Meetups Total Conferences Total Podcasts Total Webinars Total Workshops

20 |
21 |

Matteo Collina - Public Speaking

22 |

Node.js TSC member, PhD, Chief Software Architect NearForm, Lead maintainer Fastify

Twitter Follow LinkedIn Add Me

Matteo Collina public speaking profile

23 |

Table of Contents

24 | 36 |

2022

37 |

Total Events Total Meetups Total Conferences Total Podcasts

38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 |
DateEventTitleSlidesRecordingLocationLanguage
2022-6-6OpenJS World 2022A Fastify tale of ShapesRecording🇺🇸English
2022-6-6OpenJS World 2022Everybody is Responsible for PerformanceRecording🇺🇸English
2022-2-25Design TalkAlways put the client firstRecordingEnglish
2022-2-25PodRocketFastify and Pino with Matteo CollinaRecordingEnglish
2022-2-1GraphQL Berlin MeetupGraphQL Caching DemystifiedRecordingEnglish
2022-1-26JS Poland 20221, 2, 3.. Fastify!RecordingEnglish
107 |

2021

108 |

Total Events Total Conferences Total Podcasts Total Webinars Total Workshops

109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 |
DateEventTitleSlidesRecordingLocationLanguage
2021-12-9GraphQL GalaxyGraphQL Caching DemystifiedRecordingEnglish
2021-11-23We are developers - JavaScript Congress1, 2, 3.. Fastify!RecordingEnglish
2021-11-16ITClassGraphQL Caching DemystifiedRecordingEnglish
2021-11-15JSConf IndiaMultithreaded Logging with PinoEnglish
2021-11-15Node.TLVMultithreaded Logging with Pino🇮🇱English
2021-10-18NodeConf RemoteMultithreaded Logging with PinoRecordingEnglish
2021-10-7JS PartyFastify served with a refreshing Pino 🍷RecordingEnglish
2021-7-29OpenHive.jsCharlie Robbins on JavaScript, TypeScript and the history and future of Node.jsRecordingEnglish
2021-7-29OpenHive.jsGil Tayar on ECMAScript modules (ESM) with JavaScriptRecordingEnglish
2021-7-9OpenHive.jsYoni Goldberg on Integration Tests with JavaScriptRecordingEnglish
2021-6-16NearForm Presents: Backend Development with Node.jsLearn Fastify One Plugin at a TimeEnglish
2021-6-10Codemotion DevCastOpen Source e sicurezza, amore e odioRecordingItalian
2021-6-9JSNationCan We Double HTTP Client Throughput?RecordingEnglish
2021-6-2Open.js World 2021A fast introduction to FastifyRecordingEnglish
2021-5-21RedisConfSolving Head-Of-Line blocking with auto pipeliningRecordingEnglish
2021-5-17The Defiance_ Ventures PodcastInterview with Matteo CollinaRecordingEnglish
2021-5-12OpenHive.jsDanielle Adams on Cloud Native BuildpacksRecordingEnglish
2021-5-12OpenHive.jsRob Palmer on Server Side Javascript and TypeScriptRecordingEnglish
2021-5-11NearForm DecodedThe promise of DevOpsRecordingEnglish
2021-4-29GitbarNodejs, fastify e opensource con Matteo Collina (Nearform)RecordingItalian
2021-4-22Codemotion DevCastUndici - come ho raddoppiato le performance del HTTP client di Node.jsRecordingItalian
2021-4-7OpenHive.jsKent C. Dodds on JavaScript TrainingRecordingEnglish
2021-3-31NearForm Presents: Node Core + Broken Promises workshopBroken PromisesEnglish
2021-3-31NearForm Presents: Node Core + Broken Promises workshopThe Unsung Story of Events, Streams and PromisesRecordingEnglish
2021-3-23Codemotion Italian EditionBe the glueRecordingEnglish
2021-2-25Codemotion DevCastFastify - Un framework cucinato a BolognaRecordingItalian
2021-2-12OpenHive.jsLiz Parody on Building CommunitiesRecordingEnglish
2021-2-12OpenHive.jsThe Next 25 Years of JavaScriptRecordingEnglish
2021-1-6OpenHive.jsMikeal Rogers on Open SourceRecordingEnglish
385 |

2020

386 |

Total Events Total Meetups Total Conferences Total Podcasts Total Webinars Total Workshops

387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 |
DateEventTitleSlidesRecordingLocationLanguage
2020-12-9OpenHive.jsMikeal Rogers on Decentralised DatabasesRecordingEnglish
2020-11-2NodeConf RemoteCan We Double HTTP Client Throughput?RecordingEnglish
2020-11-2NodeConf RemoteWhy there are no incentives for security in Open SourceSlidesRecordingEnglish
2020-10-21SnykConWhy there are no incentives for security in Open SourceSlidesRecordingEnglish
2020-10-7OpenHive.jsAlessandro Polidori on Open Source and VoIPRecordingEnglish
2020-10-7OpenHive.jsAnthony Aragues on Data VisualisationRecordingEnglish
2020-10-2NodejsdayGraphQL AcceleratedRecordingEnglish
2020-8-12OpenHive.jsKenigbolo Meya Stephen on DocumentationRecordingEnglish
2020-8-12OpenHive.jsNearForm on Building Contact Tracing AppsRecordingEnglish
2020-8-11Real Talk JavaScriptExpressway to Fastify with Matteo CollinaRecordingEnglish
2020-8-4Virtual Domain-Driven DesignWhat can we learn from open-source with Matteo CollinaRecordingEnglish
2020-7-14NOTTjs1, 2, 3.. Fastify!English
2020-7-6OpenHive.jsRamón Guijarro on Modern Web APIsRecording
2020-6-22JSDayBuild a community, not a framework!RecordingEnglish
2020-6-22Open.js World 2020Build a community, not a framework!RecordingEnglish
2020-6-17JSNation1, 2, 3.. Fastify!RecordingEnglish
2020-6-11JSNationBroken PromisesEnglish
2020-6-11OpenJS WorldBroken PromisesEnglish
2020-6-8OpenHive.jsLaurie Barth on Maintaining GatsbyRecordingEnglish
2020-6-8OpenHive.jsLiran Tal on Empowering Open SourceRecordingEnglish
2020-6-8OpenHive.jsPhilipp Dunkel on TemporalRecordingEnglish
2020-5-20Storie di developersIntervista a Matteo CollinaRecordingItalian
2020-3-3Node.TLVStream Into the FutureRecording🇮🇱English
609 |

2019

610 |

Total Events Total Conferences Total Podcasts

611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 |
DateEventTitleSlidesRecordingLocationLanguage
2019-12-11Node.js Interactive 2019GraphQL SimplifiedRecording🇨🇦English
2019-12-11Node.js Conference Netherlands 2019Stream Into the FutureRecording🇳🇱English
2019-12-11Node.js Interactive 2019Stream Into the FutureRecording🇨🇦English
2019-11-14JS PartyYou're probably using streamsRecordingEnglish
2019-11-14Real Talk JavaScriptNode.js Optimization and Performance - Matteo CollinaRecordingEnglish
2019-6-27WorkerConfStream Into the FutureRecording🇳🇱English
2019-5-12FullStack NYCTake Your Http Server to Ludicrous SpeedRecording🇺🇸English
2019-5-6Microsoft BuildBuild Scalable APIs with GraphQL🇺🇸English
2019-3-6QCon London 2019A New Way to Profile Node.jsRecording🇬🇧English
2019-2-7JSConf Hawaii 2019Bubble Up Your Node.js I/O - JSConf Hawaii 2019Recording🇺🇸English
716 |

2018

717 |

Total Events Total Conferences Total Workshops

718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 |
DateEventTitleSlidesRecordingLocationLanguage
2018-11-26Nodejsconf.it 2018The State of Node.js CoreRecording🇮🇹English
2018-7-11FullStackThe Node.js Performance Workshop🇬🇧English
2018-6-28FullStackA New Way to Profile Node.jsRecording🇬🇧English
2018-6-28WorkerConfA New Way to Profile Node.jsRecording🇦🇹English
2018-6-28NodeConf.euGraphQL AcceleratedRecording🇮🇪English
2018-4-11Codemotion Rome 2018There is no such thing as LuckRecording🇮🇹English
2018-4-9JSDayMy Node.js Process is on Fire!Recording🇮🇹English
2018-1-25JSConf Asia 2018My Node.js Process is on Fire!Recording🇸🇬English
805 |

2017

806 |

Total Events Total Conferences

807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 |
DateEventTitleSlidesRecordingLocationLanguage
2017-10-4Node.js Interactive 2017Take Your Http Server to Ludicrous SpeedRecording🇨🇦English
2017-10-4Node.js Interactive 2017The Node movement and how to play a partRecording🇨🇦English
2017-7-12FullStackTake Your Http Server to Ludicrous SpeedRecording🇬🇧English
2017-7-12FullStackThe Cost of LoggingRecording🇬🇧English
2017-6-1Web RebelsScaling StateRecording🇳🇴English
2017-5-10JSDayHow Open Source Changed My Life!Recording🇮🇹English
876 |

2016

877 |

Total Events Total Conferences

878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 |
DateEventTitleSlidesRecordingLocationLanguage
2016-11-7uConScaling StateRecording🇬🇧English
2016-10-20NodeConf.euThe Cost of LoggingRecording🇮🇪English
2016-9-15Node.js Interactive Europe 2016The Cost of LoggingRecording🇳🇱English
2016-7-26Node.js Summit 2016The Cost of LoggingRecording🇺🇸English
2016-3-18Codemotion Rome 2016We are not Object-Oriented AnymoreRecording🇮🇪English
938 |

2015

939 |

Total Events Total Conferences

940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 |
DateEventTitleSlidesRecordingLocationLanguage
2015-12-8Node.js Interactive 2015Reaching Ludicrous SpeedRecording🇺🇸English
2015-11-9uConWe are not Object Oriented anymoreRecording🇬🇧English
2015-11-5uCon StockholmWe are not Object Oriented anymore🇸🇪English
2015-10-26FullStackWe are not Object Oriented anymoreRecording🇬🇧English
2015-3-25Codemotion RomeNO. La sottile arte di trovare il tempo dove non esiste - Codemotion Rome 2015Recording🇮🇹Italian
1000 |

2014

1001 |

Total Events Total Conferences

1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 |
DateEventTitleSlidesRecordingLocationLanguage
2014-11-21NodeConf Budapest 2014Hardware Hacking on StageRecording🇭🇺English
2014-10-23FullStackLive Code the Intenet of ThingsRecording🇬🇧English
2014-9-7NodeConf.euFull Stack Through MicroservicesRecording🇮🇪English
2014-6-27LXJSLive Code a Robot and Control it from the WebRecording🇵🇹English
2014-5-14JSDayTaking your things to your web app using MQTT and Node.jsRecording🇮🇹English
1062 |

2013

1063 |

Total Events Total Conferences

1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 |
DateEventTitleSlidesRecordingLocationLanguage
2013-9-9NodeConf.euMQTT and Node.js, Messaging in the Internet of ThingsRecording🇮🇪English
2013-8-9Distill by EngineYardMaking things that work with usSlides🇺🇸English
1097 |

A few talks have been omitted or have gone into oblivion.

1098 |

Updated on 2022-07-01T16:04:02.983Z

1099 | 1100 | 1101 |
1102 | 1103 | 1104 | 1105 | -------------------------------------------------------------------------------- /docs/styles.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --nightrider-gray: #333; 3 | --white-smoke: #fff; 4 | --blue: #0ff; 5 | --cornflower-blue: #539bf5; 6 | --white: #fff; 7 | } 8 | 9 | @media (prefers-color-scheme: light) { 10 | :root { 11 | --color-bg: var(--white); 12 | --color-text: var(--nightrider-gray); 13 | --color-link: var(--cornflower-blue); 14 | } 15 | } 16 | @media (prefers-color-scheme: dark) { 17 | :root { 18 | --color-bg: var(--nightrider-gray); 19 | --color-text: var(--white-smoke); 20 | --color-link: var(--cornflower-blue); 21 | } 22 | } 23 | 24 | * { 25 | box-sizing: border-box; 26 | } 27 | 28 | html, 29 | body { 30 | padding: 0; 31 | margin: 0; 32 | font-family: -apple-system, system-ui, sans-serif; 33 | color: var(--color-text); 34 | background-color: var(--color-bg); 35 | } 36 | 37 | main { 38 | max-width: calc(900px - (20px * 2)); 39 | margin: 0 auto; 40 | padding-right: 20px; 41 | padding-left: 20px; 42 | } 43 | 44 | p:last-child { 45 | margin-bottom: 0; 46 | } 47 | 48 | a { 49 | color: var(--color-link); 50 | text-decoration: none; 51 | } 52 | 53 | a:hover { 54 | text-decoration: underline; 55 | } 56 | 57 | table { 58 | border-collapse: collapse; 59 | } 60 | 61 | table td, 62 | table th { 63 | border: 1px solid var(--color-text); 64 | padding: 5px; 65 | text-align: left; 66 | } 67 | -------------------------------------------------------------------------------- /gigsboat-eleventy-starter/_includes/gigsboat-layout.liquid: -------------------------------------------------------------------------------- 1 | --- 2 | title: Public Speaking 3 | --- 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | {{ title }} 13 | {% if description %} 14 | 15 | {% endif %} 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | {% block content %} 24 | {{ content }} 25 | {% endblock %} 26 |
27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /gigsboat-eleventy-starter/index.json: -------------------------------------------------------------------------------- 1 | { "layout": "gigsboat-layout" } 2 | -------------------------------------------------------------------------------- /gigsboat-eleventy-starter/index.md: -------------------------------------------------------------------------------- 1 |

Total Events Total Meetups Total Conferences Total Podcasts Total Webinars Total Workshops

2 |
3 |

Matteo Collina - Public Speaking

4 |

Node.js TSC member, PhD, Chief Software Architect NearForm, Lead maintainer Fastify

Twitter Follow LinkedIn Add Me

Matteo Collina public speaking profile

5 | 6 | # Table of Contents 7 | 8 | 9 | - [Year of 2022](#2022) - total events 4 10 | - [Year of 2021](#2021) - total events 29 11 | - [Year of 2020](#2020) - total events 23 12 | - [Year of 2019](#2019) - total events 10 13 | - [Year of 2018](#2018) - total events 8 14 | - [Year of 2017](#2017) - total events 6 15 | - [Year of 2016](#2016) - total events 5 16 | - [Year of 2015](#2015) - total events 5 17 | - [Year of 2014](#2014) - total events 5 18 | - [Year of 2013](#2013) - total events 2 19 | 20 | # 2022 21 | 22 | 23 | ![Total Events](https://img.shields.io/badge/total-4-blue?style=flat-square) ![Total Meetups](https://img.shields.io/badge/meetups-1-violet?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-1-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-2-yellow?style=flat-square) 24 | 25 | 26 | 27 | 28 | | Date | Event | Title | Slides | Recording | Location | Language | 29 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 30 | | 2022-2-25 | Design Talk | [Always put the client first](pages/2022/design-talk.md) | | [Recording](https://shows.acast.com/design-talk/episodes/always-put-the-client-first) | | English | 31 | | 2022-2-25 | PodRocket | [Fastify and Pino with Matteo Collina](pages/2022/podrocket.md) | | [Recording](https://podrocket.logrocket.com/fastify) | | English | 32 | | 2022-2-1 | GraphQL Berlin Meetup | [GraphQL Caching Demystified](pages/2022/graphql-berlin-meetup.md) | | [Recording](https://youtu.be/srkTmlFNOyw) | | English | 33 | | 2022-1-26 | JS Poland 2022 | [1, 2, 3.. Fastify!](pages/2022/jspoland.md) | | [Recording](https://js-poland.pl/javascript-matteo-collina.html) | | English | 34 | 35 | 36 | # 2021 37 | 38 | 39 | ![Total Events](https://img.shields.io/badge/total-29-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-10-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-12-yellow?style=flat-square) ![Total Webinars](https://img.shields.io/badge/webinars-5-lightgrey?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-2-orange?style=flat-square) 40 | 41 | 42 | 43 | 44 | | Date | Event | Title | Slides | Recording | Location | Language | 45 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 46 | | 2021-12-9 | GraphQL Galaxy | [GraphQL Caching Demystified](pages/2021/graphql-galaxy-mercurius-cache.md) | | [Recording](https://portal.gitnation.org/contents/graphql-caching-demystified) | | English | 47 | | 2021-11-23 | We are developers - JavaScript Congress | [1, 2, 3.. Fastify!](pages/2021/one-two-three-fastify.md) | | [Recording](https://www.wearedevelopers.com/en/videos/1-2-3-fastify) | | English | 48 | | 2021-11-16 | ITClass | [GraphQL Caching Demystified](pages/2021/itclass-webinar-graphql-caching-demystified.md) | | [Recording](https://www.youtube.com/watch?v=uA1exBqZ9i0) | | English | 49 | | 2021-11-15 | JSConf India | [Multithreaded Logging with Pino](pages/2021/jsconf-india-pino-multithread.md) | | | | English | 50 | | 2021-11-15 | Node.TLV | [Multithreaded Logging with Pino](pages/2021/nodetlv-pino-multithread.md) | | | [🇮🇱](## "Israel") | English | 51 | | 2021-10-18 | NodeConf Remote | [Multithreaded Logging with Pino](pages/2021/nodeconf-pino-multithread.md) | | [Recording](https://www.youtube.com/watch?v=vETUVN-KEgc) | | English | 52 | | 2021-10-7 | JS Party | [Fastify served with a refreshing Pino 🍷](pages/2021/jsparty-fastify.md) | | [Recording](https://changelog.com/jsparty/197) | | English | 53 | | 2021-7-29 | OpenHive.js | [Charlie Robbins on JavaScript, TypeScript and the history and future of Node.js](pages/2021/openhive-charlie-robbins.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Charlie-Robbins-on-JavaScript--TypeScript-and-the-history-and-future-of-Node-js-e156dab) | | English | 54 | | 2021-7-29 | OpenHive.js | [Gil Tayar on ECMAScript modules (ESM) with JavaScript](pages/2021/openhive-gil-tayar.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Gil-Tayar-on-ECMAScript-modules-ESM-with-JavaScript-e156djb) | | English | 55 | | 2021-7-9 | OpenHive.js | [Yoni Goldberg on Integration Tests with JavaScript](pages/2021/openhive-yoni-goldberg.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Yoni-Goldberg-on-Integration-Tests-with-JavaScript-e144ash) | | English | 56 | | 2021-6-16 | NearForm Presents: Backend Development with Node.js | [Learn Fastify One Plugin at a Time](pages/2021/nearform-presents-learn-fastify.md) | | | | English | 57 | | 2021-6-10 | Codemotion DevCast | [Open Source e sicurezza, amore e odio](pages/2021/codemotion-devcast-sicurezza.md) | | [Recording](https://live.codemotion.com/devcast/devcast-italian-edition-10062021) | | Italian | 58 | | 2021-6-9 | JSNation | [Can We Double HTTP Client Throughput?](pages/2021/can-we-double-http-client-throughput.md) | | [Recording](https://www.youtube.com/watch?v=tr057sP4VBM) | | English | 59 | | 2021-6-2 | Open.js World 2021 | [A fast introduction to Fastify](pages/2021/a-fast-introduction-to-fastify.md) | | [Recording](https://www.youtube.com/watch?v=MOvLdfUhqrU) | | English | 60 | | 2021-5-21 | RedisConf | [Solving Head-Of-Line blocking with auto pipelining](pages/2021/redisconf.md) | | [Recording](https://www.youtube.com/watch?v=0L0ER4pZbX4) | | English | 61 | | 2021-5-17 | The Defiance_ Ventures Podcast | [Interview with Matteo Collina](pages/2021/defiance-ventures.md) | | [Recording](https://anchor.fm/defiance-ventures/episodes/72---Matteo-Collina--NearForm--Creator-of-Fastify--and-Node-js-Steering-Committee-Member-e111pon) | | English | 62 | | 2021-5-12 | OpenHive.js | [Danielle Adams on Cloud Native Buildpacks](pages/2021/openhive-danielle-adams.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Danielle-Adams-on-Cloud-Native-Buildpacks-e10of7p) | | English | 63 | | 2021-5-12 | OpenHive.js | [Rob Palmer on Server Side Javascript and TypeScript](pages/2021/openhive-rob-palmer.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Rob-Palmer-on-Server-Side-Javascript-and-TypeScript-e12gu0a) | | English | 64 | | 2021-5-11 | NearForm Decoded | [The promise of DevOps](pages/2021/nearform-decoded-episode-8.md) | | [Recording](https://www.youtube.com/watch?v=zR_Xn32HXuc) | | English | 65 | | 2021-4-29 | Gitbar | [Nodejs, fastify e opensource con Matteo Collina (Nearform)](pages/2021/gitbar-fastify.md) | | [Recording](https://www.gitbar.it/episodes/ep71-matteo-collina_2) | | Italian | 66 | | 2021-4-22 | Codemotion DevCast | [Undici - come ho raddoppiato le performance del HTTP client di Node.js](pages/2021/codemotion-devcast-undici.md) | | [Recording](https://live.codemotion.com/devcast/devcast---italian-edition-22042021) | | Italian | 67 | | 2021-4-7 | OpenHive.js | [Kent C. Dodds on JavaScript Training](pages/2021/openhive-kent-c-dodds.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Kent-C--Dodds-on-JavaScript-Training-eudrdn) | | English | 68 | | 2021-3-31 | NearForm Presents: Node Core + Broken Promises workshop | [Broken Promises](pages/2021/nearform-presents-broken-promises-workshop.md) | | | | English | 69 | | 2021-3-31 | NearForm Presents: Node Core + Broken Promises workshop | [The Unsung Story of Events, Streams and Promises](pages/2021/nearform-presents-unsung-story-events-streams-promises.md) | | [Recording](https://www.youtube.com/watch?v=qOHgQAV2ydo) | | English | 70 | | 2021-3-23 | Codemotion Italian Edition | [Be the glue](pages/2021/codemotion-be-the-glue.md) | | [Recording](https://talks.codemotion.com/be-the-glue) | | English | 71 | | 2021-2-25 | Codemotion DevCast | [Fastify - Un framework cucinato a Bologna](pages/2021/codemotion-devcast-fastify.md) | | [Recording](https://talks.codemotion.com/fastify-un-framework-cucinato-a-bologna) | | Italian | 72 | | 2021-2-12 | OpenHive.js | [Liz Parody on Building Communities](pages/2021/openhive-liz-parody-communities.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Liz-Parody-on-Building-Communities-es6o5e) | | English | 73 | | 2021-2-12 | OpenHive.js | [The Next 25 Years of JavaScript](pages/2021/openhive-next-25-years-of-js.md) | | [Recording](https://anchor.fm/openhivejs/episodes/The-Next-25-Years-of-JavaScript-eqahde) | | English | 74 | | 2021-1-6 | OpenHive.js | [Mikeal Rogers on Open Source](pages/2021/openhive-mikeal-open-source.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-the-Open-Source-Model-eokfbo) | | English | 75 | 76 | 77 | # 2020 78 | 79 | 80 | ![Total Events](https://img.shields.io/badge/total-23-blue?style=flat-square) ![Total Meetups](https://img.shields.io/badge/meetups-1-violet?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-8-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-11-yellow?style=flat-square) ![Total Webinars](https://img.shields.io/badge/webinars-1-lightgrey?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-2-orange?style=flat-square) 81 | 82 | 83 | 84 | 85 | | Date | Event | Title | Slides | Recording | Location | Language | 86 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 87 | | 2020-12-9 | OpenHive.js | [Mikeal Rogers on Decentralised Databases](pages/2020/openhive-mikeal-decentralized-databases.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Mikeal-Rogers-on-Decentralised-Databases-eniueg) | | English | 88 | | 2020-11-2 | NodeConf Remote | [Can We Double HTTP Client Throughput?](pages/2020/can-we-double-http-client-throughput.md) | | [Recording](https://www.youtube.com/watch?v=D9xblqBAHO8) | | English | 89 | | 2020-11-2 | NodeConf Remote | [Why there are no incentives for security in Open Source](pages/2020/why-there-are-no-incentives-for-security-in-oss.md) | [Slides](https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit) | [Recording](https://www.youtube.com/watch?v=l7EbDZRjwXA) | | English | 90 | | 2020-10-21 | SnykCon | [Why there are no incentives for security in Open Source](pages/2020/why-there-are-no-incentives-for-security-in-oss-snykcon.md) | [Slides](https://docs.google.com/presentation/d/1PO7gBvs2PB4SP7IcoWS1tr70wBM2ZrKdwWYnpqq5bUo/edit) | [Recording](https://www.youtube.com/watch?v=7eDcZz-6eQg) | | English | 91 | | 2020-10-7 | OpenHive.js | [Alessandro Polidori on Open Source and VoIP](pages/2020/openhive-alessandro-polidori.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Alessandro-Polidori-on-Open-Source-and-VoIP-ekno7f) | | English | 92 | | 2020-10-7 | OpenHive.js | [Anthony Aragues on Data Visualisation](pages/2020/openhive-anthony-aragues-data-viz.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Anthony-Aragues-on-Data-Visualisation-emau0n) | | English | 93 | | 2020-10-2 | Nodejsday | [GraphQL Accelerated](pages/2020/graphql-accelerated.md) | | [Recording](https://www.youtube.com/watch?v=CQ1KgfVcL2E) | | English | 94 | | 2020-8-12 | OpenHive.js | [Kenigbolo Meya Stephen on Documentation](pages/2020/openhive-kenigbolo.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Kenigbolo-Meya-Stephen-on-Documentation-ejc6a7) | | English | 95 | | 2020-8-12 | OpenHive.js | [NearForm on Building Contact Tracing Apps](pages/2020/openhive-nearform-contact-tracing.md) | | [Recording](https://anchor.fm/openhivejs/episodes/NearForm-on-Building-Contact-Tracing-Apps-ei1ujq) | | English | 96 | | 2020-8-11 | Real Talk JavaScript | [Expressway to Fastify with Matteo Collina](pages/2020/realtalkjavascript-expressway-to-fastify.md) | | [Recording](https://webrush.io/episodes/episode-96-expressway-to-fastify-with-matteo-collina) | | English | 97 | | 2020-8-4 | Virtual Domain-Driven Design | [What can we learn from open-source with Matteo Collina](pages/2020/vddd.md) | | [Recording](https://virtualddd.libsyn.com/panel-what-can-we-learn-from-open-source-with-matteo-collina) | | English | 98 | | 2020-7-14 | NOTTjs | [1, 2, 3.. Fastify!](pages/2020/one-two-three-fastify-nottjs.md) | | | | English | 99 | | 2020-7-6 | OpenHive.js | [Ramón Guijarro on Modern Web APIs](pages/2020/openhive-ramon-guijarro.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Ramn-Guijarro-on-Modern-Web-APIs-egcfq3) | | | 100 | | 2020-6-22 | JSDay | [Build a community, not a framework!](pages/2020/build-a-community-not-a-framework-jsday.md) | | [Recording](https://www.youtube.com/watch?v=QO_LLYx3mAQ) | | English | 101 | | 2020-6-22 | Open.js World 2020 | [Build a community, not a framework!](pages/2020/build-a-community-not-a-framework.md) | | [Recording](https://www.youtube.com/watch?v=e0rdy7APH-o) | | English | 102 | | 2020-6-17 | JSNation | [1, 2, 3.. Fastify!](pages/2020/one-two-three-fastify.md) | | [Recording](https://portal.gitnation.org/contents/1-2-3-fastify) | | English | 103 | | 2020-6-11 | JSNation | [Broken Promises](pages/2020/jsnation-broken-promises-workshop.md) | | | | English | 104 | | 2020-6-11 | OpenJS World | [Broken Promises](pages/2020/openjsworld-broken-promises-workshop.md) | | | | English | 105 | | 2020-6-8 | OpenHive.js | [Laurie Barth on Maintaining Gatsby](pages/2020/openhive-laurie-bath.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Laurie-Barth-on-Maintaining-Gatsby-ef6p8i) | | English | 106 | | 2020-6-8 | OpenHive.js | [Liran Tal on Empowering Open Source](pages/2020/openhive-liran-tal.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Liran-Tal-on-Empowering-Open-Source-ef6lt7) | | English | 107 | | 2020-6-8 | OpenHive.js | [Philipp Dunkel on Temporal](pages/2020/openhive-philip-dunkel.md) | | [Recording](https://anchor.fm/openhivejs/episodes/Philipp-Dunkel-on-Temporal-ef562f) | | English | 108 | | 2020-5-20 | Storie di developers | [Intervista a Matteo Collina](pages/2020/storie-di-developers.md) | | [Recording](https://www.youtube.com/watch?v=VHoyXNqjuGY) | | Italian | 109 | | 2020-3-3 | Node.TLV | [Stream Into the Future](pages/2020/stream-into-the-future-node-tlv.md) | | [Recording](https://www.youtube.com/watch?v=PIfg1AXwtQo) | [🇮🇱](## "Israel") | English | 110 | 111 | 112 | # 2019 113 | 114 | 115 | ![Total Events](https://img.shields.io/badge/total-10-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-8-red?style=flat-square) ![Total Podcasts](https://img.shields.io/badge/podcasts-2-yellow?style=flat-square) 116 | 117 | 118 | 119 | 120 | | Date | Event | Title | Slides | Recording | Location | Language | 121 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 122 | | 2019-12-11 | Node.js Interactive 2019 | [GraphQL Simplified](pages/2019/graphql-simplified.md) | | [Recording](https://www.youtube.com/watch?v=E7KDpZYO_1o) | [🇨🇦](## "Canada") | English | 123 | | 2019-12-11 | Node.js Conference Netherlands 2019 | [Stream Into the Future](pages/2019/stream-into-the-future-interactive.md) | | [Recording](https://www.youtube.com/watch?v=RVcd1c-sTjU) | [🇳🇱](## "Netherlands") | English | 124 | | 2019-12-11 | Node.js Interactive 2019 | [Stream Into the Future](pages/2019/stream-into-the-future-netherlands.md) | | [Recording](https://www.youtube.com/watch?v=dEFdt_6fW-0) | [🇨🇦](## "Canada") | English | 125 | | 2019-11-14 | JS Party | [You're probably using streams](pages/2019/jsparty-streams.md) | | [Recording](https://changelog.com/jsparty/103) | | English | 126 | | 2019-11-14 | Real Talk JavaScript | [Node.js Optimization and Performance - Matteo Collina](pages/2019/realtalkjavascript-nodejs-optimization-and-performance.md) | | [Recording](https://webrush.io/episodes/56c29daf-a173683b) | | English | 127 | | 2019-6-27 | WorkerConf | [Stream Into the Future](pages/2019/stream-into-the-future-workerconf.md) | | [Recording](https://www.youtube.com/watch?v=bD8OrK50SuQ) | [🇳🇱](## "Netherlands") | English | 128 | | 2019-5-12 | FullStack NYC | [Take Your Http Server to Ludicrous Speed](pages/2019/take-your-http-server-to-ludicrous-speed-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed) | [🇺🇸](## "United States") | English | 129 | | 2019-5-6 | Microsoft Build | [Build Scalable APIs with GraphQL](pages/2019/microsoft-build.md) | | | [🇺🇸](## "United States") | English | 130 | | 2019-3-6 | QCon London 2019 | [A New Way to Profile Node.js](pages/2019/a-new-way-to-profile-node-js-qcon.md) | | [Recording](https://www.youtube.com/watch?v=ASv8188AkVk) | [🇬🇧](## "undefined") | English | 131 | | 2019-2-7 | JSConf Hawaii 2019 | [Bubble Up Your Node.js I/O - JSConf Hawaii 2019](pages/2019/bubble-up-your-node-io-jsconf-hawaii.md) | | [Recording](https://www.youtube.com/watch?v=rYqh5LYfw0Y) | [🇺🇸](## "United States") | English | 132 | 133 | 134 | # 2018 135 | 136 | 137 | ![Total Events](https://img.shields.io/badge/total-8-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-7-red?style=flat-square) ![Total Workshops](https://img.shields.io/badge/workshops-1-orange?style=flat-square) 138 | 139 | 140 | 141 | 142 | | Date | Event | Title | Slides | Recording | Location | Language | 143 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 144 | | 2018-11-26 | Nodejsconf.it 2018 | [The State of Node.js Core](pages/2018/the-state-of-nodejs-core.md) | | [Recording](https://www.youtube.com/watch?v=IgLDtvo6kLM) | [🇮🇹](## "Italy") | English | 145 | | 2018-7-11 | FullStack | [The Node.js Performance Workshop](pages/2018/the-nodejs-performance-workshop-fullstack.md) | | | [🇬🇧](## "undefined") | English | 146 | | 2018-6-28 | FullStack | [A New Way to Profile Node.js](pages/2018/a-new-way-to-profile-node-js-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/11781-a-new-way-to-profile-node-js) | [🇬🇧](## "undefined") | English | 147 | | 2018-6-28 | WorkerConf | [A New Way to Profile Node.js](pages/2018/a-new-way-to-profile-node-js-workerconf.md) | | [Recording](https://www.youtube.com/watch?v=DOIpzLJ1oN8) | [🇦🇹](## "Austria") | English | 148 | | 2018-6-28 | NodeConf.eu | [GraphQL Accelerated](pages/2018/graphql-accelerated.md) | | [Recording](https://www.youtube.com/watch?v=-V86BB9wrG8) | [🇮🇪](## "Ireland") | English | 149 | | 2018-4-11 | Codemotion Rome 2018 | [There is no such thing as Luck](pages/2018/there-is-no-such-thing-as-luck.md) | | [Recording](https://www.youtube.com/watch?v=SJjvafV7xlU) | [🇮🇹](## "Italy") | English | 150 | | 2018-4-9 | JSDay | [My Node.js Process is on Fire!](pages/2018/my-nodejs-process-is-on-fire-jsday.md) | | [Recording](https://www.youtube.com/watch?v=mR5AhImHjZU) | [🇮🇹](## "Italy") | English | 151 | | 2018-1-25 | JSConf Asia 2018 | [My Node.js Process is on Fire!](pages/2018/my-nodejs-process-is-on-fire.md) | | [Recording](https://www.youtube.com/watch?v=G9Vkpe55Gu8) | [🇸🇬](## "Singapore") | English | 152 | 153 | 154 | # 2017 155 | 156 | 157 | ![Total Events](https://img.shields.io/badge/total-6-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-6-red?style=flat-square) 158 | 159 | 160 | 161 | 162 | | Date | Event | Title | Slides | Recording | Location | Language | 163 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 164 | | 2017-10-4 | Node.js Interactive 2017 | [Take Your Http Server to Ludicrous Speed](pages/2017/take-your-http-server-to-ludicrous-speed.md) | | [Recording](https://www.youtube.com/watch?v=gltzZjKYK1I) | [🇨🇦](## "Canada") | English | 165 | | 2017-10-4 | Node.js Interactive 2017 | [The Node movement and how to play a part](pages/2017/the-node-movement-and-how-to-play-a-part.md) | | [Recording](https://www.youtube.com/watch?v=OekXkuZ2u7o) | [🇨🇦](## "Canada") | English | 166 | | 2017-7-12 | FullStack | [Take Your Http Server to Ludicrous Speed](pages/2017/take-your-http-server-to-ludicrous-speed-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10342-take-your-http-server-to-ludicrous-speed) | [🇬🇧](## "undefined") | English | 167 | | 2017-7-12 | FullStack | [The Cost of Logging](pages/2017/the-cost-of-logging-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/10479-the-cost-of-logging-intermediate) | [🇬🇧](## "undefined") | English | 168 | | 2017-6-1 | Web Rebels | [Scaling State](pages/2017/scalable-pub-sub.md) | | [Recording](https://2017.webrebels.org/) | [🇳🇴](## "Norway") | English | 169 | | 2017-5-10 | JSDay | [How Open Source Changed My Life!](pages/2017/how-open-source-changed-my-life.md) | | [Recording](https://vimeo.com/236315423) | [🇮🇹](## "Italy") | English | 170 | 171 | 172 | # 2016 173 | 174 | 175 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 176 | 177 | 178 | 179 | 180 | | Date | Event | Title | Slides | Recording | Location | Language | 181 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 182 | | 2016-11-7 | uCon | [Scaling State](pages/2016/scaling-state-ucon.md) | | [Recording](https://skillsmatter.com/skillscasts/8747-scaling-state) | [🇬🇧](## "undefined") | English | 183 | | 2016-10-20 | NodeConf.eu | [The Cost of Logging](pages/2016/the-cost-of-logging-nodeconf.md) | | [Recording](https://www.youtube.com/watch?v=zja-_IYNrFc) | [🇮🇪](## "Ireland") | English | 184 | | 2016-9-15 | Node.js Interactive Europe 2016 | [The Cost of Logging](pages/2016/the-cost-of-logging-node-interactive.md) | | [Recording](https://www.youtube.com/watch?v=Dnx2SPdcDSU) | [🇳🇱](## "Netherlands") | English | 185 | | 2016-7-26 | Node.js Summit 2016 | [The Cost of Logging](pages/2016/the-cost-of-logging-node-summit.md) | | [Recording](https://vimeo.com/180476148) | [🇺🇸](## "United States") | English | 186 | | 2016-3-18 | Codemotion Rome 2016 | [We are not Object-Oriented Anymore](pages/2016/we-are-not-object-oriented-anymore.md) | | [Recording](https://www.youtube.com/watch?v=5uucS0LH-oM) | [🇮🇪](## "Ireland") | English | 187 | 188 | 189 | # 2015 190 | 191 | 192 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 193 | 194 | 195 | 196 | 197 | | Date | Event | Title | Slides | Recording | Location | Language | 198 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 199 | | 2015-12-8 | Node.js Interactive 2015 | [Reaching Ludicrous Speed](pages/2015/reaching-ludicrous-speed.md) | | [Recording](https://www.youtube.com/watch?v=_0W_822Dijg) | [🇺🇸](## "United States") | English | 200 | | 2015-11-9 | uCon | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-ucon-london.md) | | [Recording](https://skillsmatter.com/skillscasts/7014-we-are-not-object-oriented-anymore) | [🇬🇧](## "undefined") | English | 201 | | 2015-11-5 | uCon Stockholm | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-ucon.md) | | | [🇸🇪](## "Sweden") | English | 202 | | 2015-10-26 | FullStack | [We are not Object Oriented anymore](pages/2015/we-are-not-object-oriented-anymore-fullstack.md) | | [Recording](https://skillsmatter.com/skillscasts/6819-we-are-not-object-oriented-anymore-or-why-the-node-callback-style-is-awesome) | [🇬🇧](## "undefined") | English | 203 | | 2015-3-25 | Codemotion Rome | [NO. La sottile arte di trovare il tempo dove non esiste - Codemotion Rome 2015](pages/2015/no-la-sottile-arte-di-trovare-il-tempo-dove-non-esiste.md) | | [Recording](https://www.youtube.com/watch?v=9Pbu5rMiz5g) | [🇮🇹](## "Italy") | Italian | 204 | 205 | 206 | # 2014 207 | 208 | 209 | ![Total Events](https://img.shields.io/badge/total-5-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-5-red?style=flat-square) 210 | 211 | 212 | 213 | 214 | | Date | Event | Title | Slides | Recording | Location | Language | 215 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 216 | | 2014-11-21 | NodeConf Budapest 2014 | [Hardware Hacking on Stage](pages/2014/harware-hacking-on-stage.md) | | [Recording](https://www.youtube.com/watch?v=6qF_x_wGLl0) | [🇭🇺](## "Hungary") | English | 217 | | 2014-10-23 | FullStack | [Live Code the Intenet of Things](pages/2014/live-code-the-internet-of-things.md) | | [Recording](https://skillsmatter.com/skillscasts/5779-live-code-the-internet-of-things) | [🇬🇧](## "undefined") | English | 218 | | 2014-9-7 | NodeConf.eu | [Full Stack Through Microservices](pages/2014/full-stack-through-microservices.md) | | [Recording](https://www.youtube.com/watch?v=l4Oc3E1hvTQ) | [🇮🇪](## "Ireland") | English | 219 | | 2014-6-27 | LXJS | [Live Code a Robot and Control it from the Web](pages/2014/live-code-a-robot.md) | | [Recording](https://www.youtube.com/watch?v=BxJ-27Nnakc) | [🇵🇹](## "Portugal") | English | 220 | | 2014-5-14 | JSDay | [Taking your things to your web app using MQTT and Node.js](pages/2014/mqtt-and-nodejs.md) | | [Recording](https://vimeo.com/128349453) | [🇮🇹](## "Italy") | English | 221 | 222 | 223 | # 2013 224 | 225 | 226 | ![Total Events](https://img.shields.io/badge/total-2-blue?style=flat-square) ![Total Conferences](https://img.shields.io/badge/conferences-2-red?style=flat-square) 227 | 228 | 229 | 230 | 231 | | Date | Event | Title | Slides | Recording | Location | Language | 232 | | ---- | ----- | ----- | ------ | --------- | -------- | -------- | 233 | | 2013-9-9 | NodeConf.eu | [MQTT and Node.js, Messaging in the Internet of Things](pages/2013/mqtt-and-nodejs.md) | | [Recording](https://www.youtube.com/watch?v=WE7GVIFRV7Q) | [🇮🇪](## "Ireland") | English | 234 | | 2013-8-9 | Distill by EngineYard | [Making things that work with us](pages/2013/make-things-that-work-with-us.md) | [Slides](https://www.slideshare.net/matteocollina/making-things-that-work-with-us-distill) | | [🇺🇸](## "United States") | English | 235 | 236 | 237 | 238 | _A few talks have been omitted or have gone into oblivion._ 239 | 240 | Updated on 2022-05-10T09:36:52.301Z -------------------------------------------------------------------------------- /gigsboat-eleventy-starter/styles.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --nightrider-gray: #333; 3 | --white-smoke: #fff; 4 | --blue: #0ff; 5 | --cornflower-blue: #539bf5; 6 | --white: #fff; 7 | } 8 | 9 | @media (prefers-color-scheme: light) { 10 | :root { 11 | --color-bg: var(--white); 12 | --color-text: var(--nightrider-gray); 13 | --color-link: var(--cornflower-blue); 14 | } 15 | } 16 | @media (prefers-color-scheme: dark) { 17 | :root { 18 | --color-bg: var(--nightrider-gray); 19 | --color-text: var(--white-smoke); 20 | --color-link: var(--cornflower-blue); 21 | } 22 | } 23 | 24 | * { 25 | box-sizing: border-box; 26 | } 27 | 28 | html, 29 | body { 30 | padding: 0; 31 | margin: 0; 32 | font-family: -apple-system, system-ui, sans-serif; 33 | color: var(--color-text); 34 | background-color: var(--color-bg); 35 | } 36 | 37 | main { 38 | max-width: calc(900px - (20px * 2)); 39 | margin: 0 auto; 40 | padding-right: 20px; 41 | padding-left: 20px; 42 | } 43 | 44 | p:last-child { 45 | margin-bottom: 0; 46 | } 47 | 48 | a { 49 | color: var(--color-link); 50 | text-decoration: none; 51 | } 52 | 53 | a:hover { 54 | text-decoration: underline; 55 | } 56 | 57 | table { 58 | border-collapse: collapse; 59 | } 60 | 61 | table td, 62 | table th { 63 | border: 1px solid var(--color-text); 64 | padding: 5px; 65 | text-align: left; 66 | } 67 | -------------------------------------------------------------------------------- /gigsboat.json: -------------------------------------------------------------------------------- 1 | { 2 | "input": { 3 | "sourceDirectory": "pages" 4 | }, 5 | "output": { 6 | "markdownFile": "README.md" 7 | }, 8 | "preContent": [ 9 | { 10 | "raw": "

Matteo Collina - Public Speaking

" 11 | }, 12 | { 13 | "raw": "

Node.js TSC member, PhD, Chief Software Architect NearForm, Lead maintainer Fastify

Twitter Follow LinkedIn Add Me

Matteo Collina public speaking profile

" 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 --------------------------------------------------------------------------------