← back to the blog

An Ode to Node.js

Posted on October 25th, 2017 in Musings about code

I started using computers when I was 4 years old. Albeit, it was a MS-DOS machine with just 4 MB hard disk, but clearly, I have always been drawn to computers. My curiosity for computers continued to grow when I was first introduced to coding in the 4th grade. I started coding in logo and by the time I was in 8th grade, I was assembling PCs and coding in visual basics. Needless to say, by the time I was an adult, I was hungry for more; more freedom, more creativity, more ability.

This is where Node.js comes in. I started developing in Node.js four years ago. From my first introduction, I realized Node gave me the freedom to develop web applications in the paradigm of my choice. This ability to define my own structure, allowed me to create applications in a way more suited to the needs of that application. Some may argue that this dynamic nature makes Node volatile and dangerous. However, for me, it gave me a playground to be creative, and develop my vision from a blank canvas. Most coding languages have a defined paradigm, where you have to follow the strict rules to make things. Simply put, that meant you spent more time following the rules. It meant you had to have teams developing this structure of models and controls. You were limited by the verbosity of these frameworks. Node made that obsolete; you can do all these functions single-handedly and at a much faster pace.


Another great feature of Node is that it’s not controlled by an organization. As an open source platform, anyone can contribute to it, find issues in it, and create fixes for it. Nothing is hidden. This may seem counterintuitive to security at first; however, with a million eyes looking at it, anything that could be hacked gets noticed and fixed. Additionally, its barebones core is complemented with a vast ocean of libraries at Node Package Manager (NPM). These libraries save a lot of time and manpower. Using a library is equivalent to hiring a team to do something for you. You don’t have to spend months building and testing it, as it is already being used at so many other firms.


Given this flexibility and the many resources in open source libraries, it was the clear choice and outlet for me to express my need to create and in a meaningful way. Creating web applications for Quality Edgar Solutions became an intuitive process. I could start with this new-age tool and reduce my bootstrap time from months to days; creating first iterations of a stable, secure application became a task of weeks, not years. However, in doing so, I had to keep in mind not to get lost in the unstructured nature of node. It was dangerous to disregard structure completely. I had to define a structure for applications we had and were going to make.


To do this, I decided on the path of microservices which are small applications that do one specific task. In doing so, it made our code modular. I could have a multitude of applications doing different tasks on a macroscopic level, but also doing a lot of similar tasks at microscopic level. This meant that I didn’t have to redesign whole applications, but combine existing blocks with some new ones to create what I needed. Much like Legos, I could create any number of shapes using the same basic blocks.


Apart from its dynamic, nonrestrictive nature, the other big power of Node is its event driven framework. Node doesn’t run code in a sequence, but based on events. In simple terms, a Node program would work like a complex flow chart instead of a step-by-step process, which allows the program to avoid being blocked at any one step. This makes it extremely powerful without compromising speed, and it doesn’t need big chunky machines to do the same task as other frameworks.


Node is an effective tool, and like with any tool, there are drawbacks to this paradigm. For example, you would not use Node to do computations. Its purpose is to make web applications. For any computational tasks, I would use different languages. You wouldn’t use a hammer to accomplish the task of a screwdriver; in creating web applications nothing compares to node.


Being a developer in the Node.js space has been really exciting. It’s been the platform that has allowed me to develop web applications for Quality EDGAR Solutions that has put them ahead of their competition. It’ll be fun to continue to reinvent the SEC filing sector with the power of Node. Next up on my to do list? Keep making the workflow of SEC filings smoother, faster, and more powerful by automating tasks. Be on the lookout for updates.


If you haven’t tried Node yet, what are you waiting for?