What is the Booking Backend Tribe doing?
Booking Backend is the customer-facing order management system of Kiwi.com. Highly available, demanding architecture for developers who can thrive working on the integration backbone. Booking Backend manages the base booking orders, as well as all additional purchases (baggage, seats, insurance, etc.) – and maintains consistency in the customer experience – be it on mobile, desktop, or using a partner application.
We understand the codebase is always changing and therefore enforce clean code, code reviews, and automated testing. As we deploy multiple times per day, QA testing, real-time monitoring, and alerting is an inevitable part of our release process. We often refactor parts of code/product that are slowing development down but also focus on being able to deliver new features – to be innovative and deliver value to our customers. Within the team, we try to spread knowledge and collaboratively work on top priorities to avoid hero syndrome – preventing bus factor.
What technologies do we use?
- Our main codebase is written in Python 3.6
- Flask as our Python framework (with Connexion for validation)
- Apps are built as docker images, orchestrated by Kubernetes and deployed to GCP
- OpenAPIv3 schema first API design
- PostgreSQL database with SQLAlchemy models
- Celery tasks for asynchronous and periodic tasks
- Top of the line code quality tooling – Black, Pylint, SonarQube and Mypy
- Slack as a main communication tool – a rich set of Slack integrations to promote flexibility
- Datadog for real-time app metrics, logs and alerts. Sentry for error tracking – all connected to PagerDuty for high severity incidents
What will you do?
- Design, develop, integrate and deploy high-quality software aligned with user needs and business goals – finding a balance between business needs and technical excellence
- Write and review performant code – debug, profile and optimize apps – adhering best practices
- Identify, prioritize and execute tasks in the software development life cycle
- Take ownership of domain/service crossing several teams/services – healthy architecture, testing, monitoring and documentation
- Lead and mentor less experienced colleagues
- Actively promote & support continuous learning approach within the team and department, demonstrating a positive attitude
- Collaborate with internal teams and vendors to fix and improve products
What do we expect from you?
- Professional experience working in a product-driven environment
- Independent and self-driven personality
- Ability to write distributed, high-volume services
- Ability to deploy and operate services using docker
- Deep understanding of system design, data structures, and algorithms
- Care about quality and understanding what ship high-quality code means
- Ability to communicate professionally in English
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.
Your manager to be