Backend Python Developer for Search Tribe
Our main challenge is the creation and maintenance of highly available APIs to provide our customers with a nontrivial amount of the most relevant itineraries we can offer, as fast as possible.
Our responsibility is to ensure all business logic is correctly implemented. Our search engine is our know-how and people that create and maintain it need to have a deep understanding of it.
Our current main projects:
Multimodal transportation – the final vision of Kiwi.com is to offer the best possible itineraries incorporating multiple means of transport. We don’t limit ourselves to aircrafts only, we want to provide the most comprehensive travel experience possible, including buses and trains to increase coverage where our customer can travel to and from. And we want to push these limits even further.
The NOMAD – was created for travellers who would like to visit up to 10 cities in any order. A time restriction is not mandatory (also known as Travelling Salesman problem).
HUB change combinations – refers to combinations of flights, buses or trains within one city. As an example we could use an arrival at London Gatwick and departure from London Stansted.
Our main API is written in Python, which makes it possible to develop new features and do any necessary changes at a fast pace. We serve over 90 million requests per day and are involved in design and development of most of the new features added into our product. We are there to ensure our infrastructure will be able to comply with the new demands.
What will be your main focus:
- Optimization of search results
- Data processing
- Main flights database development
- Implementing and debugging business logic
- Stack maintenance
What do we expect?
- Good knowledge of Python
- Intermediate English
- Reliability and independence, ownership of your tasks from the beginning to production release
- Dedication to work sometimes odd or extended hours (possible on-calls)
- Motivation to learn new stuff, if we decide current tech stack is not suitable for us anymore, we will just move to something else and we will all have to learn how to tackle it.
- Being a team player, your team is there to help you out if needed and you are also there for them. Starting with mutual code reviews and not ending with consults to decide which approach/tech is the best for specific scenario. If you get stuck on something, don’t sit on it for a day, stand up and ask someone.
Nice to have skills:
- Being able to talk about tech stuff with non tech people either to explain how our product works and what are its limits or to discuss implementation of new features.
- Databases (so far PostgreSQL, Redis, Cassandra/Scylla and ElasticSearch) – what you don’t know and you will need, you are expected to learn – your team is there to help you out
- Web servers and networking
- Familiarity with other parts of our tech stack
Our Tech Stack:
- Python for writing the microservices
- Running them usually using Gunicorn
- Everything inside docker
- Which is mostly orchestrated by Kubernetes (or Rancher) – above that our DevOps team kicks in to ensure the traffic from users reaches our API
- In Google Cloud Platform (or AWS or even bare metal in some cases)
- Gitlab (and its CI among other things to make that machine above moving and get your changes to the user)
- Datadog to show us that everything runs as expected and to tell PagerDuty to ring your phone when it misbehaves
- Sentry to see the errors you didn’t want to happen
- Logz.io and Stackdriver (and again that Datadog) to dig to find out what happened when things went south
Why it rocks to be at Kiwi.com:
- We deploy immediately after a job is completed, not after months of QA.
- Do, fail, learn – repeat! We understand that mistakes happen and we learn fast.
- We decide which cutting-edge technologies are appropriate for the task.
- We love contributing and using Open Source.
- We visit and speak at conferences and technological events worldwide.
- We code at hackathons and other competitions.
- We support the local technological community.
- We use our work time wisely with a friendly vacation policy and work schedule.
- We also like to party and hang out together.
- We work, play, relax, workout and even nap in our offices (complete with sauna, gym, masseur, sleeping spots, canteen, chillout zones, free refreshments, etc).
- Dogs, kids and parties are welcome in our offices.
- We also enjoy common benefits, such as meal vouchers, flexible benefits scheme, sick days, VIP Medical Care, flight vouchers, multisport card, etc..
- Besides a fair salary, we can also look forward to quarterly bonuses dependent on our performance.