Job description
We are looking for a Node.js Developer responsible for managing the interchange of data between the server and the users. Your primary focus will be the development of all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the front-end. You will also be responsible for integrating the front-end elements built by your co-workers into the application.
Responsibilities:
Have the passion and experience for building responsive, elegant and engaging experiences with future friendly web technologies
Integration of user-facing elements developed by front-end developers with server side logic
Writing reusable, testable, and efficient code with proper documentation
Design and implementation of low-latency, high-availability, and performance applications
Implementation of security and data protection
Integration of data storage solutions
Continually keep yourself and your design team updated with the latest changes in your industry’s standards
Requirements
1+ years Experience
Strong proficiency with JavaScript
Knowledge of Node.js, Express.js and other frameworks required to create a scalable and effective application
Understanding the nature of asynchronous programming and its quirks and workarounds
Good understanding of basics of SQL and/or NoSQL databases
Very strong understanding of working with at least one SQL or NoSQL database in node js(Without ORM preferably)
Understanding of commonly used node modules
Good understanding of server-side templating languages
Good understanding of server-side CSS pre-processors such as SASS, LESS, etc.
Basic understanding of front-end technologies, such as HTML5, and CSS3
Understanding accessibility and security compliance
User authentication and authorization between multiple systems, servers, and environments using OpenID, OAuth2.0, etc.
Creating secure and scalable APIs using standards like REST API, GraphQL, etc.
Integration of multiple data sources and databases into one system
Understanding fundamental design principles behind a scalable application
Understanding differences between multiple delivery platforms, such as mobile vs. desktop, and optimising output to match the specific platform
Creating database schemes that represent and support business processes
Implementing automated testing platforms and unit tests
Proficient understanding of code versioning tools, such as GIT Critical thinker and problem-solving skills Team player Good time-management skills Great interpersonal and communication skills.