Position: Node.js/NestJS Backend Developer
Company: SimilarDev
Category: Node.js
Experience required: 3y
English level: intermediate

Job Title: Node.js/NestJS Backend Developer
Job Description:
We are seeking a talented Node.js/NestJS Backend Developer to join our team in building a robust, secure, and scalable application. The ideal candidate will have a strong background in Node.js and experience working with NestJS framework. They should also be knowledgeable about MySQL databases, AWS S3 storage, Google reCAPTCHA v2, and have experience implementing data validation and authentication systems.
Responsibilities:
Develop a Node.js application using the NestJS framework
Design and implement a MySQL database schema to store user/account information and sessions
Integrate AWS S3 storage for handling file uploads associated with user accounts
Create RESTful API endpoints for user registration, login, and account management
Implement session-based authentication and access control for restricted endpoints
Integrate Google reCAPTCHA v2 into non-GET endpoints as a middleware
Implement data validation using the class-validator package to prevent data injection
Collaborate with the development team to ensure application performance, security, and scalability
Write clear, maintainable, and well-documented code following best practices
Participate in code reviews, provide feedback, and contribute to improving the overall code quality
Requirements:
3+ years of experience in backend development using Node.js
2+ years of experience working with the NestJS framework
Strong knowledge of MySQL databases and experience designing database schemas
Experience working with AWS S3 storage and integrating it into applications
Familiarity with Google reCAPTCHA v2 and its implementation in web applications
Experience in implementing data validation and authentication systems
Strong understanding of RESTful API design principles and best practices
Proficient with Git and version control systems
Excellent problem-solving skills and attention to detail
Strong communication and collaboration skills
Bachelor's degree in Computer Science or a related field, or equivalent experience