Google 20% time volunteers have been rewriting the ITA Matrix flight search app
flyertalk.com
flyertalk.com
It was built by ITA Software [1][2] in the early-mid 2000s (the earliest mention I can find of it is in 2004 [3]) to test and showcase the capabilities of their flight search platform. I once heard that ITA and other consumer-facing flight search companies had tested that kind of UI with ordinary users, but found that not enough people understood or liked it enough for them to justify making it a mainstream interface.
Hipmunk, a YC-backed flight search site that launched in 2010, was heavily influenced by the ITA Matrix UI, after co-founder Adam Goldstein had found Matrix to be the best way for him to find flights when travelling around the world for college debating competitions. And while Hipmunk did a good job of being more consumer-friendly and popular than Matrix had been, sadly they didn't gain enough traction to make it as a standalone company, and after being acquired by SAP/Concur, it was shut down last year.
It's an interesting, and perhaps depressing case of a product design concept being far superior to what's available in the mainstream for a certain class of user, but cannot gain enough mainstream acceptance to be a viable business or even a well-supported service for those who love it. And far more than most other product categories, flight search has huge infrastructure costs, so it's very difficult to economically sustain niche products (from grim personal experience of being part of a team trying to build a novel flight search product ourselves).
In this case it's just lucky that Google owns the infrastructure and has enough enthusiasm internally to keep it going to some extent.
[1] https://en.wikipedia.org/wiki/ITA_Software
[2] https://xconomy.com/boston/2008/12/17/ita-software-the-trave...
[3] https://www.fodors.com/community/europe/customs-question-sea...
Also looks like they're building a successor to Hipmunk called Flight Penguin: https://flightpenguin.com/
[and yes… that was why we went with a sub model over pay per use]
Not sure I would put it as strongly as that.
Hipmunk was OK, one of "the better" free tools out there.
But I'm afraid it never had anything on ITA Matrix. ITA always had copious amounts of extra special sauce.
I extensively tried all competitors I could find (including Hipmunk) on a variety of real-world scenarios. Nothing ever came close to ITA and I was very worried indeed for its future when Google bought it.
Hipmunk actually let you use ITA syntax to search for very specific route constructions, which you could then buy.
If that doesn't work and you really want a specific itinerary, I've had good luck with amex travel concierge, where I provided them with copy-paste of ITA matrix and they made the booking.
p.s. Google seems to be the worst at bait and switch, but that's different story.
I booked tons of tickets over the years using ITA as a basis.
Its not that difficult. Get the itinerary finalised in ITA and then either:
(a) Head over to the appropriate airline's website and enter in the legs; or
(b) Call up the appropriate airline's reservations callcentre
In 99.99% of cases, I was able to do it all online without speaking to anyone. There was only a tiny number where I had to call them up.The savings achievable via ITA far outweighed the minor inconvenience of double-keying.
But calling a travel agent has always worked.
But ITA was so comprehensive you could find loopholes, like when you add an additional destination and your first class ticket drops in price by 50% etc. It is super missed in the mileage community!
How did Hipmunk mess it up so bad? It was seriously one of the most pleasing web apps to use, even under time pressure.
The comment you replied to seems to have a fair assesment of why it failed
>It's an interesting, and perhaps depressing case of a product design concept being far superior to what's available in the mainstream for a certain class of user, but cannot gain enough mainstream acceptance to be a viable business or even a well-supported service for those who love it. And far more than most other product categories, flight search has huge infrastructure costs, so it's very difficult to economically sustain niche products (from grim personal experience of being part of a team trying to build a novel flight search product ourselves).
Could you please elaborate? What makes a flight search so expensive?
Directs are a trivial problem.
1-stop indirects is a simplish batch processing problem to produce an easily indexable data set.
2-stop indirects is a huge quantity of computing power.
In order for your flight search product to be useful, you need a database containing effectively every flight in the world - all the airlines, all the destinations - and you need to update it every time a fare or seat availability changes. Then you need optimized routing algorithms to find routes that accommodate a vast array of consumer preferences. So, there are giant costs just to get access to all the data in the first place, then write the code and run all the servers.
ITA Software offered this as a service via an API, but since a couple of years after Google acquired them they stopped offering access to outsiders.
Now the GDS companies (Amadeus, Sabre, Travelport) offer API products, but they are still very costly, so big transaction volumes are needed to justify it.
There is now one way small/niche businesses can offer flight search and transactions fulfillment; a YC company called Duffel. They still only offer a narrow selection of airlines, but it’s growing.
Some other companies like Skyscanner offer access to their API, but only if it’s in their interests (ie, if you generate sales for them; you can’t make much revenue for yourself that way).
But travel agents died with the internet.
The whole acquisition was a huge failure on the part the DoJ Antitrust Division.
The hard problem the flight search engines solve is initially for the airlines. They have aircraft of different capacities, ranges, seat types, and so on. Then, different tiers of fares based on seat type, advance purchase, refundability, add-ons like priority boarding, bag fees, inflight wi-fi, etc. Then, a "flight" is some combination of actual flight "legs" (single takeoff + landing).
So, airlines want to maximize revenue. To do that, they set available inventory levels for many of the unique combinations of all the variables above. Perhaps, for example, only 10 of the "deep discount" point-a->b->c coach seats, but 50 for the highest priced b->c leg. Oh, and the price is higher on day "X", because some popular sporting event is held in city "c" on that day, and the morning flights priced even higher.
If you extrapolate then, you can tell that someone wanting to fly from a->c has a lot of different possible fares, with each fare having a different number of available seats to sell. And all those variables are changing underneath your search, all the time. And, you're obligated to show actual fares, including taxes, fees, etc, which vary dynamically by airport, pax type, etc.
Companies like Amadeus, Sabre, Travelport, and so on did a reasonably good job over the years of exposing APIs to both airlines and travel agents to search these. ITA came along with a more computer science based approach and made the shopping part of this much faster, with more results, flexible, more tunable by the airlines, etc.
http://www.ai.mit.edu/courses/6.034f/psets/ps1/airtravel.pdf
There aren't many computing platforms that could offer a higher profit margin per byte stored or queried!
Pretty much any other computing service has a better ROI.
You can’t easily prune the tree on cost or time because you don’t know my preferences. You might notice that most pruning is done only on segment count, with (almost?)no one by default showing itineraries with 2 additional segments over shortest. I might prefer a carrier (I do), but even if I do, I still want to see the other choices, because my preference isn’t thousands of dollars strong.
Rather than 10 queries per seat sold, I’d not be surprised if the actual query count was 10K or more.
This was my first real job after graduating, and one of my roles was industry research and putting together a weekly newsletter of interesting technology to keep an eye on and when ITA released Matrix we loved it.
Long story short, we wanted to do a lot of things like this, but our airline (and most others) were not developing our own tech and instead using some technology from the major GDS companies (Amadeus, SABRE, Galileo). One project I was on was working to try and implement just a basic fuzzy date search (eg +/- 3 days of your preferred date) and our GDS was quoting us something like $3M and 12months to deliver.
Luckily we had an exec who understood business, technology, and design and got resources to build out internal technology team and we started building our own technology that freed us from some of the constraints of GDS to great success!
https://matrix.itasoftware.com/
Playing with this version, it's a little easier to use, but I don't see any functionality not in the regular version. Still, if it means Google is investing in Matrix, that's a good thing. I always worry at some point it will be killed.
Error: Service Unavailable for me.
The new design in the OP is still decent compared to the alternative websites, but slower and harder to use compared to this original design (to me, who had never heard of Matrix before).
It's a shame that this is going to be gone soon.
This isn't Google investing in Matrix, this is a group of people who work at Google using their spare time to rewrite the product so it doesn't get taken offline.
If anything, the lack of a dedicated team or resources is a strong indicator that Matrix will be on the chopping block at some point in the future.
<end of line>
@iakh is a legend!
Can’t win em all I guess.
As a frequent traveler thank you so much to all for the work on this.
The reboot is much snappier than the old ITA, and it now supports mobile properly! Looking forward to using. Glad Google engineers are applying their decades of experience honing Traveling Salesman type interview questions to the real life problem.
And covid uncertainty these days has made proper flight hacking a bit of a pastime.
https://princeoftravel.com/blog/airline-secrets-what-is-fuel...
Can I ask where is good to trade info and stories about this stuff? I have been on FT for a long time, but never came across this level of fare exploration. The extent of my enthusiasm is years ago jumping on things like the Icelandair or BA WT fare mistakes. Never actually searching / generating fare loopholes.
Maybe I'm reading the wrong forums. Even just to hear about it interests me (to know what I'm missing out on)...
I for instance would never post the hacks I’ve discovered, and would only share them with a select few. It’s self preservation, but once they’re known, travel bloggers spread them and every Karen ends up doing it.
How come? Is it related to SEO?
I have no particular insight here beyond a general interest in the industry though.
(e.g. 4-5 international airports reachable within 1 hour drive, another 2-3 reachable within 2 hours drive, flexibility to search across all of them).
The other flight search tools that I've used might, at most, allow one alternative airport.
Being used to Kayak‘s comma syntax, I did not find this intuitive at first. But in fact, it is pretty convenient and powerful.
So they're rebuilding the app in TypeScript with Angular instead of with Java+GWT.
GWT, as you suggest, is definitely a dinosaur.
> rewrite Matrix using newer web technologies like Angular,
How long until Angular goes the way of GWT, though? It's not exactly a beloved technology. Not quite the same level of pain as GWT, but Angular codebases aren't something I'd like to maintain either.
Every service team at that time chose their own tech stack, and so sometimes I would hunt for ideas of how to implement something in other team's codebases, so I got to see the different tech stacks.
For a brief moment Angular was really popular, and then fizzled out just as fast. For me, it was the worst of all the options by far.
https://www.theinformation.com/articles/google-brass-set-202...
Once you figure out build step and magic incitation to make debugger work (and docment it), It's really not bad,
and maintaining is easier then most other "older" codebases I come across. Old rubby/php/javascrip(jQuery/whatever) project is usually pain because they all use tons of external packages/libs that you have to update find new ones etc every time you take project off the shelf. With GWT and Java it just works, because we didn't use that many other libraries and Java libraries generally put a lot more effort in backwards compatibility.
So no I would not start new projects in GWT anymore, but I think that current react projects will be a lot harder to maintain in 10 years, than GWT is.
Frontend development is an extremely fast moving field and claiming a "clear winner" makes no sense.
Having said that, I agree that Angular may not be the best option in the general sense, but given that it is a Google-backed framework, they probably have the best talent available to build tools efficiently.
The equivalent React/Vue/etc would throw a Javascript exception. Stacktraces aren't the best debugging experience, but they're functional.
I also think Angular inherits from a more traditional UI lineage of composing styling on an element, which I find less clear than something like React that has a more backend-y development flow. That's just personal preference, but I started on the backend so Angular's "build an element and then wire it up" makes less sense to me than React's "figure out the data flow and then build elements on that" style.
I don't find it showstopping. I wouldn't turn down a job because they use Angular. If someone asked me what framework to use, I just probably wouldn't suggest Angular.
No. It will not even compile.
- Search for a date and no destination to get the best deals for that range
- Search for a destination but no date and get a month matrix with the best rates to travel to that destination.
Of course they were barely used by paxs, but I liked very much to leave these kind of easter eggs for more advanced users.
Like it's just assumed that every project estimate will be added 20% to account for 20% time?
Like it's great when you're a market gorilla dominating the competition in search, but how does it work when you're #3 in the cloud and trying desperately to compete with Azure and AWS from behind. Do those people get 20% time too? Seems like a recipe for always staying #3...
And that furthermore the 20% projects can have value to the company. Wasn't Gmail someone's 20% project?
From what I understand the rule is that you get to choose what you work on, but it has to align with the company.
So what you end up with is that your most talented/intelligent staff end up working on, and learning about things that they think are interesting and will help the company.
20% time varies widely across the company, and the ability for an engineer to take their 20% time isn't as sacrosanct as it once was. On many teams it's discretionary depending on current team load (though on the teams I was on, generally granted if only as a matter of maintaining morale). Not everyone has a 20% project all of the time.
People still have deadlines, but the amount of work you commit to doing for a particular deadline is scaled by people's availability - and that includes any 20% work.
It's generally not useful to think about project estimates as padding 20% extra time - because deadlines tend to be exogenous (holiday seasons, launch events, etc.) and less negotiable, and more as scope of work that can be committed to in a particular period, which is something you actually have control over.
The whole thing is optional for us anyway and in fact needs to be approved every 3 years.
And I'm not really 100% occupied at work anyway. If I were, how would I fit in learning, networking etc?
Plus: positive effects on employee morale/retention, skill and network building, (pseudo?) R+D / asset development, etc.
Disclosure: I’m far too dumb to work at Google. Discount accordingly.
I've yet to see anyone work 100% of their work time.
So yeah, it's better to codify "procrastination time" as 20% and motivate people to not feel guilty when working on something different.
People will mess with fancy tech, crazy projects and not only learn from it, but also feel less burnout
Allegedly (I can't verify, but can't see why they'd lie) GMail, Google Maps and AdSense were all born out of people's 20% time and Google just swooped in and turned them into full on products.
It might be worth staying #3 in cloud if they could pull off products like that again. I can't help but notice that those products are all old, though.
[1] https://en.wikipedia.org/wiki/Lars_Rasmussen_(software_devel..., https://en.wikipedia.org/wiki/Jens_Eilstrup_Rasmussen [2] https://en.wikipedia.org/wiki/Google_maps#History
Google Maps started off as KeyHole, a technology company that was funded by In-Q-Tel aka the VC arm of the US Central Intelligence Agency (CIA), it was acquired by Google.
https://www.iqt.org/news/in-q-tel-announces-strategic-invest...
https://medium.com/insurge-intelligence/how-the-cia-made-goo...
When your "real job" is too busy, gets dropped. When you are ahead of schedule, it gets pulled out to keep you from idling.
It doesn't have to be literally 20% of your time every day, week or quarter, although some people structure it that way in practice.
(Also, while much of the "business logic" was written in Lisp, a good chunk of low-level stuff was written in C++.)
Is that true? They have a team of people working on SBCL and at ELS a few years after the purchase by Google they were talking about SBCL work to support the app.
I worked for Orbitz during the era when ITA was still independent, and we used their flight search software in our backend. ("QPX" might have been its product name, that used Lisp, but been a while.)
I use azair.com for that, although it seems to be quite technologically primitive behind the scenes(complex searches take a long time).
Or what did you mean by complex searches?
Ah the good old days.
This was by far the most useful tool to identify cheap segments and cut down the space of options.
Ahh the most Google reason ever
Ie. give me the most circuitous route, so I can explore the world.
Yet nobody seems to have done this.
I definitely don't want google messing around with that. It should stay unbiased and decentralised.
..right?
Now that they are dominating several areas they think monopoly is great and open interfaces bad.
It's just not federated, just like Gab 2.0 :-)
And indeed like zaik said below, they used to do XMPP and stopped it. XMPP is pretty good too these days by the way. But I prefer Matrix because of its bridges.
> Software intercompatibility is trending toward zero. Text chat apps are literally the easiest thing in the world to imagine making compatible - they just send very short strings, very rarely, to very small networks of people! But I use at least 7 separate ones because every vendor wants their own stupid castle and won't share. Don't even get me started about books or video.
So now I'm just waiting until Dendrite or Conduit become fully featured to deploy one of them instead. I'm looking at matrix hosting long term, and synapse is not long term.
Matrix.org has terrible performance, it's really a proof that synapse doesn't scale well.
I know people who've been hosting the same XMPP server for decades. So this really shows the immaturity of Matrix. I still believe in it but it needs some more time.
No problems so far and performance has been steadily getting better. There was a low period when performance was not up to par about two years ago, but ever since that's been fixed, it's been smooth sailing.
Also, what's the other Chinese implementation you're talking about?
https://github.com/finogeeks/Ligase
This is the Chinese implementation. From the README and website it seems its being heavily used in production but the website is Chinese so I dont know for sure.
On the other hand, both Dendrite (Go) and Conduit (Rust) are usable on the public network, despite being beta. There are some missing features, but people can and do run them for real, and both projects are super promising - and with more contributors, they'll land even sooner.
Needless to say, this has absolutely zero to do with ITA's Matrix flight search system :P
“dedicated Google “20% time” volunteers”
strike anyone as a bit “army intelligence” like?
Maybe I don’t understand, these are Google employees, right? Why are they volunteers too? Google gives employees a day long sabbatical once a week, thus 20%. Aren’t they paid to work then? What’s so dedicated about their offsets?
Wouldn’t it be better to say something like
“A subset of Google employees chose to use their weekly sabbatical time to retire technical debt for Matrix”?
Anyone have tips for finding a chill team at Google? Passed all interview rounds last time but decided to join another company. Might give it another go if I can get one of those <20hr gigs...
The last 20hrs have maybe a 20% return, and I work quickly anyways. I also skip BS meetings.
My managers have always respected me despite me working obviously fewer hours. Quality of work + meeting your goals > some meaningless metric.
You could pick a thing to work on outside your normal job and they’d “give” you time. However you had to basically justify it to your manager. This also hilariously ended up in having to plan OKR style achievements for your spare time project. So it was another, voluntary layer of micromanaging crap added over your real job.
Indeed that's really funny in an absurd way.
Genuinely curious.
Whether those hours end up being unpaid overtime ("120% time") or not varies wildly from time to time and team to team, in my experience there. I had a real 20% project while I was there ~8 years ago (porting modern Linux to a vendor device Google used internally), but I also stayed late quite often too; I can't say I know for sure how it added up in the end.
Disclosure: Google employee, opinion my own.
You are right, but that blog post is using volunteer in the weaker (but nonetheless common) meaning of "someone who raises their hand to do something". 20% time, when done properly, is more of an employee wellness and career/skill building perk. It is like your employer giving you paid time to take a class or training that is related to your job.
Every sane boss I’ve had has been happy if I do things that are good for the org, doubly so if they were ideas that I came up with myself for efforts that wouldn’t have happened otherwise. Is 20% time different from this somehow?
It's fine if you don't have the same expectation when referring to Matrix here on HN, but you can't expect them to cater to your understanding on every site.
[0] - http://matrix.org/
[0] http://www.demarcken.org/carl/papers/ITA-software-travel-com...
Shucks.
Though I doubt it's on Google's radar so far as a serious competitor.
surprised that they're only replacing the frontend, and with a framework that many wouldn't consider new