Matteo Collina, Ph.D takes us to school on all things Node, Fastify, and Pino. We start with his journey into the Node community, how he got started in open source, and his experience as a member of Node’s Technical Steering Committee (TSC). We then nerd out about middleware architecture, data structures and logs (yes, logs), and of course, we dive into what makes Fastify so darn fast and how Pino was the precursor project.
Featuring
Sponsors
Auth0 – The for developers, by developers identity platform built for the cloud era that secures billions of logins every year. Security, compliance, and industry standards are always up-to-date, plus devs are free to provide the login options their users want with the security their application demands. Make login Auth0’s problem. Not yours. Learn more at Auth0.com
Raygun – With Raygun Error and Performance Monitoring you have all the information you need at your fingertips to quickly find and fix errors and performance issues across your tech stack down to the line of code. Get started with a free 14-day trial, head to raygun.com and join thousands of customer-centric software teams who use Raygun every day.
Square – Develop on the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for today’s business needs. Learn more at developer.squareup.com to dive into the docs, APIs, SDKs and to create your Square Developer account — tell them Changelog sent you.
Notes & Links
- Pino
- Fastify
- JS Party 103 - You’re probably using streams
- Hiring at Nearform
- Maven
- npm
- koa
- Find my way - router
- NestJS and Fastify
- Adventures in Nodeland newsletter
- Deno
- 10 things I regret about Node.js
- Node Todo
- NodeConf Remote - October 18-21, 2021
- Avvio
// Require the framework and instantiate it
const fastify = require('fastify')({ logger: true })
// Declare a route
fastify.get('/', (request, reply) => { reply.send({ hello: 'world' }) })
// Run the server!
fastify.listen(3000, (err) => { if (err) { fastify.log.error(err) process.exit(1) } })
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
Hello, party people! We are so, so, so excited to be with you today. We’re excited to welcome a very special guest, Matteo Collina. Welcome, Matteo.
Hi, Amal! I’m so happy to be here again.
Hello! We’re so excited to have you. And on the panel with us we’ve got Nick Nisi today. Hello, welcome, Nick.
Hoy-hoy. Excited to be here!
Hi, Nick.
Yeah, so we could probably invite Matteo on for the next month continuously and not run out of topics, but we’re gonna try and limit the discussion today to talk about his open source work on Node, and specifically a couple of really popular packages in the Node ecosystem that he’s the lead maintainer of - Fastify and Pino.
Fastify is one of the fastest Node web server frameworks out there, no pun intended… And Pino is an incredible logger; definitely, the fastest and best-in-class logger in the Node.js ecosystem. I’m a proud user of it.
So yeah, Matteo, before we get into the specifics on the libraries, why don’t you introduce yourself? Tell us a little bit about your background, how you got started in open source, and what led you to becoming a member of the Node.js Technical Steering Committee?
Okay. So this could be the show, right? You have asked me that question - I’ll try to limit it. It’s a long story; I’m going to cut it very shortly. I started coding very early; way too early that’s healthy for a kid, so that’s probably maybe not something that we all want to do with our kids… I don’t know if I’m going to put my kid in front of a keyboard, coding at four… That was my dad – I was watching my dad coding when I was four. That was probably a little bit too early.
[04:17] Anyway, that was the starting time. I started wobbling into the open source world and community… I started using Linux when I was a teenager, something like that. Linux came in CDs at the time; that was a long, long time ago. Then - what else? Well, after that I went to a very, very normal thing; I went to uni. I did my Bachelor and Master…
Did you finish?
I finished them all. I enjoyed my time. And then it was not enough, and then I did a Ph.D. Well, I went back one year in the industry here in Italy. I did not like what I saw in the industry. During my time at my Master I was studying how to build custom databases, robot arms, how to do the equations to send a rocket to the atmosphere… That was the type of stuff that I was doing.
After that, I ended up writing the [05:14] WSDL, SOAP… A lot of libraries that start with a J at the beginning…