Interview with Node Congress speaker - Matteo Collina
Key Takeaways
The video features an interview with Matteo Collina, co-founder and CTO of platformic.dev, discussing his work with Node.js, Fastify, and other tools, as well as the future of Node.js and its ecosystem. The conversation covers various topics, including API design, performance optimization, security, and systems design.
Full Transcript
in today's video we're going to talk to Mateo Carlina to see how we got started with node.js and what he will talk about in the upcoming note Congress conference this video interview is sponsored by git nation and the note Congress team at the note Congress conference you can get a ton of insights from JS backings explore Berlin's vibrancy gain practical experience in workshops and engage with amazing speakers from your favorite open source projects and you can also join an amazing after party and have fun you can expect everything of the biggest events about JavaScript backhand and devops node Congress happen in Berlin and online on April 14th and 17th so this is Mateo there's the co-founder and CTO of platformic.dev he's also a prolific open source author in the JavaScript ecosystem and he has like maintains modules are downloaded more than 17 billion times this year thanks for joining Matteo why don't you give us everyone an introduction um hi folks uh I am Mateo at matakolina on Twitter or I'm Colina on GitHub and I don't know you can find me a lot of different places with different handles for whatever reason that was the case it's called Legacy anyway um what do I do I typically maintain a chunk of the node.js ecosystem I have uh I'm also part of the nodes technical steering committee so some of the stuff that you use every day is my they are totally my fault so I'm sorry and there is also quite a bit of software that I've wrote that's running on your computer right now so I don't know that's that's more or less the as much as I can um as I can say I have uh I've started this new company platformatic last year we have just uh released our our Cloud so check us out we make API development super fast so check it out thank you Matthew I think everyone will know you from the great open source projects you maintain fastify node.js so many of them yeah so can you share with us like how did you start your career in software development so okay these is uh it's a complex answer more or less um the question is um would you want to know what was my first job or would you want to know when I started developing software yeah I think it's I've took a big difference for this yeah I think we can do both I think maybe you start with a software development how did it start is interesting I started um so when I was a kid okay um the my dad we had at home a commodore 64. and my dad in order to have video games for the Commodore 64 you know if he bought magazines and he had to type the the the games the code of the game because you know there was no way to distribute source code at the time or something like that so you had to print it and Rick and type it again so um my dad was literally coding these games and then we were playing these games on the Commodore 64 when I was more or less four or five years old something like that and that's essentially what um my first exposure to to source code literally watching my dad type and typically did a lot of that with me on his lap and with me making you know noise and not making new photos so uh after that I did some coding on the Amiga a few years later still a pre-teen type of stuff um you know I would call it the um predecessor of scratch if you're familiar with those kind of Suite of tools but I coded a an asteroid clone and some other stuff like it fun uh fast forward I have done uh I've passed my teens um you know I rebelled I rebelled a little bit so I don't know you you can guess what I did with the software in those years and then after that I did uh uh I went to university did my bachelor my master then Walter Neil in the industry went back to school to do a PhD then no it happened so um in the meanwhile my first year of going in the industry I was developing banking software in Java and I did not like that very much to be honest but it was one of the most formative most for my one of my most formative year if I want to say that because I learned um quite a lot on what's broken to some extent in the back-end development industry and I still remember how low I was and what problems I was facing all the time and to be honest I I um every time I develop an open source Library these days it's because I like my target user is that person that I was on my first job like I want my job when I started in the in the industry better and less miserable so essentially this is what you know what one of the things that motivates me to begin with yeah I think I think um this is this is what makes a great open source software is like when you give it to the like the media specifically for the end user in mind I think this creates an amazing open source software for the community and I think like the open source software you maintain Equity node fast defined Pinot are all really great software I use them myself I use them for so long yeah I mean who doesn't so yeah yeah that's that wasn't really interesting intro uh thank you Matteo for the great introduction I think uh that was really interesting to know about all the background of people like making great open source software I think great open source software maintainers actually made a whole lot of huge projects and and really nice projects so can you tell us about the projects or applications that you've actually developed and worked on that you were particularly proud of of course of course let me um so I have a few actually okay the um one of the things that I'm most proud of okay it's it's a typically the ones that I'm going to talk about are not the famous ones okay so I created fastify I created Pinot I created undichi which is a new HTTP library for node we are all talking this has been very popular in the JavaScript and Logistics ecosystem and a lot of people use those tools okay so I'm not talking about those okay those are of course it will be oh I'm so proud of having written undichi or were so proud of having written fastify your node or or fastify or a Pinot or a feature specific of node that I develop um I'm going to talk about the niche things okay and the the the the ones that underpins this all but to some extent few very few people use directly everybody use them maybe but they are burned down in a lot of layers of dependencies okay so um so the first one that I'm going to talk about it's a module called fastq um which it might sound nothing okay it's a little uh a q processor that runs on on the same that runs on the same process so basically you tell a job to do and it will run it on the same [Music] JavaScript process that you are executing on and you can limit the number of of concur the concurrency so you can say I only want to do five in parallel or six in parallel just one okay and that's it that's what it does okay that's all of what it does okay super tiny um these these super tiny module as um as of March to 2023 a hundred and thirty million downloads per month well okay that's great it's a tiny module though that has um I don't know I think a few uh it has only 656 Stars like it's worried in in in impossible dependency change okay yeah so just to clarify the the the gist it's super fast it's very lightweight it does get the job done it has both uh callback and Promises API it's great just you know if you need it solves that job very well okay and um you know you you can check it out okay um the other module that I am um uh pretty proud of which is another completely uh and you know very uh you know niche module it's a it's another it's an old module called clonable readable so it's a module that allows you to to clone a stream so how do you clone a stream how do you create an object the representation of a stream it is a clone of that original stream and what does that mean um this module has more or less I think I don't know 10 million downloads per month or something like that um but another one that's completely like all of these are to some extent for different reasons feet of engineering on their own but I have no um real they're very hidden okay in from uh from the point of view uh another one that I want to signal is the module called sonic boom and you know it's it's it says in the name it's very fast yeah okay it's it it reached the the barrier of sound okay that's why it's called sonic boom um it's uh the um basically in order to make is what makes Pino fast so at some point when we were developing Pinot we found out that node.js was too slow so we moved away from node.js streams and we used Sonic Boom for writing stuff out these enable us also to do certain things the streams are not supported at all so you could do for example reopening files rotating files you know a lot of other things thanks to Sonic Boom and we support both the synchronous and asynchronous mode it's it's great um very hidden okay uh very nice there are uh um quite a few people from uh Netflix is sending me bug reports and insane PRS about the Vlog usage so it's it's you know you think about that and I I think about it every time I turn on the TV on at home so it's it's a pretty little little uh little thing that it's uh and thank you Mary for fixing all the bugs because they fixed all the bugs okay it's a very massive scale so it's uh it's great uh so um this is another one okay um I am going to mention uh uh Avio which is the and I'm giving you all the links afterwards so you you you can you can find them okay um but Avio is the plugin system for fastify which is its own module a lot of people don't know that so um the plugin system for fastify is actually its own module so you can actually build your own um framework using just a vo which is called which starts it's like start uh it's it's the meaning of starting Italian and this little thing is is uh downloaded more or less as much as festifies downloaded so more or less about four million downloads per month and I'm very proud of it it's literally um I would call it all the skeleton in the closet or fastify Arena video like all of them like there is some logic in there that I'm just like what were I thinking when I wrote this and it underpins the festive ecosystem beautifully but it's quite a serious feat of uh software development engineering so I'm very I'm very proud very proud of it um last but not least I have a module called async Cash the dupe and it's um kind of a little uh Swiss army knife of caching that if you start using it can automatically increase the throughput of your application maybe 10x or something or an order of magnitude at least if not sure um it's very very nice okay you just throw in add change a few lines and it will automatically get a few under uh from 10 to 10x more throughput out of it out of your system ready Esther is forwarded that which nobody you know this is very little known and it's it's great but it's it's just very tiny module very specializing Nishi so um yeah so I think I covered them I think I cover all the things that uh I gave you the ones that are uh um less common to say you know every so that you know for for our listeners that they can take a look at uh at some of them and you know get inspired that you know it's not just a more shiny thing that what you you are most impressed of it's maybe even the little thing that is that's there I think yeah I think you covered really great uh awesome open source projects that a lot of people are not aware of uh including me I'm well done I'm super interested I think I read about Avio before for the fast defy and everything uh it's great I'm I'm definitely going to check the others they look really amazing the whole thing ah there is actually one more which is another Super interesting feat of engineering again I am I'm very um you know these are modules that are completely you know very as I said very nichy um this is uh it's a module called on exit leak free so if you so this module is super nice so that is um you know that when you have node.js you need to do a non-exit you can specify a non-exit uh event emitter right but you cannot add too many of those because after a bit you will create a memory leak so not every module can attach themselves there but with on exit leak free you will not have that problem and even if your callback object goes out of scope whatever it will be safely collected so there is a lot of work in there with weak reference and finish Nation registry to make it perfect and I love this module and I think this module I think at some point I will just take the courage and and put it in core because it's just so useful and that should not really be on npm so yeah that that last one looks really amazing I would love to check the the actual source code it looks like a masterpiece yay yeah speaking about the different open source great awesome node.js projects that actually you maintain and you work with and all the good tools that you actually built to go around the whole node.jsx system so can we just like get like what is your perspective to see in Block where you're seeing in the next future or the near future so um let me let me get into it this is a good uh it's somewhat a good question so it's so the feature the future of of node.js is is very bright from from my point of view there is uh we have quite uh there's been a massive uh renaissance renaissance that's that's the way it is pronounced a massive Renaissance in in node in the last in the last year or probably two uh we have I would say moved away or passed over the concept of a small core so the kind of the idea that we have very small the node should the node itself should be as small as possible but it should actually be um it should include more stuff okay and you can see these every day so we started shipping fetch for example before you started shipping a test Runner come on we are shipping a freaking test Runner which is uh amazing from my point of view like I didn't think I would I would got to see that okay and um we are started shipping a new awesome apis okay that Developers need and they are asking us to add and yeah essentially it's uh it's great so I from my point of view um there is like the project is very is very solid okay there's a there's a very good collaborator base it's very active people are engaging and it's moving way faster right now that it used to be moving in the last few years you know for for a few years like there was a few years where the project stagnated a little bit Yeah and right now his status in case it's super fast it's moving super fast like he's even moving too fast for for to some for somebody so I am I'm good I'm very happy about it uh on the uh on the other end there is all these other new runtimes that are coming out well um they have all the other all these other runtimes that that are coming out are implementing node.js apis so oh and supporting npm so what the point and I'm just being very you know it's they're great they're great piece of software I like the fact like if it wasn't for this new runtime challenging the stethoscope no the node.js will never have awoken from his Lumber essentially but right now it's like in the question whenever for all those runtimes is how long would it take for node to incorporate the best features from those neuron times versus them to become null yeah like it's they're able to put your bat okay um very much these are very much question for for the audience as much as me so it's uh it's great but I'm I'm I really love I wish the advice essentially but like right now it's um there was a few announcements of your back of one of those projects as it will destroy node it will kill node it will burn now or it will burn the node underscore modules folder I don't know if you remember those meme it was uh pretty uh it was a pretty aggressive take okay and I didn't like the take as much as I could and [Music] um they shift packages and uh it's great by the way it's not like again there's nothing wrong in the project I I it's the best thing to do to ship bike adjacent to keep the community together and uh and that's great so I am I'm very happy for to to have that there is a little bit of competition anyway and that's great um on the other hand our the download download numbers or routine numbers and so on didn't even Flinch since these new projects came around so yeah I think on one hand the market is big for us is big enough for everybody and on the other end the market is um on the other hand node.js is doing great so I'm not not concerned nice um I think I agree with you I think node.js is uh the top of the list and uh online just like at one time that comes like in a day or two uh it's gonna take down node that has been there for years I mean a big lover of nowhere they use it pretty much for all my projects production open source uh through my YouTube channel yeah notice definitely not going anywhere and as a huge base community and huge lovers including me uh so yeah so thank you for the really like explanation encouragements of how nerd can actually stay in the top of the list and what is the promising future of node So speaking of the great node.js ecosystem and the like community base and everything I think you were like one of the Great lead maintainers of the fastified.js projects so could you please show us like share with us why you would advise or why would you see developers people use festifier versus other stuff and what like what do you see in festive wine particularly okay so first of all use whatever works for you okay use whatever makes you more productive okay I'm going to try to convince to tell you why fast if I makes you more productive but you know that's totally up to you and whatever you use is fine so the um what we do okay so the reason why you should be using fastify is uh are a few okay so the first one is you want to if you're building an API or a web system and so on you want to have a framework that performs validations for you and you want to have a framework that protects you against prototype pollution attacks the other framers don't do that okay minus happy app is a great framework so you can use that and um but Espress does not do that next does not do that next is not built for building apis as much as they try to tell you is not built for building apis so um if you are building apis you probably want something like fastify to begin with because it provides you a validation at the start at the when the request comes in inside the system so it's uh that's really what it is okay the other and also provides some good protections against uh product pollution attacks for example and things like that it has embedded logging built in a lot of best practices already prepared there's a lot of plugins that you can use that protect you for more possible basics for all possible basic use cases that you can think of so for gives you automatic protection against the event Loop trashing problem or provides a very good a very good solution to protect you against cross-site request forgery attacks which there is no more the the most popular module on npm for Express was deprecated this is this September for example so again I am mentioning this stuff because it's probably the safe options right now um so um yeah essentially on top of that there is this thing all this thing called the plugin system which is great which is what I would talk about at not Congress so it's uh the it's how you can build your festive application structuring it in plugins so that you can then uh you're building them in plugins so that by while you are doing all this work you can just you know create your your application so that whenever you know when you want more people working on it they don't step on each other toes okay and it's you start building and you start segment your application feature by feature instead of you know throwing all the routes in the same box all the models in the same folder and having this file of 10 000 lines this is my ralphs.js file in Express oh it's ten thousand likes of code okay and or oh I have a models folder how many models do you have oh I have two thousand models okay now we have a problem here okay and uh fastly fibralize you some lit some some guidance on how to structure your application for a scale and for dealing with the complexity of writing modern software and writing a lot of it so yeah that's more or less why you should be using uh um you should be using classify so as we all are very eager to be in the nerd Congress and the great speakers and everything that happening so can you give us like a sneak peek into what's coming and what you will be discussing in your node Congress talk and what attendees can actually expect in the talk so um of course of course I can so in in my not Congress talk uh I'm going to go through uh how I structure node.js applications for Success so either you're working alone or you're working as a team it doesn't matter but there are certain things that you need to do to structure your applications your application for success and I am in this session I'm just explaining that and how I structure code especially at the beginning of a project so that I I would not have a lot of technical debt to cover and fix things once my team scales or my company skills or my project explodes in success or anything and to be honest it's not that what I'm recommending is cost you more in terms of time most of the time it's just a different way of laying down laying down your code and structuring your features but over time it compounds and the net result will be that this wave structuring code will be will enable a lot of other more a lot more refactorings and a lot more flexibility than what I would say the traditional way of building stuff with with node.js and this is essentially the key part of the talk um what are we going to use well of course we're using the framework that I created fastify to to demonstrate all this all of this logic so it's actually built for supporting this kind of use case so you can actually build what they call them a module monoliths with with fastify very easily so that then you could to be honest migrate them to microservices when you need to or split them up or chain things and you're not in in an unconstrained way essentially your application will not hold you back in making the changes that are actually needed for your software all right awesome that sounds like a really interesting talk that a lot of us would definitely uh must be there actually be either in person or live the talk will be held there so make sure everyone to come and join us at node Congress with uh matio and a whole a lot of like other great speakers open tours and everyone um so I think we came to the end to the far interview uh thank you everyone for joining thank you Matteo for joining us today thank you for sharing all the great info and the details I'm yeah I think the community would be glad for that interview they will have so much info now about nogins ecosystem festify so much more and JavaScript and back-ends in general again thank you everyone thank you for joining us thank you Matthew uh catch you everyone hopefully in another one thank you bye bye thanks for having me bye bye
Original Description
Get a ton of insights on JS backends, explore Berlin's vibrancy, gain practical experience in workshops, engage with speakers, and join the after-party! You can expect everything at the biggest event about JavaScript backend and DevOps - Node Congress, happening in Berlin & online on April 14th and 17th.
Special discount for you - 10% off on a Full Hybrid Ticket using this link: https://ti.to/gitnation/node-congress-berlin-2023/discount/CoderOne10
Agenda:
Ryan Dahl, Node.js and Deno creator, - Deno 2.0
Matteo Collina, Co-Founder and CTO of Platformatic.dev, - Building a Modular Monolith with Fastify
James M Snell, a contributor to Node.js core, - The Road to Async Context
Lizz Parody, a community-taught Software Engineer, - How to use ChatGPT with Node.js
Luca Mezzalira, Principal Serverless Specialist Solutions Architect at AWS Cloud, - AWS Lambda Under the Hood
& 30+ more talks about JavaScript backends and runtimes.
To learn more about the conference, hit the link https://nodecongress.com. Follow Node Congress on Twitter to stay up to date with all the information: https://twitter.com/NodeCongress. (отредактировано)
⭐️ Timestamps ⭐️
00:00 Intro
00:56 Speaker Intro
02:32 How did you start your career in software development?
06:39 Could you share with us a project or application that you've worked on that you're particularly proud of?
16:51 How do you see the future of Node.js evolving in the next few years?
22:33 Could you share with us why people should use Fastify?
26:33 Finally, could you give us a sneak peek into what you'll be discussing in your NodeCongress talk?
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from CoderOne · CoderOne · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Laravel CMS | N-01 | Getting Started and Environment Set Up
CoderOne
Laravel CMS | N-02 | Routes, Controllers and Views
CoderOne
Laravel CMS | N-03 | Dealing With Assets and Page Layouts
CoderOne
Laravel CMS | N-04 | Migration, Models and Adding Categories
CoderOne
Laravel CMS | N-05 | Showing Added Categories, and Session Messages
CoderOne
Laravel CMS | N-06 | Edit\Remove Categories using AJAX and Popups
CoderOne
Laravel CMS | N-07 | Add New Post
CoderOne
Laravel CMS | N-08 | Creating a Basic Laravel Blog
CoderOne
HTML5 Canvas For Beginners | Getting Started | #01 with Webpack
CoderOne
HTML5 Canvas For Beginners | Drawing Basic Shapes | 02
CoderOne
HTML5 Canvas | Drawing Text With Circles | Part 01
CoderOne
HTML5 Canvas | Text Animation and Circle Collision | Part 02
CoderOne
Complete Guide To Web Development In 2018
CoderOne
AJAX & JSON Explained | Examples
CoderOne
Visual Studio Code Web Development Setup and Extensions
CoderOne
Electron Build Desktop Apps HTML/CSS/JS - Getting Started 01
CoderOne
Electron Build Desktop Apps HTML/CSS/JS | Creating Windows and Processes 02
CoderOne
Electron Build Desktop Apps HTML\CSS\JS | Dialog, Sessions and Cookies 03
CoderOne
Electron Build Desktop Apps HTML\CSS\JS | Custom App Menu & Context Menu 04
CoderOne
Electron Build Desktop Apps HTML\CSS\JS | Package, Build and Deploy your App 05
CoderOne
Node.js Brief Beginners Introduction #01
CoderOne
Node.js How Modules Works & NPM #02
CoderOne
Node.js Working With Events and Event Emitter #03
CoderOne
Node.js File System (Read and Write) FS 04
CoderOne
Node.js Create a Basic Server Using Express 05
CoderOne
Json Web Token Authentication JWT Explained Securing API
CoderOne
CSS Flex Box Design | Practical Examples |
CoderOne
API How It Works With Practical Examples
CoderOne
MongoDB Getting Started 01
CoderOne
MongoDB Working with APIs and Practical Examples
CoderOne
Create a Command Line Interface (CLI) Using Node JS #01
CoderOne
Create a Command Line Interface (CLI) Using Node JS 02
CoderOne
Build React Apps | Introduction And Getting Started #01
CoderOne
Build React Apps | Working With Components And Multiple Rendering #02
CoderOne
Build React Apps | App State Management | Practical Examples #03
CoderOne
Build React Apps | Getting Started With Flux (Intro) #04
CoderOne
Build React Apps | Create a Clock Timer Using React 05
CoderOne
Build React Apps | Create a Clock Timer Using React 05 | PART2|
CoderOne
CSS Preprocessors Getting Started | SASS and LESS | Practical Examples
CoderOne
Regex Introduction | Learn Regular Expressions 01
CoderOne
PHP VS Node.js Which is Best For Web Development
CoderOne
Drag and Drop Using Native Javascript 01
CoderOne
Drag And Drop Using Native Javascript 02
CoderOne
Master Git (Version Control) in One Video From Scratch
CoderOne
Let's Learn The New Javascript ES6 Class Syntax
CoderOne
Let's Create A BlockChain On Node.js
CoderOne
Best Online Code Editors For Web Developers
CoderOne
Let's Create a Modern Login Form on React #01
CoderOne
Let's Create a Modern Login Form on React #02
CoderOne
Laravel CMS | N-09 | Admin Registration
CoderOne
Laravel CMS | N-10 | Login and Authentication
CoderOne
Let's Create a Twitter Bot (Listen and Retweet)
CoderOne
Rapid Webpage Creation With Emmet (HTML & CSS)
CoderOne
Create Popups and Modals Using Native Javascript, HTML and CSS
CoderOne
Promises and Callbacks on Javascript With Practical Examples
CoderOne
Create Collapses using Native Javascript, HTML and CSS
CoderOne
Let's Learn Typescript (Javascript Devs) | Getting Started 01
CoderOne
Let's Learn Typescript | Interfaces and Generic Types (The Typing System) 02
CoderOne
Let's Learn Typescript | Work With Classes, Modules and Enums 03
CoderOne
Let's Learn Typescript | React and Webpack With TS 04
CoderOne
More on: Systems Design Basics
View skill →Related Reads
📰
📰
📰
📰
Why Auth0 E2E Tests Fail After Login: The localStorage Race Condition
Dev.to · Anand Rathnas
Basic Git Command and What is Git
Medium · Programming
When to Use an ORM vs SQL and Query Builders
Dev.to · Doogal Simpson
Alarmas que despiertan por causa real, no por un número random
Dev.to · Franchesco Romero
Chapters (7)
Intro
0:56
Speaker Intro
2:32
How did you start your career in software development?
6:39
Could you share with us a project or application that you've worked on that you'
16:51
How do you see the future of Node.js evolving in the next few years?
22:33
Could you share with us why people should use Fastify?
26:33
Finally, could you give us a sneak peek into what you'll be discussing in your N
🎓
Tutor Explanation
DeepCamp AI