Job Overview:
The Backend Developer will develop and maintain server-side applications, focusing on designing RESTful APIs and backend services. This role involves collaborating with frontend developers, ensuring high performance and quality in applications.
Key Responsibilities:
- Develop and maintain server-side applications
- Design and implement RESTful APIs and other backend services
- Collaborate with frontend developers to integrate user-facing elements with server-side logic
- Ensure the performance, quality, and responsiveness of applications
- Write clean, maintainable, and well-documented code
- Troubleshoot and debug applications to optimize performance
- Mentor the team and explain development concepts to team members
- Participate in code reviews to ensure best practices and coding standards are followed.
- Stay up to date with the latest industry trends and technologies
Requirements:
- Experience with RESTful API design and implementation, including proven work experience as a Backend Developer in a modern backend framework, preferably SpringBoot or NestJS.
- Proficiency in Java, Python and TypeScript.
- Strong understanding of software architecture and design principles
- Ability to design systems with a clear separation of concerns, promoting modularity and reusability
- Deep knowledge of SQL and NoSQL database management systems (e.g., SQL Server, PostgreSQL, MongoDB).
- Deep understanding of database performance and optimization including ability to write efficient queries and understanding query execution plans, and design indexing strategies to improve database performance.
- Experience with database migration tools such as Liquibase or Flyway.
- Familiarity with in-memory caching databases like Redis.
- Experience with object storage systems like MinIO and S3.
- Experience with distributed event streaming platforms such as Kafka and RabbitMQ.
- Proficiency with modern development tools and workflows, including version control systems (e.g., Git).
- In-depth knowledge of containerization technologies, like Docker or Podman, and container orchestration tools like Kubernetes.
- Experience with microservices architecture and its associated challenges and benefits, including service discovery, load balancing, and fault tolerance.
- Familiarity with architectural patterns such as MVC, layered architecture, and event-driven architecture.
- Capability to create and maintain comprehensive technical documentation, ensuring all stakeholders have a clear understanding of system design and implementation.
- Experience in assessing and selecting appropriate technologies and frameworks to meet project requirements while considering factors like scalability, performance, and maintainability.
- Knowledge of design patterns and best practices for building scalable, maintainable, and secure backend systems.
- Experience with logging frameworks and tools such as the ELK stack (Elasticsearch, Logstash, Kibana).
- Strong problem-solving skills and attention to detail
- Ability to work in a collaborative team environment
- Excellent communication skills
- Familiarity with Agile/Scrum development methodologies
Skills
Preferred Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, Web Development, or a related field.
- 5-8 years of experience with other backend frameworks (e.g., Express.js, Flask)
- Experience with cloud services (e.g., AWS, Azure, Google Cloud)