In collaboration with the OpenJS Foundation and Nodesource it’s my pleasure to announce the launch of two certifications: the OpenJS Node Services Developer (JSNSD) and the OpenJS Node Application Developer (JSNAD).
As technical lead and primary author on both certifications I’m going to discuss the driving principles used to create the certifications, along with the purpose and general theme of each examination.
If you are a Node.js developer looking to gain recognition for your skills, or a hiring manager interested in acquiring specialized skills, this short read will give you insight into what to expect from the certification.
The pricing structure for the two certifications is notably different to many other Enterprise certifications. There’s a very intentional reason for this: levelling the playing field. While price can indicate many things, we wanted to make it as easy as we can for independent, startup and enterprise developers around the world to access the certifications. Having said that, there’s definitely more that the Foundation can do to make access more open to different socioeconomic and geographical backgrounds. At time of writing, this should be addressed in the next few weeks to allow for greater inclusion across the community and industry.
While price diverges from traditional Enterprise certifications, JSNAD and JSNSD are both focused on validating practical Enterprise-level Node.js development at the upper-intermediate skill level.
Node is a very versatile tool, and as such has a broad spectrum of use cases, even when focusing primarily on commercial applications. Originally the content formed the basis of one certification, but we ended up with an estimated five hours of subject matter. In order to cover the breadth of usage we pruned and then split the content into two certifications, each with a two hour exam.
The certifications are about validating problem solving ability and practical outcomes. This is why candidates are allowed to use documentation or any online resources, with the exception of Stack Overflow and related sites that encourage cargo culting.
Due to Node’s small-core philosophy there are myriad combinations of tooling, libraries and frameworks that can be used for any given problem. To cater to this, every question can be answered with either Node core API’s or any library or framework as desired.
While code challenge platforms are about learning as you go, these exams are about verifying practical problem-solving abilities in common scenarios. Having spent ten years as a software consultant, I’ve often found that unit tests are frequently unavailable or untrustworthy. For this reason, no unit tests are provided for you to test your answers against, although you can unit test your own code as you go.
Given that exam conditions are highly flexible it’s important that we maintain the quality and integrity of the exam. With principles of global access and scalability at the forefront, we opted for a remote examination solution. This is why each exam is proctored by an informed human agent and conducted in an isolated remote environment. The downside to this is that you may not have the operating system or tools that you’re used to. The environment is a bare-bones Linux VM with a GUI, file manager, a terminal, a browser and Visual Studio Code (and Vim). If you are used to IDE’s like Webstorm, then part of preparation may be familiarization with the tools available during the exam.
Nevertheless we recognize that there are trade-offs and challenges to conducting an examination in a remote VM. As such, if you’re unhappy with your initial result for any reason the retake is free.
Exam integrity is also preserved through variance. There a multiple forms of each question, selected at random by the examination platform. So even in a retake scenario, you may have different yet equivalent questions. If it becomes necessary over time to further protect the integrity of the exam we can always add/replace variants.
With regard to quality, the original certification topics were created by a cross-section of industry volunteers under the advisement of a psychometrician. The content and software for the exam was either written or co-written by myself and has been peer reviewed by industry leaders such as Mathias Buus, Adrian Estrada, Luca Maraschi and Charlie Robbins. The examinations have also been through Alpha and Beta testing rounds, with the psychometrician being consulted throughout the process, in particular helping us to analyze Beta feedback for final content improvements.
It should be noted that this initiative would not have been successful without the formative leadership of Tracy Hinds, who was instrumental in creating the certifications’ culture by laying down these principles and processes from the start.
OpenJS Node Services Developer
The JSNSD Certification verifies practical skills for one of the most common Node.js use cases: creating services. The focus of the JSNSD certification is on validating core competencies with RESTful servers/services and security as it relates to Node servers. This exam does not contain a large amount of questions. However the questions in this exam tend to be quite involved, providing a detailed list of requirements to be implemented against.
If you work with Node every day and you frequently use frameworks like Express, Koa, Restify, Hapi or Fastify then this certification will allow you to officially validate your skills.
OpenJS Node Application Developer
For instance, a file system question will be marked on whether your answer causes relevant file system mutations to occur, not on whether you directly used the fs module. If you want to demonstrate comprehensive aptitude with Node.js then this certification applies the necessary rigour to officially ratify your competency in creating all common forms of Node.js applications.
I intend to continue working with the OpenJS Foundation to provide on-going support and maintenance. We will be keeping the certifications synchronized with modern development practices and Node.js as a platform. Our immediate next steps will be to establish a release schedule that appropriately maps to Node.js release cycles while constantly improving the content based on candidate feedback and advancements in the JS and Node.js ecosystems.
In the meantime if mentoring/training is of interest or you have further questions for me you can follow/contact me via Twitter @davidmarkclem or email, firstname.lastname@example.org. The OpenJS Foundation has also created an actively monitored email address for specific questions about the exam or support issues, you can email them at email@example.com.