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. Therefore, a basic understanding of front-end technologies is necessary as well.
Responsibilities
- Integration of user-facing elements developed by front-end developers with server side logic
- Writing reusable, testable, and efficient code
- Design and implementation of low-latency, high-availability, and performant applications
- Implementation of security and data protection
- Integration of data storage solutions
- Work in Agile XP framework – pair programming
Skills
- Strong proficiency with JavaScript
- Knowledge of Node.js and frameworks available for it such as Express, StrongLoop, etc.
- Understanding the nature of asynchronous programming and its quirks and workarounds
- Good understanding of server-side templating languages such as Jade, EJS, etc
- Good understanding of server-side CSS preprocessors such as Stylus, Less, etc
- Understanding accessibility and security compliance
- User authentication and authorization between multiple systems, servers, and environments
- 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 optimizing output to match the specific platform
- Creating database schemas that represent and support business processes
- Implementing automated testing platforms and unit tests
- Proficient understanding of code versioning tools, such as Git
- Experience with web servers/reverse proxies (Nginx, haproxy, Apache, Tomcat) is a plus
- Experience with offline storage, threading, and performance tuning
Must Have(s)
· Experience with WebRTC
- Experience implementing REST API’s and Webhooks
- Solid networking knowledge (OSI network layers, TCP/IP)
- Understanding of Telephony concepts (SIP, Trunking, ICE, STUN/TURN)
· Proven experience of Working with real-time A/V calling based applications
- A minimum of 5 years of experience performing this kind of role
Education
· Bachelors in Computer Science or Software Engineering.