 Hi there. Welcome to facilitating and demonstrating your growth as a Node.js developer. At the bottom of the screen there's a URL you can follow, shorturl.at forward slash ux lowercase hmq uppercase in case you need access to the slides in an easy way. Let's get started. So we're going to be talking about a couple of areas. We're going to be talking about demand, about how to fulfill that demand. We're going to be talking about the things that we can do to skill up and the things that we can do to verify that we have indeed skilled up. Just a little bit before that I'll explain who I am. I've been in programming since fairly young age. In the last 10 years I've been doing consulting, technical leadership. I'm the author and a contributor to a number of open source projects including Pino and 0x. I'm involved in Fastify a little bit as well. For the last five years I've been working alongside the Linux Foundation and the OpenJS Foundation, which when we started this was actually the Node Foundation. I'm the technical lead of some of the things I'm going to be talking about and the primary author of them as well and I'm also the author of the trainings. So that's who I am. So demand for talent is high and it just keeps on growing. However, we're at a sort of a place where a lot of people are trying to fulfill that demand but the demand isn't quite matched to the skill level that a lot of people in the industry are currently at. What this talk is about is trying to bridge that gap. So JavaScript's very easy. It's the lingua franca of the internet. It's used in Node.js. It's used for IoT. It's used for a bunch of things and if you're doing small easy things with it, it's fine. But it is difficult to master and use at a sort of upper intermediate level let's say and that extends to Node.js. Not in every company but there is a trend that I've observed during my years of consulting where the entry level developers that have been hired don't get as much mentoring as would be preferred. And part of this is that the more senior you are in an organization, the more limited your time is. The organization is focused on meeting the bottom line and accelerating in the market. So that puts people that are sort of at a lower skill level at a disadvantage because they don't necessarily get the time and space to digest the things that are going on. And in an environment that leans towards delivery, which is good, but with delivery you need quality and quality in terms of writing code comes from sort of thinking a lot in your own space about how to write code and having interactions with people that have done a lot of that thinking. So there's a overall, the industry is not focused on skilling up developers and this has created a sort of a chasm between entry level developers and intermediate to senior level developers. People want to work, organizations want to hire, but they will hire people that are at an upper intermediate level to senior level more than they will, entry level in many cases. This can lead to another issue that I've observed in the industry which is developers overselling themselves and they oversell themselves in order to get to get the job. And then what happens is they struggle to deliver and that turns into essentially a personal hell. That kind of approach can lead to working way too many hours for what a person should work. So try to avoid doing that because you'll get yourself into potentially hot water. So ideally what we need is we need a way to leapfrog this situation. We need a path forward that allows for rapid improvement but that's connected to real world scenarios, to real things that you do in a day job. And then we need to be able to verify that quickly and easily. It would be good if employers could with a quick check know that the person they're hiring is capable of delivering for the role that they're hiring for. So there's loads of ways to skill up. There's loads of ways to grow. Some are harder to verify than others. You need to be able to verify someone who's at an intermediate or upper intermediate level. You need at least someone at that same level preferably higher to verify that. And that's quite a difficult qualitative endeavor. So when it comes to certifying, this is an optimization for the industry. And so what we've done is what myself and others that I'll talk about and the organizations involved have done is created a pathway to skill up and verify that you've skilled up. And this is the path. So over on the left there's a training course that I wrote called Introduction to Node.js. This is a good sort of overview. It can fill any knowledge gaps. But if you're already fairly familiar, you probably don't need to start there. But it's worth checking out if you don't use Node all the time, for instance, or you only use it for front-end stuff. Then is the Node Services Development Training, which is a training that I wrote to cater to the Node Services Developer examination and certification. I suggest doing that one before the Node Application Developer certification because the Services Developer exam is a broad practical kind of focused exam that verifies that you can write services with Node, which is quite a common case in the industry. The Node.js application development training is a training that I wrote to cater to the Node.js application developer certification. And that goes more broad and allows you to have a fair amount of depth in Node that gives you a flexibility for various other use cases other than building services. So the Introduction to Node.js, as I said, it's a good course if you don't use Node every day. It's free. You can optionally pay for a certificate once you've completed it. We go through creating command line interfaces, building mock services, implementing real-time services. And we also talk about understanding and leveraging the Node.js ecosystem. This course uses Fastify, a fair amount, which is an up-and-coming web framework to demonstrate these concepts. But the concepts themselves can be applied to other frameworks. Node.js Services Developer is about training you and certifying you to the upper intermediate level. So between intermediate and senior. So it's not an easy exam. And it is a quite rigorous training regime. But the idea is if you can complete this exam, then you're probably most likely able to work every day with creating services that are secure in a production environment. It's designed to establish practical effectiveness. So what we're trying to show with someone who's gone through the training and the certification for Node Services Developer is that they use Node in a practical way for common use cases. It contains a small amount of involved questions. There's about six questions on there. And they take about between 15 and 30 minutes each to complete. So they are very involved. You're building things. You're putting things together. And then you're submitting that to be marked. It contains two very broad topic domains. Service and services which make up 70% of the marks on the exam and security which make up 30% of the marks on the exam. Security is focused on the kind of common mistakes that you could make in a service that would cause vulnerability. Can't say much more than that. But the training will go into more details, obviously. Here's a testimonial by Vinicius Musak of SMN Technologies. I very much like the real code. API construction requests because it reflects our day jobs in our companies. So the reason I chose this testimonial is because it reflects what I'm trying to say about the Node Services Developer certification and training and so forth. It's really trying to focus on establishing whether you can solve real-world problems using a common approach or a common piece of architecture that is used a lot. Node Application Developer also trains and certifies to the upper intermediate level. And this is designed to establish overall competency. So it goes through 13 topic domains and contains many small questions that are 5 to 10 minutes each. So this is more about how can you do individual single case things with Node. And basically it establishes whether you are flexible in how you use Node. The exam is library and framework agnostic. You can use anything you liked as long as you actually answer or you solve the problem that's put before you. The training itself focuses on Node core knowledge and includes a couple of key useful libraries for solving the same problems that you would find on the exam. The main point of the application developer training and certification is to sort of help you have key transferable skills that can work in many areas when you're working with Node. So this is the breakdown of the domains and the weightings. As you can see it's a fairly even spread of a lot of things. Control flow event system and buffers and streams tend to take the most weight but they're all fairly evenly spread. This is a testimony from Luke Chinworth of Solid Digital. I liked that the questions were directly related to real world tasks. So again in both exams and in both trainings we are trying to connect with real world everyday things that you may do. As I say I've worked in the industry for 10 years. In terms of actually creating the domains and creating the questions I wasn't the only one. There were others involved who also had a lot of industry experience and our main focus was trying to again connect the exam questions to to real world scenarios. So these are some of the people that were involved at the beginning. In 2016 we met in with some of these people in Austin and we worked together to decide what should be on a Node.js exam and then over time I continued to work with everyone and work to push things forward until we were able to get it out. So these people know who they are if you recognize any of them send them some love. They're fantastic people. These are the organizations that have been involved and are involved in the creation and the infrastructure surrounding these exams. We have NearForm a consultancy company that sponsored me essentially to do the technical pieces that for automated validation software and so forth and the authoring of the content and actually some reviewing as well. NodeSource they have a product called Nsolid that help with the operational side of things and reviewing. The OpenJS Foundation is a certifying body. OpenJS is hosting this conference at the minute and they will actually be sending out an email on how you can get a discount on the training 50% discount. PSI are a proctoring body so when you take the exam there's a human person who watches you take the exam and that you can ask questions and if you have any issues or anything then you can talk through. Truability hosts the actual exam platform. The exam is conducted in a VM. I'm going to show you some other talks to refer to and other materials to refer to for going into more details on that and the Linux Foundation is responsible for vending and coordination. So just a few notes on Riga. The training both the training and the examination are consistently monitored by myself and updated based on changes in the industry and new versions of Node. The exam environment is pinned to the latest LTS version the latest long-term support version of Node which is currently Node 14. In October of this year we'll be upgrading it again. This will be the second upgrade and the third release of the exam will be upgrading again to Node 16. The prior release that we did in October updating to I think it was Node 12. Yes it was. The prior release was Node 14 and we updated that so that you can use ECMAScript modules natively. We don't make that the default in the exam because currently in the industry people aren't using native ECMAScript modules. They're using maybe transpiled and different things but that's different. So when the industry starts to use them in anger then we'll update the exam so that that's the default instead of requiring module exports for it. This is an example of how we keep it updated. We also conduct fairly frequent psychometric analysis. We have a psychometrician who goes and analyzes the how many people are passing and failing individual questions and then uses statistics to measure whether those questions are healthy in terms of the difficulty level that we expect it to be and the difficulty level that it appears to be from that analysis. Then we adjust based on that. So we're constantly tweaking to improve it and have been doing for two and a half years now so it's gone into a really great place I think. We also do sample manual marking from time to time because our marking is actually automated to check that things are working as we expect. Here's a testimony from Nathaniel Bergwin of Chief Technologist of Boos Alan Hamilton. As a manager I would feel confident in a candidate who possessed this certification. Obviously the reason I've chosen that testimonial is to support my point or that the whole purpose of the training and certification is to help people go from one skill level to another skill level and have that skill level easily verified using certification badges that can go through a verification process so that when people are hiring they can make informed decisions. I'm going to read it one more time. As a manager I would feel confident in a candidate who possessed this certification. Here's some resources. If you want to dig deeper I've spoken about this a few times and also with the excellent Adrienne Astrada of NodeSource. There's a keynote that we did at an OpenJS event when we used to do them in person. Hopefully we'll be doing that again at some point in the future and a couple of others that there's also a really great blog post by someone who took the training and the exam and they write they write up about their experience so check that out. It's very good. One other point. The retake is free so if you for any reason fail the first time you have a free retake for the services and application developer exams. I've already mentioned this but I think for a limited time there's a discount of 50% for the training material and the certification material and you should have an email in your inbox about that if it's the second of June or after as you watch this. A couple of links from the stuff that we've talked about and thank you very much. If you have any questions I'll be on a Slack channel. I think it will be announced somewhere. Cheers!