Interview with Node.js Full Stack Developer
What is Node.js used for? What opportunities of Node.js attracted you to learn it?
Node.js is widely used for server-side development. It uses JS as a language for writing scripts extending its features with complete server-side and system functionality. It is a very popular technology that used by IBM, Netflix, PayPal, Yahoo, LinkedIn and other big companies for scalable and high loaded server apps. My decision for learning Node.js was based in my interest to learn something new, and use JS in both client and server-sides.
What features of Node.js can you pick out?
If we talk about Node.js benefits I can identify next:
- You could use JS to write server-side apps, not just client-side.
- It completely async like as JS is.
- SocketIO server for fast and easy deployment socket connection for any client(chats, real-time servers easy to maintain and develop).
- ExpressJS one of the most popular and used backend frameworks for server-side development.
- Good as a solution for NoSQL database – MongoDB, which uses JSON-like format for storing and transferring data.
Can you compare Node.js with another popular BackEnd technologies?
Can you tell us more about the projects with Node.js you worked with?
I took part in several big projects based on Node.js. The first big project was a control tool for a company that works with different properties and provide their booking. It was a management tool which could work with properties, with booking, different payment types and has a lot of different reports for company managers and owners. The second big project was for an insurance company, we created a complex form generator for different types of possible policy options. The third project is a resource and management website for crafters and their portfolio, with a possibility to purchase some stuff or service.
Which standard Node.js development tools can you advise for the full stack developers?
There is no reason to discuss which IDE or text-editor to choose – this is your choice just select what is most convenient for you. There are a huge amount of tools and libraries for Node js development, so I’ll try to name the most popular and widely used. For back-end applications, you could use Express.JS or Hapi.JS, these frameworks are powerful and have a great community around them. Also If you are interested in the development of desktop apps you could choose Electron, I’ve tried it once and found it good and flexible, especially for fast prototyping. So if we a talking about servers, there is a good practice to use utils package from Node.js, or any other or use debugger or winston packages for application logging. Good code usually covered by tests, so here Mocha and Chai could help you. Nodemon could save your time while developing your application, and pm2 package will give you flexible tools to keep your app online in production mode.
As a remote developer which Node.js libs and tools have you used?
As a full-stack developer, I used a different kind of libraries and tools. For server-side apps mostly used ExpressJS and couple of times HapiJS. Express gives enough functionality and flexibility to build robust applications, Hapi instead has more functionality and tools inside the box to start development and don’t think about some additional packages and things like ORM. Most used database for projects was MongoDB, very cool database especially for Node.js projects because it uses JSON-like syntax for data storing and manipulation. There was one project that uses MeteorJS – full stack framework to build websites and also pack them into a mobile application. Once I had a task to create some small desktop application, so my choice was Electron – a framework for building desktop applications using Node.js. Also used some payment systems API like Stripe, to add payment functionality into some applications.
In your opinion, how the remote collaboration affect productivity and result?
Model of remote collaboration is not new for me, almost all the time during my career I work in remote teams and with remote teams. In my opinion, this model quite good and I as a developer could communicate with people all over the world, because in practice everything is around clear and good business processes, also for business owner this is a good model – they don’t need to hire big teams locally and deal with this management chaos.
Can you predict the Node.js development? What is the future of Node.js?
Nowadays Node.js is a well-developed platform with a huge community around it. It made a long way from a product developed by one person to a rich tool that helps to create robust apps that could handle a lot of requests. But there is still some argues around its package manager – npm. There are a lot of discussions around the question that you node_modules folder sometimes includes hundreds of packages and there is still some problems with package security, there is no good mechanism to check if a package includes malicious code, so I guess community and foundation will work at a solution for this problem.
The developing does not stand still. Node.js is a promising technology and Node.js developer responsibilities will be growing over the time. We know that sometimes to find a professional and reliable developer on the global market is a huge challenge. Now it’s not a problem as our Ukrainian developers are ready for your project.