Backend Software Engineer – Java

We are looking for a:

Backend Software Engineer – Java

( Niš, Serbia )

Our Client is a German online travel comparison and booking website based in Berlin, Germany. It was founded in 2012 and the first web application went live in 2013. From a small startup of just a few people, the company has grown to over 300 employees hailing from more than 50 countries who work at offices in Berlin, Prague, Beijing, London, and New York. With more than $400 million raised in funding, it is supported by several key investors who believe in its vision.

The website and corresponding mobile apps are available in 21 languages. The platform offers travelers the ability to organize transportation requirements such as trains, planes, buses, etc by using their easy-to-use portal and mobile application. They bring together more than 1,000 transportation providers across trains, buses, flights, ferries, cars, and airport transfers. It covers 207 European airports, over ten thousand central bus stations, and over twenty thousand train stations.

The Client is looking for a senior backend developer for their Search engine team. They are looking for an enthusiastic software engineer who has already built a few micro-services and knows what it takes to deploy and run them in a production environment with confidence. He/she will be part of an agile, cross-functional engineering team and join a community of highly skilled technical professionals working passionately to build a cloud platform that abstracts away the complexity and fragmentation of the data and APIs of the world of personal transportation and turns it into a structured and reliable system for client application teams to use. Apart from the core services, they also develop tooling and automation to improve their efficiency and gain more time to innovate. They work with all major train, bus, and ferry operators in Europe (and beyond) and strive to create a travel product that none of them can build in isolation.

If you are the one, you will do:

  • Design, build and improve scalable systems that connect to many services & data sources inside and outside of the Clients core system.
  • Work with your team to rapidly test ideas, use results for iterations and improve their product.
  • Operate and maintain critical core systems, owning reliability, performance, and availability.
  • Apply your engineering experience to automate processes and maintenance.
  • Collaborate with other teams on solutions for challenging and interesting problems.
  • Help more junior engineers grow in their profession.
  • Be hands-on with their diverse technology stack and have an opportunity to participate in defining and developing internal standards and shared components. Examples of the technologies we currently use and you might be working with include (but are by no means limited to): Java, Spring, Spring Boot, Javascript, TypeScript, React.js, React Native, Node.js, Go, Couchbase, BigQuery, Docker, Kubernetes, Graphite, Grafana, Kibana, GraphQL.

If you are the one, you are:

  • Experienced and educated: You have a degree in Computer Science or equivalent professional experience and worked at least 3 years with production systems in a high volume / high availability environment. You know how to design software systems and understand how microservice architectures work. Practical experience with Java and a subset of the following is required: Spring, Spring Boot, Docker, Kubernetes, Google Cloud, a NoSQL database.
  • Up to code: You have experience in software development, you write clean, lean, effective code in multiple languages, all version-controlled. You pick the right tool for the job and your mindset is not limited to a single paradigm or language. You know how to write tests and validate that your code does what it is supposed to do.
  • Pragmatic: You can take on complex multi-domain problems, analyze, design, build modular solutions, and deliver end-to-end in an MVP, value-first and iterative approach. You know that sometimes you need to cut corners and can foresee the effects of it. You also understand that software engineering is not always just fun and you are willing to put in the effort to get things done even if they are sometimes somewhat boring.
  • An Automator: You strive to remove repetition and snowflakes through scripting and automation tools. You have deployed, monitored, and supported applications in production environments.
  • A team player: You help your teammates with planning and delivering high-quality software and are not afraid to talk to people in your team and outside to clarify information and make agreements. You learn from the best around you.

Contact US