Are you passionate about solid software architecture and seeking challenges in large-scale projects?
Join our team as a Backend Engineer and contribute to the construction of innovative technological solutions. You will develop robust and scalable backends, applying SOLID principles, DDD, and hexagonal architecture.
Key Responsibilities:
Design and Development:
- Design and develop scalable and maintainable backends using SOLID and DDD principles.
- Model domain entities and objects, applying appropriate naming and design patterns.
- Implement RESTful APIs following best practices and ensuring clear documentation.
- Utilize dependency management tools (Composer, Maven, Gradle) to manage libraries and frameworks.
Testing:
- Write comprehensive unit and integration tests to ensure code quality.
- Practice TDD to ensure agile and high-quality development.
Architecture:
- Implement hexagonal architectures to separate business logic from infrastructure.
- Work with distributed systems, using Docker to containerize applications.
- Interact with relational and non-relational databases, optimizing data access.
- Implement asynchronous communication solutions using queues and events.
Cloud:
- Deploy applications to the cloud using platforms like AWS, Azure, or Google Cloud.
- Explore and utilize serverless services to optimize costs and scalability.
Collaboration:
- Collaborate closely with the product development team and other stakeholders.
- Effectively communicate technical decisions and project progress.
Maintenance and Improvement:
- Perform continuous refactoring to improve code quality and architecture.
- Implement robust logging and exception handling mechanisms.
Requirements:
Solid knowledge of:
- At least one backend programming language (Java, Python, Node.js, etc.)
- Relational (MySQL, PostgreSQL) and non-relational databases
- SOLID principles, DDD, hexagonal architecture, and design patterns
- TDD and BDD
- Docker and container orchestration
- Cloud computing (AWS)
- RESTful APIs
Experience in:
- Microservices development
- Distributed systems
- Asynchronous communication
- DevOps and CI/CD
Soft skills:
- Effective communication
- Teamwork
- Proactivity and problem-solving skills
Valued:
- Knowledge of other programming languages (scripting and compiled)
- Experience with serverless systems
- Contributions to open source projects
- Advanced English
Why join us?
- Challenging projects: You will have the opportunity to work on innovative and high-impact projects.
- Teamwork: You will be part of a talented and collaborative development team.
- Professional development: We offer you opportunities for growth and professional development.
- Cutting-edge technology: You will work with the latest technologies and tools on the market.