Hi, We are Kalpas Innovations
We are Hiring for
Bangalore, Karnataka
We hire both, on project as well as a full time basis. For Project hiring, Kindly reach our to us at hello@kalpas.in
Node.js Developer
Salary Range: 1.8 - 6 LPA
Job Description:
We are seeking a talented and experienced Node.js Developer to join our dynamic team. As a Node.js Developer, you will be responsible for developing server-side logic, optimizing performance, and ensuring the responsiveness of our applications. You will work closely with our front-end developers and other stakeholders to deliver high-quality software solutions.
Roles and Responsibilities:
1. Backend Development
- Design, develop, and maintain efficient and scalable server-side applications using Node.js.
- Implement robust, reusable, and modular code to support our applications.
2. API Development:
- Build and maintain RESTful APIs to enable seamless communication between the front-end and back-end systems.
- Collaborate with front-end developers to integrate user-facing elements using server-side logic.
3. Database Management:
- Utilize and optimize database systems, such as MongoDB, MySQL, or others, to ensure data consistency and reliability.
- Design and implement data storage solutions as per project requirements
4. Performance Optimization:
- Identify and address performance bottlenecks to ensure optimal application speed and responsiveness.
- Conduct regular code reviews and performance tuning to maintain high-quality standards.
5. Collaboration:
- Work closely with cross-functional teams to understand project requirements and deliver solutions that meet business objectives.
- Collaborate with front-end developers, UI/UX designers, and other team members to ensure seamless integration of components.
6. Security:
- Implement security best practices to safeguard data and ensure the integrity of the applications.
- Stay updated on the latest security trends and technologies to proactively address potential vulnerabilities.
7. Documentation:
- Create and maintain technical documentation for the codebase, APIs, and other relevant aspects of the projects.
- Collaborate with the team to ensure knowledge transfer and documentation accuracy.
Requirements:
- Minimum of 1 year of hands-on experience with Node.js development.
- Strong proficiency in JavaScript and familiarity with ES6+ features.
- Experience working with database systems, such as MongoDB, MySQL, etc.
- Knowledge of RESTful API development and integration.
- Understanding of asynchronous programming and event-driven architecture.
- Familiarity with version control systems, preferably Git.
- Excellent problem-solving skills and attention to detail.
- If you are a passionate Node.js Developer with a proven track record of delivering high-quality solutions, we invite you to apply and be a key contributor to our innovative projects. Join us in shaping the future of technology!
Complete the task.
Build a bookkeeping service where there are three models namely Books, Users and Libraries. A User can either be an Author or a Borrower, a Book is written by some User (Author), and is currently owned by a certain library and is currently borrowed by a certain user (Borrower).
Books:
- GET /api/books – Retrieve a list of all books
- GET /api/books/:id – Retrieve details of a specific book by its ID — API should include the details of the Library, Author and Borrower associated with the Book.
- POST /api/books – Create a new book entry
- PUT /api/books/:id – Update details of a specific book by its ID
- DELETE /api/books/:id – Delete a book by its ID
Users:
- POST /api/users/register – Register a new user (both authors and borrowers)
- POST /api/users/login – Authenticate user and generate JWT token
Borrowing:
- POST /api/borrow – Borrow a book against a charge
- PUT /api/return/:id – Return a borrowed book by its ID
Libraries:
- GET /api/libraries – Retrieve a list of all libraries
- GET /api/libraries/:id – Retrieve details of a specific library by its ID — API should include the details of all the Books owned by the Library, each Book object should include the details of the Borrower.
- POST /api/libraries – Create a new library
- PUT /api/libraries/:id – Update details of a specific library by its ID
- DELETE /api/libraries/:id – Delete a library by its ID
Library Inventory:
- GET /api/libraries/:id/inventory – Retrieve a list of books available in a specific library
- POST /api/libraries/:id/inventory – Add a book to the inventory of a specific library
- DELETE /api/libraries/:id/inventory/:bookId – Remove a book from the inventory of a specific library by its ID
Constraints:
- Each Book object should have an image field that stores the reference to the Book Cover stored in Firebase.
- All the APIs should check for authorization — All endpoints except registration and login should require a valid JWT token for access.
- The APIs should be multilingual. i.e., the error or success messages should be in the language of choice of the user — English and Hindi being the two languages.
- Only authenticated users with appropriate roles can add or remove books from the library inventory.
Evaluation Criteria:
- Code quality — The code should be concise and readable.
- API performance – Optimized API logic will be highly regarded.
- Security & Testing — APIs should be stable and secure, the false cases should be tested and addressed accordingly.
Submission process:
- Create a Git repository containing your code and commit your changes. Keep the Repo Public.
- Include a README.md file with detailed instructions on how to run the application locally, including setup and usage instructions.
- Share the repository link with the hiring team for review.
- Create a postman collection and share the Import URL in the form below.
- Host the application on freely available platforms and share the API endpoint in the form below.