<3Articles
The Kiwi.com tech
community blog.
<3Geeky gift guide – holidays 2025 edition
A list of items so cool, we would all love to get them from Santa (or Ježíšek) in an instant.
The Old Way Is Dead: A Security Team's Manifesto for GRC Engineering
The role of a modern security team has undergone a transformation. What was once a function focused solely on the technical aspects of network defense has evolved into a strategic business partner that directly influences business growth, innovation, and organizational resilience. Today's security team operates at the intersection of technology, business strategy, and risk management, working closely with engineering, legal, and business leaders. This shift is a direct response to a threat landscape where cybersecurity risks are no longer isolated technical problems but critical business risks with real financial and reputational consequences.
Feature configuration with Swift macros
Modular SwiftUI architecture
When we started introducing SwiftUI in Kiwi.com app, we already had to maintain 100+ UIKit screens. As we tried to convert them into SwiftUI in-place, without any other architectural change, the Xcode would just crash when attempting to work with SwiftUI previews.
Geeky gift guide – holidays 2024 edition
Grandma is asking you again for your Santa letter? Cannot come up with a gift for your family geek? We got you!
Optimizing BigQuery for Performance and Cost Efficiency
In Kiwi.com we have an advanced BigQuery environment with many use cases and approximately 4 petabytes of data. Part of my daily work is taking care of that beast so I have decided to share some lessons I’ve learned from our Kiwi journey!
Engineers, stop wasting your time
Time: our most valuable asset. Yet, so much of it slips through our fingers without us even realising it.
Phishers Thrive in Free Tiers - A Case Study
Ah, to be a phisher on a sunny day. Throw your bait, crack a beer - but where would I go to set up my tools?
Enterprise Python: Software That Lives Long and Prosper 🖖
Today, I’m talking about the kind of software that never gets the spotlight, and yet has gone through one of the most radical changes in the industry. The history of enterprise software also has a deep connection to my own career, and I bet it has a connection to yours, too. Even if you don’t see it that way yet.
Password Policy Attacking Costs, part 2: Practical Problems
Ok. You know what a password is and why you want to crack some hashes since you've read the first part. Now you're interested in actually setting up the whole thing.
Password Policy Attacking Costs, part 1: Theory and Results
The humble password needs no introduction. It's an essential security tool: I know this secret/text/code, you don't. Therefore, my stuff is secure unless you figure out this string of characters.
Swift 5.10 Concurrency Survival Guide
You never know what you’re going to get when updating to a new version of Xcode. Historically, the only thing to worry about was the major version updates that came out in the fall. These include not only support for that year’s new operating systems but also various new IDE features and analysis tools (e.g., checkers and sanitizers). The minor version bumps, by contrast, were much more safe/boring.
Generating SwiftUI snapshot tests with Swift macros
This article describes how our Kiwi.com iOS project uses swift macros to drive automatic snapshot tests generation in order to keep tests synced with SwiftUI previews and to get rid of a lot of maintenance-requiring boilerplate.
Don't Fix Bad Data, Do This Instead
People don’t know what they mean when they talk about data quality.
The Relevance Of Tech Conferences In A Post Pandemic World
Companies that refuse to sponsor conferences do that at their own peril.
Airflow Summit 2023: A Snapshot of the Technical Feast in Toronto
Greetings, fellow tech enthusiasts! Recently, Stanislav and I had the privilege of presenting at the Airflow Summit 2023 in Toronto. The experience was nothing short of exhilarating, and we're excited to share our insights with our community. Here's a recap of our adventure at the summit and the buzzing tech atmosphere that enveloped us.
Codename Tulip: The Making of Async
Thanks to everyone who came to my PyCon CZ talk last Saturday. It was probably the most beautiful venue I've ever given a talk in, kudos to the organization for that.
Why Trust is More than Agility
Whenever I ask somebody working in an agile team how they would describe agile, they always start by naming the ceremonies: planning, retrospective, standup, and whatnot. As a leader who has always strived for team productivity (as in: we deliver great value to our customers), not just a meaningless structure of meetings, it baffled me that my teams perceived agility similarly as described above. What did I do wrong?
ObservableObject initialisation using Environment
At Kiwi.com, the conversion of architecture from UIKit to pure SwiftUI was not without hiccups. One of them was finding a way to properly initialise an ObservableObject that depends on the environment that is injected from above.
Working in Units
Alvaro Duran Barata presented this topic at EuroPython 2023. The place was packed! Here is a loose transcript of the talk.
How Kiwi.com simplified feature delivery with effective API design
The swift and efficient delivery of new features is essential in a product-oriented company like Kiwi.com. However, as client-server architectures become increasingly complex, this task poses more significant challenges. We encountered similar obstacles when implementing new features across multiple clients. This article explores how Kiwi.com effectively tackled these challenges.
Phishing-as-a-Service (PHaaS) - A Case Study
You've been there - an email and a question. Is this legit? Of course not. What else can we say about a campaign?
Cautiously Configuring Copilot
Security folks do not like Copilot for several reasons. One of the main concerns is the leakage of secrets. Basically, we are searching for the configuration that would prevent this - adhering to the principle of least privilege: third parties do not need our secrets.
Vault Operator for k8s
Secret management isn't an easy task, especially in bigger companies. At Kiwi.com we have tried multiple ways to tackle this problem over the years. At the end of January 2023, we publicly released our vault operator.
BigQuery data in Google Sheets using Data connector
Big data is becoming a significant challenge for businesses as the amount of data grows. To address this challenge, many businesses are turning to cloud-based storage solutions for their data and using easily scalable business intelligence (BI) tools. Google offers a vast range of tools and services for managing and analyzing data, most of which are free to use.
code.kiwi.com 2022 wrap-up
Pentesting, Part 2: You’d Like To Buy Some?
Looker Onboarding Obstacles
7 Similarities Between Cybersecurity and (Tech) Community Management
Pentesting, part 1: What is pentesting?
Type-safe arguments in Jetpack Navigation Compose
Feature flag and A/B test management in the iOS app
Techweek 2022: 5 reasons why you should attend
Rewriting Android App’s Back-Handling Logic
Page Objects for E2E Android UI testing
The Career Framework 2 years later: How it impacts our engineering culture at Kiwi.com
Marking it up ???? — Overview of web app rendering techniques
Tech Community Events in 2021
Kiwi's Google Data Catalogue Adoption Journey
CatBoost C++ library
Nonstop Operations with Scylla Even Through the OVHcloud Fire
How to Download a Brain with Pair Documenting
Cypress.io quick tip: Put elements in the context
Faster pipelines with Knapsack Pro by parallelizing Cypress tests on GitLab CI
Skip the UI using API calls
Kiwi.com Nomad — the synergy between science, technology, and creativity.
When & which UX Research method to use?
Pytest Cassettes: Forget about mocks or live requests
What is UX Research?
How do we use Terraform and Vault to deploy Cloud Functions?
What is UX?
Almost 100% uptime & Blazingly fast API responses? Cloudflare Easy.
Covid-19 and its impact on Engineering work at Kiwi.com
It’s Hacktoberfest time!
Cypress: Setting up the first acceptance tests in Gitlab CI pipeline
Hacking Node.js legacy URL API
From coding the first Kiwi.com algorithms to “But does it scale”?
Back in 2012 Jozef Képesi co-founded Kiwi.com (formerly Skypicker) and created the first functional version of its search engine. Many things have changed since then, the company grew from two to hundreds of people and has been to some ups and downs.
Towards secure by default Google Cloud: Default service accounts
Developing a travel-related game in 6 days using Flutter
Kiwi.com to offer a clear career path to every engineer
GraphQL 101 Challenge
Inbox Zero and Message Throttling in Slack
Find a flight using Kiwi.com and Postman
Working remotely during and after a pandemic
5 Reasons to Write a Document Before Writing Code
Get a free ticket for Machine Learning Prague 2020!
Wrap-up: code.kiwi.com events in 2019
Schemathesis: property-based testing for API schemas
React Native at Kiwi.com
Kiwi.com sponsors one of the biggest IT hackathons in the Czech Republic
Designing GraphQL schema for Kiwi.com: Part I. — Why?
How to work with developers? A few tips and tricks from a product manager’s perspective
Get to know Penguin Bots, the winners of Global Travel Hackathon
Kubernetes goodies for your local workspace
Orbit, Kiwi.com’s design system, has new documentation
Get to know the winner of Kiwi.com Student Challenge and his project
5 reasons you cannot miss the Global Travel Hackathon
Readability counts even in code reviews
Get a free ticket for WebExpo 2019
How I learned to stop worrying and love test-driven development
Kiwi.com at EuroPython 2019
Look back at Voice Travel Hackathon
Things I learnt as a first-timer at WWDC
Building a Python CI pipeline
Highlights from WWDC 2019
Infrastructure-as-Code: what is it and how can you use it?
5 reasons you should apply for Kiwi.com’s Summer Camp for senior devs
Pushing static type checking in Python one step further
Kiwi.com’s Women in Tech inspires women to pursue career in tech
Guide to advanced UI tests on iOS
Join the Forum on Women in Tech 2019
mDevCamp is coming, get yourself a free ticket!
Relay and GraphQL best practices
Join the Central Europe Tech Week
Kiwi.com to kick off its own university
Say goodbye to loops with ‘reduce’ ????
A pre-talk checklist for the stressed presenter’s peace of mind
Forget the tape measure, use your phone instead
Solve Our Challenge and Get a Free Ticket for ML Prague — updated with correct answers
Events in 2019
Wrap-up: code.kiwi.com events in 2018
Merry Christmas and a Happy New Year
Travelling Salesman Challenge 2.0 wrap-up
PyCon2018, the BLKN style
Win a trip around the world based on an algorithm you write!
Testable code: making the (testing) world better
Solve our coding challenge and get a free ticket for WebExpo
Takeaways from EuroPython 2018 in Edinburgh
Solve our coding challenge and get a free ticket for WebExpo
Coding at the Kiwi.com Summer Camp in Barcelona
ZuriHac 2018: getting to know the Haskell community
mDevCamp brought speakers from around the globe & we couldn’t miss it
The Forum on Women in Tech was not your ordinary conference
Kiwi.com Mobile Team is going to mDev Camp, win a ticket & go too
Join our Forum on Women in Tech
20 Things To Do After Returning From PyCon 2018
Kiwi.com Summer Camp for Senior Devs
How ARKit could save you at the airport
Kiwi.com’s Internal IoT Hackathon
Relay Modern data flow visualized
Memory efficiency of parallel IO operations in Python
Announcing Crane — a GitLab CI-ready image for deploying to Rancher
IDX + GraphQL = ❤️
Our Comprehensive Guide to Python Dependencies
GraphQL pitfalls
ASS Pyramid (Approach to Solving Stuff)
GraphQL: Server-side Subscriptions
code.kiwi.com’s 2017 in numbers: growing our tech community
Living in the data
Highlights from the React Day Conference
Reactive Conf 2017 in Bratislava: Firsthand emotions
Brno's First Blockchain Meetup
Python Brazil 2017: “People > Technology”
Our Mobile Team’s trip to Prague for AppParade
Machine Learning Weekend: entry task review
Kiwi.com’s future with Experience Design
Why we can’t estimate or let go
First Free Code Camp Meetup in Brno
Code Design Principles for Public APIs of Modules
Upcoming events
Why we use Framer at Kiwi.com
Language Hackathon 2017 : breaking barriers
Engineering adventure in Brno
Adventures of the Sangria Familia in Barcelona
A new venue for Brno’s tech community
Getting started with Framer
Barcelona, see you next year
Helping the Python community grow
Move the picture!
Hacking Brno for a good cause
Python Hackathon II
SourceLift: flights for open source teams
Travel Hackathon — Prague 2017
And the best Kiwi.com hacker is…
Kiwi.com’s new Barcelona office
Travelling Salesman Challenge — Recap
Our champion has a heart of gold
AIESEC Brno’s training conference
Kiwi.com supports a school team in a tough robotics competition — success!
Lesser Known Tools We Love at Kiwi.com, Part 2 of 3: Mac and Web
MATLAB Meetup on Signal Processing
Кiwi.com Brno-Moscow Python Meetup
Testing and How it Actually Saves Time ????
Django Under The Hood 2016: Performance Debugging
Django Under The Hood 2016 : Validation
Open source community meeting in the Kiwi.com wine cellar
Design and implementation of algorithms for digital signal processing
Google Calendar for IT Events
Christmas LAN Party OpenTTD
Reactive Brno Meetups: 2016#5 | Matúš MATY Fedák
The top 5 of effective React
Docker meetup
Lesser Known Tools We Love at Kiwi.com, Part 1 of 3: CLI
Python weekend
Drone Guerilla Recruitment
How to Find a “Silent” Bug
Brno Golang meetup #3
Python Hackathon
Reactive Conference in Bratislava
Kiwi.com Data Challenge
The 1st Elastic search meetup in Brno
Travel Hackathon
The 1st meeting of the Brno MATLAB Meetup Group
No results found. Try another search.































































































































































