Node.js at GoDaddy

The GoDaddy stack has always been very eclectic because their focus is very divided, they have different types of features for their clients, unlike other companies who focus just on one thing. As such, they had to use different types of technologies to satisfy each feature that they had. One of these technologies was and is Node.js, a technology that ended up taking over a lot in GoDaddy. As Charlie Robbins, Director of Engineering at GoDaddy puts it: they went from proof of concept to production and proliferation. Node.js is a big deal at GoDaddy right now.

GoDaddy was using Node.js even before Nodejitsu stept in the picture (more on that later on) using it in one of their first major products. It became a part of GoDaddy as early as 2013.

Now it’s an essential part of their infrastructure, improving their performance significantly, over 4x and reducing costs more than 10x. GoDaddy is a hosting business with many intricates when it comes to software and Node is a huge part of that. In February 2015 Nodejitsu, Charlie Robbins company joined GoDaddy, a huge step in a node.js takeover.

“GoDaddy is doubling-down on its commitment to Node.js as we continue to use Node and Javascript as important elements of our products and platforms. We’re ecstatic to have the incredibly talented team at Nodejitsu join GoDaddy. They will prove invaluable in our efforts to push Node.js forward and contribute back to the community.”

Raj Mukherjee, senior vice president of Product at GoDaddy

The dedication that GoDaddy has in node.js is also sustained through their involvement in the Node.js Foundation. GoDaddy is a gold member of the foundation, involved in the continuous development and adoption of Node.

In 2013 GoDaddy started a complete overhaul of its technological stack, an overhaul that started with Node.js. On the front end side they used JavaScript but on the back end they relied on a legacy .NET stack. With the addition of Nodejitsu and Charlie Robbins to GoDaddy, the company went into Node overdrive, as the team at Nodejitsu has been involvement in node since 2009, being active supporters of it and the community.

“JavaScript is key to any organization’s success, and Node.js expanded that importance beyond the browser onto the server,”

Charlie Robbins, Nodejitsu founder and CEO

To simplify and increase its capabilities Godaddy went from .NET to a node.js infrastructure, all open source. Nodejitsu helped design the he scalability, multi-data center support and asynchronous transport logging of GoDaddy’s PaaS and improve its open source contributions. The addition of Nodejitsu is what really propelled them as a Node,js user and community contributor.  They replaced their entire infrastructure with one made in Node.js. Making GoDaddy the largest domain-hosting company that uses Node on this level.



Looking to hire a node.js developer? Not so fast!

Recruiting is never easy, mainly because a multi-step process, exhaustive as it may be, cannot truly unravel a candidate’s true colors and whether they are a good fit for the job or not. It’s even more challenging and troublesome when trying to choose between candidates with similar profiles and loads of experience below their belt.

So how can you ever be sure that you have made the right decision when hiring someone to embark on your company’s journey towards success?  Here are some pointers that might guide the process when looking to hire a node.js developer!

As you may have already guessed, experience is one of the main criteria your hiring decision should be based on. An experienced node.js developer not only has the skills and knowledge you’re seeking, but also excels in appealing to all sorts of tools, tips and tricks that help create a sophisticated-looking and functioning system in a heartbeat.

Often, in an interviewing situation, a cold listing of experiences in the resume doesn’t even begin to do justice to the great potential of the candidate standing in front of you. Not to mention the nerves that might get in the way that could cause selling himself short. On the other hand, a stuffed and apparently endless CV does not necessarily reveal a valuable future employee.

When it comes to finding experienced node.js developers, we consider the further set of questions to be very helpful in unraveling some valuable acquired skills throughout their working career:

  • Is your candidate undergoing his own open source Node projects? Are they well maintained?
  • Does he contribute to other Node projects?
  • Does he have a good understanding of Node internals, database options and applications beyond the normal HTTP’s?
  • Is he also a DevOp, a developer involved in operations such as bug-fixing, patching or scaling their application across a variety of database servers?
  • Is he an active member of the Node Community, helping other developers, sharing knowledge and resources and contributing to its growth?

While these might be experience-related issues you need to address when looking for a new entry in your development team, compatibility is nonetheless the deal-maker or breaker. Hopefully, your candidate shares the same values as the ones you are trying to perpetuate throughout your company philosophy and culture.  When circumstances do not necessarily require expertise, sometimes attitude and shared beliefs are a better indicator of a successful collaboration.

Perhaps the best piece of advice we could share with you is congruent to the common saying “Hire for the attitude, train for the skill”. In the world of tech, skills tend to become obsolete in the never-ending cycle of changes that continuously emerge as time passes by.

At the end of the day, passion is the one criteria that goes well beyond every other skill and feature you are looking for. If you have the ability to spot it and the possibility to fertilize it, your recruitment process might turn out to be a lot easier than you thought!

 Have you got any Node.js vacancies?  Feel free to advertise them on our job board!



5 reasons why Node.js is in line to take over app development

Node.js is on a stride, a rising star in the land of development, in a time when you have more choices than ever when it comes to server side development. The development ecosystem is constantly evolving, technologies move up and down in a fraction of the time than a couple of decades ago. Node.js has a lot of competition, but it has quite a leg to stand on. Moving past the Node.js/JavaScript fusion that brings client and server side under the same roof, there are quite a few reasons why Node is a language runtime environment  to keep an eye on.

  • It’s faster and it increases productivity. There are quite a few big names that went the Node way because of this (netflix, uber, Paypal) and not just. You avoid the breach between frontend and back end development and move in a more unitary direction.

Dan Shaw, CTO and co-founder of NodeSource, a provider of support services for Node.js shops:  “Node.js is rapidly replacing Java and .NET due to the agility of the Node.js software development lifecycle. Building a Java app typically takes six to 24 months from start to finish. In contrast, Node.js applications take two to six months.”

  • Tools, like npm and now Yarn, make working with Node.js a piece of cake. You get a consistent, reliable and fast workflow that changes development entirely.

  • Code reuse through prototyping and class inheritance. This is another point in the faster development column.

  • Real time apps compatibility. Node works very well for gaming apps, chats and others.

  • A modular construction allows you to change things easily in small particular modules which makes maintenance and future development almost headache-less.

On a separate note we would also list the Node.js Foundation as a bonus point for getting into Node.js development. Constant updates, with a clear calendar and a driven and united community are features that innovate and push development forward. Also, there are plenty of companies that use Node, we are testimony of that. 



Open Source Node.js projects you should consider joining!

In the world of programming, one of the most compelling reasons to get involved in the communities arising roundabout certain projects, programming languages as well as shared goals and beliefs, lies in the great opportunity of driving innovation and success through participation.

Involvement and contribution are particularly capitalized in the Node.js community throughout the promotion of open source adoption. In a nutshell, increased open source projects adoption is due to the possibility of lowering development costs while driving a substantial amount of innovation and complexity into your technology.

On the other hand, amongst the reasons to get involved in open source projects listed by developers, the rewarding experience both in terms of making great connections and working with a bunch of great developers outside your usual work-circle, as well as enhancing your skills and gaining valuable experience contributing in the creation of various fields are some of the most frequently cited.

Builtinnode encourages open source participation and therefore we would like to showcase some great projects that could benefit from the input of talented developers and would also empower them with a meaningful know-how and valuable experience.

Atom (Github: atom/atomAtom is a text editor that’s modern, approachable, yet hackable to the core—a tool you can customize to do anything but also use productively without ever touching a config file.

npm (Github: npm/npm-wwwis the package manager for Node.js. It was created in 2009 as an open source project to help JavaScript developers easily share packaged modules of code. The npm Registry is a public collection of packages of open-source code for Node.js, front-end web apps, mobile apps, robots, routers, and countless other needs of the JavaScript community. npm is the command line client that allows developers to install and publish those packages.

crux (Github: PearlVentures/Cruxis a Node.js bootstrapping framework designed with extensibility in mind for fast application prototyping and production-ready applications. It comes with a set of core components suitable for almost any kind of front-end (angular, commonjs, browserify, sass/less, watchers) or back-end (express promisified routing, mysql, mongodb, redis, tasks & caching) projects. It also allows the developer to plug in components and load them on-demand.

PencilBlue (Github: pencilblue/pencilblue) is a full featured Node.js CMS and blogging platform (plugins, server cluster management, data-driven pages). By releasing the source code of PencilBlue to the public, they’re allowing for the type of community collaboration that turns a great platform into a game changer.

Cozy (Github: cozy/cozy) is a Personal Cloud you can hostm customize and fully control. It allows you to sync your contacts, calendars and files between your devices and your personal server and add your own services to leverage your personal data.The platform and the deployed apps are based on Node.js.

Are you currently involved in a Node.js based open-source project? Tell us more!



Best Modern Practices of Using Node.js

Many popular web services today require stability, scalability and fast server speed response in order to meet the needs of demanding customers. Thus Node.js comes in handy for developers as an effective runtime environment that helps to achieve these goals with Javascript.

Why more and more developers prefer Node.js over PHP? The first and foremost advantage of using Node.js is that it allows to use a single language for both front-end and back-end development. It’s Javascript, as you may already have guessed. Another thing that makes Node.js a desirable choice of technology is how effectively it handles multitasking. Executing tasks in parallel it doesn’t wait for one task to complete when starting another one unlike PHP. Overall performance of web apps that use Node.js is also significantly better than those developed in PHP.

Best practices for Node.js can be found all over the Internet, but let’s also look at some interesting examples of services that use Node.js that many of you definitely came across.  

Node.js Implementation at Uber

A leading on-demand delivery application and taxi ordering service Uber is a great instance of leveraging strong points of Node.js. Since the day Uber was founded it began to scale fast and thus required a reliable solution. Node.js helps to make the service work like a charm, as if it runs like water. 

Uber developers praise Node.js because it enables them to deploy new features and fix occurring errors on the go. This is beneficial for such a large service as Uber, because its developers don’t need to reboot any processes in order to fix errors. They benefit from the multitasking effectiveness that Node.js provides.  

Usage of Node.js at Netflix

Developers at Netflix had a serious dilemma of what technology to use for their fast-growing business of on-demand online video services. Taking into account that the majority of the UI they have developed so far (and continue to) is in Javascript, Netflix developers decided to go on working with it for server-side computations too. Initially Java and Objective-C were their primary languages used for the development of the Netflix service. However, having discovered the tremendous capabilities of the Node.js environment for scaling all the data access scripts, the choice became obvious.

So re-architecting the system and making the Node.js platform effectively running was of prime importance for the Netflix development team. Turning a multitude of scripts into Node.js apps helps developers to manage them more safely. And right now this major task is what Node.js programmers at Netflix are working on. 

Ebay’s Practice of Node.js

Node.js is also used by one of the top online marketplaces in the world – Ebay. Since many programmers choose Javascript nowadays, it was easy for Ebay developers to start working with Node.js. Why did they eventually decide to switch a part of their backend from Java to Node.js? Because they saw that contemporary web environments are built around this technology. Moreover, Node.js is suitable for such a large scale platform as Ebay and using numerous Node.js components is very common and easy for developers.

At Ebay their Node.js layer is responsible for Experience Services, a set of backend services that power Android and iOS mobile apps, as well as the website. Also eBay developers constantly build new tools to effectively deploy Node.js applications. 

How Adoriasoft uses Node.js

DriverAgent is one of those useful desktop tools that comes in handy when you need your system updated, running smooth and fast. What it does is that it effectively scans the system, locating outdated drivers and updates them automatically. Users thus don’t have to search for new drivers on the web anymore – the app does all the searching and installation for them instead. The DriverAgent utility is written mainly in PHP, with some Node.js parts added later.

But to what extent is Node.js being used in DriverAgent? The development team at Adoriasoft decided to use the PhantomJS module to achieve a part of the functionality needed for the efficient performance of the DriverAgent tool. In particular what we’ve developed is a crawler, which with the help of a headless PhantomJS browser visits all pages of the website. Then it gets the download links of all drivers needed. 

Why have we decided to use PhantomJS for the task, but not PHP, in which DriverAgent is written? In this instance PhantomJS made it possible to execute Javascript on pages for getting download links. PHP could not provide that, because it lets you work with the downloaded web page content as with text. Furthermore, choosing PhantomJS simplifies the processes as it can be executed with JQuery and other Javascript libraries. 

Wrapping up

Node.js is in many cases the first-choice technology and framework for large-scale modern apps and businesses that operate worldwide. Adoriasoft recognizes all the benefits of using Node.js, including asynchronous code execution, multitasking, fast processing, and its open source code nature. So for the majority of our web projects Node.js becomes the ideal technology solution that can help businesses to grow, scale and succeed.