Backend Software Engineer (L2)

Permanent employee, Full-time · HQ

About Caravelo
Caravelo is a travel-tech company with a global team and roots in Barcelona that specializes in subscriptions. We make travel better and more accessible by enabling our clients to offer better products and helping them to become more profitable and more stable businesses.
Our team has been growing over the past few years and at the moment we are a team of 50 people working mostly from our HQ in Barcelona. If you’d like to be part of our growth journey, read on. 
Our platform is based on a SaaS architecture in a cloud environment on Amazon AWS. The domain of our subscription platform for travelers uniquely combines two different domains: the financial domain (Fintech) and the travel domain (Travel Tech). 
Caravelo is the only platform in the world specializing in subscriptions for the travel vertical, reducing the need for our clients to develop specific adaptations or logic. Our tech stack is AWS, GitLab, Java 11 (Maven), HK2, PHP/Laravel, Vue.Js in the front and Datadog for our observability.
The mission
We are looking for an analytical, results-driven Java backend engineer L2 who will work with team members to troubleshoot, improve and expand our current Caravelo SaaS Platform. 
As a Back-End Engineer L2 at Caravelo, you will be responsible for the server side code and APIs of our platform. You will be involved in the entire product development lifecycle including the design, development, deployment and maintenance of new and existing features. You'll write reusable, scalable and maintainable code. 
As a Backend Engineer, you will perform testing to optimize performance and work closely with our Delivery and Design/UX teams to ensure system consistency, customer satisfaction and to create a great user experience. Ultimately, you'll be the driving force behind all back-end activities.
This role reports to the Engineering Manager.

In 1 Month
  • Get familiar with the company's product, its architecture, and its coding standards.

  • Understand the existing technology stack, learn the framework, our caravelo library and tools.

  • Participate in team ceremonies.

  • Get to know the product roadmap.

  • Collaborate with other team members to resolve simple tasks.

  • Start taking ownership of assigned tasks and deliver them in a timely manner.

In 3 Months

  • Estimate effort, complexity and delivery time of user stories.

  • Collaborating with the front-end developers, UX/Design and Delivery teams to establish objectives and design more functional, cohesive codes to enhance the user experience.

  • Follow and enforce others to follow best coding practices and design patterns thinking of efficiency, scalability, code readability and maintainability.

  • Develop clean code that is simple and efficient.

  • Get familiar and apply the following concepts: BDD, Backend-for-frontend and Microservices.

In 6 Months:

  • Follow and enforce others to follow best coding practices and design patterns thinking of efficiency, scalability, code readability and maintainability.

  • Gain strong knowledge and follow best practice on the BDD approach.

  • Design, Architect and Build Backend-for-frontends and new Microservices.

  • Observe the environments using Datadog.

Duties and responsibilities
  • Analyze business requirements and translate them into technical user stories or tasks.
  • Document technical solutions, create documentation, readme guides and UML diagrams whenever needed, sharing them with other teams or departments.
  • Know and enforce the testing pyramid, writing unit tests and integration tests.
  • Consume, design, build and evolve both our public and internal API.
  • Good estimation of technical debt, detecting current debt and alerting the team when we are generating more. Actively propose improvements to reduce technical debt.
  • Continuous refactor of code from oneself and others, with the aim of simplifying, modularizing, improving performance and having stable code.
  • Create great technical documentation and share with peers.
  • Attend team ceremonies willing to help others and address bottlenecks.
  • Perform peer reviews from other team members in an efficient manner, willing to share best practices in a respectful way.
  • Communicate clearly with other team members and report status to managers.
  • Take and give feedback to other team members positively, having the opportunity to keep improving and learning from others in a challenging and cheerful team.


Required skills and experience
Must have:
  • +3 years experience developing Java applications or similar backend technology.
  • Bachelor's degree in Computer Science, Software Engineering, or related field.
  • You are familiar with build automation tools like Maven or Gradle.
  • You are familiar with DI/ioC frameworks like HK2 or Spring.
  • You are familiar with unit testing tools like Junit or Spock.
  • You are familiar with at least another OOP language.
  • You have a good understanding of the entire product development process (design, development, testing and deployment).
  • You can estimate and break down user stories into tasks.
  • You have worked actively in a CVS (Git, GitLab, Bitbucket, ) and feel familiar opening and reviewing MRs/PRs, you feel confident branching, rebasing and merging.
  • You can troubleshoot problems in Java code and feel confident in using debugging tools in your IDE.
  • You're aware of the importance of using a coherent code style and to make code readable.
  • You're analytical and good at time management.
  • You have great problem-solving skills and you work well in a team.
  • You're curious about new technologies and you're excited to find ways to implement them in your work.
  • You have a big appetite to learn and improve your back-end skills.
Good to have:
  • Solid knowledge of another backend technology.
  • Basic Knowledge of front-end technologies like HTML, JavaScript and CSS, and any front end framework (VueJs, ReactJs).
  • Strong knowledge of relational or non-relational databases like MySQL, MariaDB, SQL, CouchBase, DynamoDB, MongoDB.
  • Some knowledge of AWS Cloud, ECS, EC2 and S3.
  • You're familiar with automated garbage collection vs manual memory management, resource handling (e.g. close file pointers, HTTP resources), strong/weak reference collections and object immutability.
  • You're familiar with asynchronous callbacks, multi-threaded environments (thread safety), parallel computing and hard/soft locking.
  • You can build basic observability of the code you have built (REST latencies, uptime, and main metrics) with Grafana, Datadog, CloudWatch or similar.
What we offer
  • Competitive salary and progression framework
  • Flexible working hours
  • Remote work options
  • A fantastic and spacious office in the heart of Barcelona
  • Free coffee & beer while in the office
  • The possibility to see the results of your work, and have a real impact on the business
  • Diverse, inclusive and international work environment
  • Tax Free Benefits with Cobee
    • Private Health Insurance with Mapfre
    • Restaurant Card
    • Transport Card
    • Kindergarten
  • Training and conferences budget
  • Healthy life with Andjoy discount
  • 23 days holidays
  • Fun environment & team: company events, celebrations, etc.

*Remote locations: Spain or Europe (only)
About us

At Caravelo we are always looking for people with the right mix of passion, authenticity, and attitude to join our team. We are also proud to be an inclusive, equal opportunity employer.

Would you like to have a job like this?
Please fill out the following short form if you want to be part of our hiring process. 

Please upload your updated CV.

Click to select multiple files or use drag-and-drop

Uploading document. Please wait.
Please add all mandatory information with a * to send your application.