ABSTRACT. Redux is a predictable state container for JavaScript apps. It is really popular in JavaScript environment. In my presentation I would like to show how can we use Redux in a native application development (my examples will be in Kotlin language on Android however this topic could be useful for iOS developers too).
Redux is a pattern and it can be used either iOS or Android project.
I will use in my presentation my own redux implementation: https://github.com/petnagy/koredux (it is written in Kotlin for Android developers)
Redux is a great pattern with help of it we can easily create a unidirectional data flow. Because of this we can easily add new (ui or business) feature to our application.
In my presentation I would like to show some solution how can we add Redux to our existing architecture.
I will talk about how can we solve the navigation between pages help of Redux. And how can we solve (view / application) state management problems.
I would like to show an example how can we use Redux with some popular Android libraries like:
- dagger
- retrofit
- RX
My example is available here: https://github.com/petnagy/redux_playground
ABSTRACT. The Front End frameworks fever is not extinguished yet, many choices are available and picking up one to build an infrastructure atop that will last at least 5-10 years is still a fortune-telling task. Similarly to the backend revolution of microservices drive by container tech like docker, Web Components are coming to the Front End with the same power to break the UI-Monolith, to empower flexibility and build a UI tech stack that can better stand the test of time.
This talk will focus on the concept of "component", how the different frameworks have interpreted it and how the w3c standard is changing it again, and what advantages they bring to UI development compare to how websites have been widely developed so far.
APDEX: how to monitor users' satisfaction about Hotels.com services
ABSTRACT. APDEX (Application Performance Index) is an industry open standard that defines a standard method for reporting and comparing the performance of software applications.
Its purpose is to convert measurements into insights about user satisfaction, by specifying a uniform way to analyse and report on the degree to which measured performance meets user expectations.
APDEX is a concise Service Level Indicator (SLI) that can be used as a starting point to create a simplified Service Level Agreement (SLA) solution that gives application owners better insight into how satisfied users are, in contrast to traditional metrics (like response time percentiles and error rates) that are really depended from the application behavior (like different response time).
Hotels.com Bumblebeez team created a configurable STYX plugin to monitor APDEX for all Hotels.com edge services, creating a single-pane glass view for each mobile APIs, this approach is going to be followed by all other Hotels.com edge teams.
Cross-device testing for more resilient front-end development
ABSTRACT. With the increase in mobile traffic and the company-wide initiative to improve our mobile experience and conversion comes a requirement to support a wider array of devices and browsers.
For instance, landing pages receive traffic from more than 40 OS - OS version - browser combinations and the fact that we leverage modern front-end tools like React and typescript means that we are more likely to encounter devices not supporting our tech stack. This has happened multiple times already.
To remediate this, we use Browserstack, an on demand cloud service that provides access to real devices on which you can run automated tests.
In this talk, people would learn about:
1. How we monitor device usage to determine where to put our focus.
2. How we use selenium web driver to perform automated action on our pages.
3. How we run the selenium web driver tests on browserstack on more than 6 devices.
4. How we integrated that process into our pipeline to catch cross-device issues before they get to prod.
Intended audience: Anyone with a basic understanding of Javascript and front-end development can understand the session.
The session should last 30-45 minutes, i can adapt based on the time allocated if the talk gets selected.
ABSTRACT. Compute is the first cost center of our cloud expense at Expedia. AWS offer various ways to optimize how we use resources in the cloud. One of them is spot instances and it can provide up to 80% of savings compared to on-demand price. However spot instance is not well known and there's a lot of suspicion and skepticism on wether one should use spot instance or not.
This presentation will highlight the facts behind spot, the pricing model behind it and how to learn the rule of the game to use properly use such double-edged sword. We'll go through the experience of the Geo team, who runs 30% of compute on spot, explain the lessons learned and describe the strategies put in place to manage the risk related to spot.
Does saving money sounds like an interesting idea?
ABSTRACT. This talk will be an update of what was presented in the mobile xtech week, months ago.
Last time, we went through all the tools used by the Egencia Android team. Since the last talk, we worked on the iOS ci/cd pipeline, investigate cloud builders, and came up with new processes and tools.
We will cover:
- iOS automation with swifter + XCUItests
- iOS UI tests run in firebase with flank
- Docker images for ci
- Github enterprise migration
- Building in the cloud with a SaaS
ABSTRACT. Availability and Quality are Egencia's top Tech and Product priority.
We would like to share our success story of Egencia Trips System - challenges we faced, lessons learnt and opportunities we explore.
Egencia Trips System is Egencia's one of the core systems which is responsible for Booking data acquisition, management, and distribution to multiple online channels like web, mobile, IVR system. It is also responsible for asynchronous data distribution to internal applications like TRM, Expense etc.
Below are a few points we would like to share
1. Resiliency challenges - One of the early adaptor of Egencia's Single Global Platform, Trips system deals with many legacy services and dependencies. Trips system was affected each time something goes wrong in legacy or global stack.
Hystrix implementation, and post implementation business impact.
2. Test Automation challenges - Trips System sits in the middle of the tech stack and support both legacy and global at the same time. This was making tests break more often as changes happening in the stack. Came up with a component-based testing strategy for UI acceptance tests to isolate Trips use cases.
3. Data distribution for offline consumption e.g. TRM, Expense use case.
4. Cloud migration - Adoption of new deployment pipeline and CICD to enhance our ability of contribution model where teams can contribute to Trips System with more confidence.
What's next?
1. Strategically decoupling monolithic components and enhancing our micro-service architecture for Trips echo system like Action link service, Visa service, Receipt service etc.
2. Exploring caching solutions like Redis and Elasticache to improve response time.
3. Building on top of Asynchronous data distribution - Data lake and more opportunities for personalization.
ABSTRACT. Even with careful planning and analysis, systems always seem to find ways to fail in unique and interesting ways. And while as engineers, we try to prevent failure, we must accept that complex, interconnected systems will fail and testing must not only include testing use cases but also understanding the fault tolerance behaviors of our systems when they do fail.
Chaos testing is a methodology used to describe testing by injecting failure into your systems or that system’s dependencies to ensure that when we enter a failure condition, our systems fail gracefully to prevent loss of data, irrecoverability of operation, and needlessly excessive system downtime. Chaos testing can be as simple as disabling a node in a highly available cluster, or even a service itself, but in practice failure states are not limited to a binary on/off state for a system. Unexpected latency, incorrectly formatted or partial results, expected error codes, and intermittent behaviors from downstream services can cause the upstream service to itself become unresponsive or unstable.
Historically, EPS hasn’t done much in the realm of chaos testing and have been more reactive, based on our postmortem analysis of production incidents, with these types of issues. As we increase traffic and continue to grow our business, this approach will ultimately lead to loss of revenue and frustrated partners. We knew that we needed to add some sort of chaos and resiliency testing as a standard that all teams could easily adopt and implement for their services to verify they can handle outages gracefully in production.
We began our journey toward chaos testing by implementing a proxy service that works with HTTP/HTTPs services and has the ability to inject latency, http status codes and even response bodies into the requests. The service was built using the already familiar EPS Tech EDGE framework so adding additional functionality was as easy as adding a new handler and deploying the proxy service. The existing handlers are all configurable via rest endpoints so that teams don’t have to redeploy to change the latency or the distribution of http status codes.
This was a first step toward chaos and resiliency testing, but it provided a foundation that teams could immediately begin using to test known issues with scaling and handling problems in critical dependencies. Automation around these types of tests can then easily be extended in the future.
With our growing business, we need to switch from a reactive to a proactive mentality with our services and make sure that they are resilient to different types of failures - and one way to do that is by chaos testing. We need to start testing our services for failure scenarios before it happens in production so that we have the confidence that we can handle failure gracefully and recover quickly. This will reduce engineer time spent working on outages, reduce time to recovery, and lead to satisfied partners.
ABSTRACT. Network Spoofer is a software module we built in-house to intercept network calls, allowing record and replay of HTTP responses in Apple's ecosystems applications (iOS, watchOS, macOS, tvOS). Request-Response pairs can be recorded in the disk to allow replay later, speeding up development and test cycles and allows predictability to automation tests.
We will discuss the need we had to build this software, current use cases, and how easily other teams can integrate it via dependency management.
ABSTRACT. Egencia is the Corporate Travel Management wing of Expedia Group that manages travel for close to 17K companies worldwide.
Authentication and authorization in corporate travel is a different beast altogether when compared to leisure travel.
It has to combine enterprise level security with ease of use for business travelers.
SAML2 is the industry standard for achieving Single Sign On (SSO) on Web but it falls short on native mobile apps where OAuth2 rules the roost.
Most of the Egencia clients use SAML2 to authenticate their users when interacting with Egencia services.
Till now, Egencia used a hybrid approach of using OAuth on mobile and SAML on web for SSO companies.
This meant Egencia authentication system on mobile had the following drawbacks -
- Mobile user's credentials are different from his/her company SSO credentials
- Many companies were not comfortable relying on Egencia storing their user's credentials
- Managing user credentials for SSO companies was a huge waste of effort and resources for Egencia
SSO on Mobile for Egencia App was an initiative to marry SAML2 based authentication with OAuth2 based authorization to overcome the above shortcomings.
We will be discussing the following aspects:
- Approach and implementation specifics
- Technical challenges that we faced in achieving this
- Balancing client's security concerns with the mobile user's expectation to stay signed in forever
- Enabling stay signed in feature
The SSO on Mobile feature was rolled out early this year with "Stay Signed In" feature being rolled out in October.
Icing on the cake was that the framework built for SSO on mobile solved almost all the problems that we were to face in Virtual Assistants integration in Egencia.
Evolving Production Codebases: An iOS App Developers account
ABSTRACT. Working with code is not just about consuming programming interfaces. There comes a time when a codebase has to go through fundamental changes and evolve into supporting new business features.
My talk is an iOS developer's account of one such feature - building Muti-City flight bookings for Expedia Bookings iOS App.
I will be sharing my experience of undertaking the project - right from understanding the feature from a user's perspective for edge cases, to designing a solution in form for several self contained transformations, to planning their execution, estimating effort, and the challenges faced along the way.
It will help beginner and intermediate programmers gain a perspective on how to look at code and transform it into the desired state - all while being deployed in production.
Leveraging Serverless Technologies To Develop A Scalable And Cost-Effective Incentive Reconciliation Service
ABSTRACT. As Expedia is migrating from on-prem infrastructure to the Cloud, a pure lift-and-shift might not be the most cost-effective and efficient option. Leveraging cloud-native technologies might make the service cheaper to deploy, scalable and require lesser operational overhead.
The Incentive Reconciliation service supports multiple Expedia-partners like Bank of America, Chase, Royal Bank Of Canada etc. that use Expedia to manage their Loyalty Points offerings. The service reconciles hundreds of millions of dollars of transactions per year that directly add to Expedia’s revenue. Also, multiple newer partners are being on-boarded onto the Expedia platform, requiring the service to be scalable.
When migrating this service from on-prem to the Cloud, we realized that re-architecting the service to use Cloud-Native technologies would have many benefits. We used AWS Lambda, DynamoDB, SQS and other technologies to build this service on the Cloud, and it is designed to be completely serverless. Following are benefits we’ve observed:
1. Cheaper to deploy from a Cloud-cost perspective
2. Cheaper to maintain because of lesser number of engineering-hours required from an operational perspective
3. Scalable to support newer partners and corresponding increase in number of transactions
4. Faster to on-board new partners because of not requiring addition of infrastructure
As part of this paper presentation, the audience will learn about multiple Cloud-native serverless technologies. We will be discussing our architecture, learnings and challenges we observed during building this service. The technologies used are:
1. AWS Lambda
2. DynamoDB
3. SQS
4. SNS
5. API Gateway
6. CloudWatch
This can be useful for many other teams in Expedia which are in the process of migrating to the Cloud.
The paper presentation will be open to audience across all levels of experience - beginner, intermediate and advanced. The talk is expected to take 15-20 minutes.
ABSTRACT. The BEX Group Mobile Team manages 9 brands in a single codebase. This makes it difficult to manage and maintain code quality and smoother releases for all brands. To ensure code quality, we write the JUnit tests for Java classes, Robolectric tests for classes which has android framework dependencies & Expresso Tests for integration tests. But there is no tools available in the market to test layouts which we create, be it XML layouts or custom views.
So we took the initiative and wrote a library which can help developers write layout tests for android.
Layout Testing Library for Android enables you to write unit tests which test the layout of a view in multiple configurations. It tests the view with different data sets and different view sizes. The library works in both Java and Kotlin.
The library ensures that no element in a view is going out of bound of its superview or overlapping with any other view. It uses android instrumentation to test the layouts, capture screenshots if any test fails and creates a report after running tests.
It also helps the designers to see how the layout behaves with different size and data configurations.
Applying Data Science to Recommend Listing Image as a Destination Image
ABSTRACT. Destination content service serve images and text. These images are visible on search landing pages, home pages, merchant landing pages, theme pages etc. The purpose of this initiative was to use listing images as destination image for those destination for which we don't have any image in catalog. This will help us in increasing destination coverage. Only those listing images which are of high quality and are outdoor images can be used as destination image. Currently at homeAway we purchase a destination image for $75. With this effort, we will be saving a lot of cost which goes into purchasing these destination images. Specifically, we consider the hierarchical classification of vacation images; at the highest level, images are classified as indoor or outdoor; outdoor images are further classified as city or landscape; finally, a subset of landscape images is classified into sunset, forest, and mountain , beach etc. Destination images, often called "hero images”. All 30 million HomeAway images have been classified and tagged. These classification tags can help in future in recommending top beach destination or hilly destination.
Topics to Cover:
• Data science model for scoring and tagging listing images.
• Places365 - Content team - Pre-trained model used to classify image context (indoor/outdoor, room type, high level object detection).
• Places2 - Updated model to classify images and tags.
• ZZ Aesthetic Model - This model provides a score for the aesthetic of an image.
• Algorithm to find the listing images with Max outdoor tags.
• A/B testing using Abacus - Image vs No Image Test
At the end of this session, audience will have an understanding of the points mentioned below:
• Be familiar with the latest trends in Data Science.
• Become familiar with data science models used for classification and scoring.
• Basic knowledge of abacus framework.
How long will your session last? - 45 min
What level of experience the audience needs? beginner
ABSTRACT. DevOps Maturity Model – This an automation to enable a deep insight for Developers/Product owners to self-assess about the DevOps capabilities they have for their application. We have three of these tracks implemented (Resiliency, Cost and Security) but more work needs to be done around those. E.g. one App owner can see if they have insight into their Security side of stuff (PCI, GDPR etc.) and can self-assess to improve on missing areas. Dynamic reporting will also be generated to showcase those capabilities from bird-eye view for portfolio owners etc. and to help them drive improvements around their application stacks.
ABSTRACT. At Egencia, our team works on microservices architecture and we aim to reach continuous deployment. So we try to develop efficient tests to give confidence to developers to deliver high quality software. As Agile team, we implement all needed tests: unit, integration, acceptance, api and end to end.
This talk is about personal experience to learn from tests: we adopt a pragmatic approach to analyse feedback in order to enhance software quality.
We will talk about TDD practice and its limitation that lead to add mutation testing to have more efficient test. And we will explain our adaptative approach to introduce API level testing.
In the last part, we will talk about end to end test and how to enhance customer experience. We will discuss our efforts to not only test our microservices but all dependant microservices.
ABSTRACT. At Traveldoo, our main objective is to optimize time spent on creating value. To that end, we can’t afford to duplicate components in our applications, such as Authentication, Network, Analytics, UI components, configuration... Another challenge is to manage the rapid growth in team strength while improving the quality level of our code base.
To achieve that, we have started implementing a new kind of architecture: MicroFeatures.
In this presentation, you will discover MicroArchitecture and Framework Oriented programming.
You will understand the reasons for choosing this approach and whether this framework meets the needs of your teams.
In addition, you will see in great details implementation of this framework in our projects, the issues encountered, and how we managed to solve them.
Finally, you will be able to understand the pros and cons and decide if it can be a good approach for your projects.
Quit leaning on Media Queries: Build self-aware components
ABSTRACT. For the longest time, "responsive design" has meant using media queries to make changes to a component or page layout when the browser is at a size specified by the developer.
This approach has two major drawbacks:
- Media queries work at the viewport level, so for single components you can't build effective logic that will work when they are dropped into different page layouts.
- The developer has to query against set sizes, so if the website is viewed at an unexpected size it could look broken
We can do better. We need to build fire-and-forget logic into a component so it can adapt itself to look good at different screen sizes, whatever layout it is used in. It's a new way of thinking, and utilizes CSS techniques that are both bleeding edge (CSS Grid, Flexbox) and reliable old staples (min-width).
This talk will explain the concept of self-aware components and use real-world examples to show how it can be applied today, to many common UI patterns. When implemented, this new thinking results in more robust, adaptable components and less fiddly and complex media-query logic.
This talk is aimed at front-end developers and UX designers looking to create more robust layouts.
ABSTRACT. UICollectionViews on iOS are a powerful tool, to display a collection of items, that provides many ways to customize the presentation. To achieve that a UICollectionView accepts a UICollectionViewLayout instance that is a n object responsible for the presentation of the items. By using a custom UICollectionViewLayout someone can achieve results like ex. Parallax or sticky on top headers, non linear items alignments etc.
The problem is that this object can easily become a monolithic presentation tool that it's hard to read & maintain (usually operations in the layout require a lot of mathematical logic as they are changing the coordinates of each item).
To resolve that problem in Hotels.com and while working on the universal version of Property Details Page(PDP) screen we implemented a simple layout that can be easily extended with objects conforming to LayoutResponding interface(protocol) and are responsible to make any calculation required (based on their implementation) and help keeping the layout clean and simple. This approach help us create easily maintainable & fully testable components that we can attach to the layout with ease.
ABSTRACT. • What main points/topics you will cover
How Database Services (DBS) team automated their SQL build and have reduced cluster build time down from 30h to 1h. The tool has been in use for 3 years and has saved 5 years DBA FTE time, freeing up our DBAs to work on bigger projects. It has automated a manual process that was prone to error and required QA that took almost as long as the build. The tool can build Standalone, Cluster and AAG SQL instances either OnPrem or in AWS and is configurable so adding new SQL or OS versions or environments is straightforward. The tool guides the user through the process and logs every action.
• What the audience will learn by attending your session
The power of automation and how much time DBS have saved as a result. Teams may be thinking about using SQL in AWS or automated builds for other DB platforms and can engage us to help them.
• What level of experience the audience needs (beginner, intermediate, advanced)
Beginner
• If it’s a workshop, can people join remotely? What will attendees need to participate (laptop, software, etc.)?
No workshop, PP presentation then Q&A
• How long will your session last?
10 minutes
Cloverleaf a tool for repartition/reformatting data using AWS
ABSTRACT. This presentation will be about Cloverleaf a tool developed by BDP in HCom to tackle the reformatting and repartitioning of Big Data at rest. With the adoption of HCom's Data Highway project more and more data is landed in AWS. Often producers of Big Data in our cloud have different requirements than the consumers of this data. The most common problem is that the data is in the format that is not performant or suited for downstream processing. This is a generic problem that holds for many delivery teams. Cloverleaf aims to provide a generic solution that can tackle this problem and provide the basic ETL needed to make a dataset ready for further ETL or for Analysts and Data Science teams. Cloverleafs tries to be as maintenance free as possible and runs in AWS using Lambda, DataPipeline and EMR.
Topics:
* is cloverleaf for you/what does it try to solve?
* architecture
* how to use/deploy it
* current use and potential future use
When attending this presentation you will learn about Cloverleaf, it's potential and its limitations. It's especially useful if you're using or thinking of using HCom's Data Highway.
It's aimed at beginners but a basic understanding of Big Data concepts (Hive/AWS) is assumed. It will be more useful for people involved in ETL, Big Data.
It is not a workshop, people can join remotely. The author will join remotely as well.
Regression as a Service for teams to successfully release changes via CI/CD
ABSTRACT. Regression as a Service is a combination of six functions in Cloud(AWS) that works with each other to make CI/CD successful.
They are:
1) UI Automation framework:
To avoid re-inventing the wheel by every team who wants to write automation, we have created 3 ui automation framework and one framework for service automation. ScalaTest, Watir+Ruby(Expcuke) and NightwatchJS and these frameworks have all the nuts and bolts to help teams just start writing automation instead of worrying about the basics.
Besides this, these frameworks are integrated with all the below features of DA, DA dashboard, self service, PCP and 'self-aware' automation.
2)
Distributed Automation: (definition: https://dictionary.exp-tools.net/v/da)
DA is a project with a goal to run all UI automation within the time taken by the slowest test case.
DA is basically an AWS based intelligent and scalable Selenium Webdriver hub which can autoscale and run any number of tests in concurrently. It is cost effective because the nodes can be terminated and hub shutdown after use. Currently we have around 130 hubs in use and 4000+ EC2 selenium nodes being created and terminated on a daily basis.
3)
DA Dashboard:(http://da.tools.expedia.com/)
DA Dashboard is a nodejs based app, which shows automation results stored in mongodb. Automation results are stored in mongo after every automation run in CI/CD pipeline. This dashboard can show upto 1 month of automation trend. User can view automation errors, html report, java script errors, failure screenshots, errors on page, Splunk failyre logs, Haystack,etc. This can also show automation results from Browser Stack to include cross browser results into the equation.
Due to the availability of all automation artifacts, we are moving towards successful automated categorization of a test failure as 'product defect', 'automation defect', or 'environment issue'
4)
Pre Checkin Pipeline: (http://da.tools.expedia.com/shelved_build_chart.html)
PCP allows users to test a code change through the CI/CD pipeline even before the code is checked in. This helps team to have production ready changes.
5)
Holistic automation that is self-aware framework:
With frequent launches of white list partners and super fast Market Expansion, it is difficult to keep updating automation code to reflect different features provided on the site, when new partners/POS are launched. This self aware automation framework avoids the needs to update automation code when new partners/POS are launched, instead they can be accommodated by simply modifying a json file.
6)
Self-Service:(http://da-selfservice-ui.us-west-2.test.expedia.com/)
Self-service is a nodejs based KUMO app, which allows the user to create and upgrade hubs, create ready-to-run, preconfigured Jenkins jobs (CD/CD pipeline) and for managing self-aware automation blueprint. Basically it allows users to self-serve their needs.
These 6 functions together form RaaS and they are all reusable across other Expedia Group of companies.
All of these are currently being used in BEXG/GCO/EPC and on a daily basis, we execute around 130k tests using around 120 hubs. There is also work in progress to show case this to HCOM and other EG companies.
This talk will require 40mins and will focus on all 6 functions and how other EG companies can make use of RaaS.
I presented the topic "Distributed Automation" in Selenium Conference in Oregon in 2015 and in Selenium Camp in Kiev in 2016 and also in the last two Cloud xTechs. But this is the first time all 6 components are being presented as Regression as a Service.
Using HomeAway Catalyst framework to inner-source components
ABSTRACT. The purpose of this talk will be to Introduce Catalyst as a node.js/react development framework and how we've used this across pods in different countries in production environments (ie: Homeaway PDP).
Catalyst is HomeAway's node solution for applications based on Hapi.js. It encompasses a base configuration and a set of libraries and tools for working within the HomeAway ecosystem, allowing to build & deploy applications in as little as 30 minutes.
Topics
* What is Catalyst - background info, history, modules, etc.
* How to use it to quickly to spin up projects
* Pros / cons
* Trade-offs
* Demonstrate a working example of using Catalyst framework to inner-source into another team’s project
* Backend
* Frontend
ABSTRACT. “As a FE developer, every time I talk to a BE developer about CSS their eyes glaze over”. The purpose of this talk will be to introduce CSS for back-end developers: “everything” you need to know to talk comfortably about CSS - and get started using it today.
Topics
* Basic concepts of CSS
* Language and the conventional practices for how to use CSS, and the tools that enable large-scale web development
* Nature of the language
* Patterns & Anti-patterns
* Mobile-first / Responsive Design
* Progressive enhancements and supporting other browsers for fallbacks
* Compilation / Tools
ABSTRACT. This talk will focus on dragging the Trover (for Android) app "kicking and screaming" into the 20th century.
Development on the Trover Android app started mid 2011, and has been through the hands of a series of sole developers, not to mention an acquisition (by Expedia), over the years. The app has been sitting, more or less stagnant for approximately 3 years (since September 2015) until a ramp up of the team mid 2018.
What the audience will learn:
Times have changed, and the Android development landscape has certainly moved forward in a dramatic way in recent years. This talk will examine the process taken and choices selectively made to modernise the underlying infrastructure and user experience, in an effort to breath life and engagement into the Trover community.
Main points:
- work undertaken for mandatory upgrade required to continue publishing to store (including handling modern system changes and new restrictions)
- UI refresh
- employing modern tech (language and libs)
- decisions made when slicing up the work
Experience required:
Beginners should be able to follow and find this interesting, but intermediate to advanced Android devs should be able to relate and engage.
Abstract
- What are thematic inference systems and what does travel based thematic inference system look like
-Technology to ingest, process, and interpret lots of data has developed hugely over the last 2 years since AFP began
-Our focus as a company has moved hugely towards a customer focus, leading us to think a lot more about WHY our customers are travelling rather than just WHEN and HOW
-Our clients in AFP are interested in understanding how various travel themes relate to destinations and products (LOBs), to enable us to serve more contextually relevant content to our customers
-The focus on our customers' WHY has AFP clients bringing a whole new range of questions to us, wanting AFP to answer
-We envision an AFP where we can easily add in new sources of data, frame each new question posed by our clients in a way ML can be properly applied, spin up new ML models for each new question coming in, and iterate rapidly towards relevant and accurate results that will help our customers get where they are going more easily
-This talk will help product and engineering teams to think through how we need to shift our paradigms to enable us to be more customer centric and to get ahead of the curve in the travel industry
ABSTRACT. It is my goal to work on a carbon neutral technology team. I would like to present for about 10-15 minutes on how our company as a travel provider is performing good financially, giving good social benefit to society but not doing good in the third dimension of the environment.
My main points would be:
- The ecological footprint of thought workers
1. Our commute
2. Our energy usage
3. Our office space & equipment
- The ecological handprint of thought workers
1. Leadership burden on engineering now
2. How our product gives us outreach
- Travel Trends and Ideas
1. Carbon Emissions
2. Pollutant Emissions
3. The vast unknown
ABSTRACT. In today’s increasingly connected world, speed is of the essence for companies that want to retain their competitive advantage in the marketplace. In travel and lodging, just like in any other technologically-focused businesses, agile processes allow companies to iterate frequently through the software development cycles and adjust as market shifts take place. Establishing a modular project with good architecture and software abstractions is key for a successful Agile-based project. Having shareable or modular components, even for a single native app, allows the team(s) to focus on writing new features and delivery high-quality apps without getting bogged down by the nuances of networking, analytics, APIs or user-interface (UI) details such as branding and widget styles. In the case of a UI module, the main benefit is that it provides a set of affordances, or a common language, that allows designers and developers to achieve consistency.
In this paper, we will first focus on presenting HomeAway’s strategy for sharing themes, styles and widgets between the Partner and Traveler Android mobile teams and how it helps us achieve a unified and seamless UX/UI for all our customers. Such a unified user-experience strategy is followed successfully by other large companies such as Apple (macOS, iOS, watchOS) and Google (Gmail, Photos, Drive), which allow their users to move seamlessly across products without having to retrain their mental model. The HomeAway Android apps, which includes Traveler and Partner Experience, are able to leverage the Android system’s theming capabilities in order to share the same typography and text color definitions and widget styles without affecting the unique branding of HomeAway and VRBO. Any change in product strategy puts the majority of the work scope on the shared UI Module. For example, we recently migrated our font from Roboto to Lato. Thanks to our module following semantic versioning, each individual app was able to upgrade to these product-defined changes independently and with minimal effort.
The second major focus of this paper is how we can carry over, or rather extend, the HomeAway shared Android UI module strategy across all Expedia Group brands. We can use the HomeAway UI module to showcase various screens from the Hotels.com, Egencia, and Expedia apps. This allows for the presentation of a unified product language while at the same time retaining existing features and colors of each brand.
The ultimate goal of this paper is to drive all Expedia Group mobile development and design teams to begin collaborating towards this unified product strategy. After successfully demonstrating how Expedia Group can achieve a unified Android product experience across each brand, we can help continue the ongoing efforts to make EG the world class travel technology company.
Note: This paper and accompanied presentation is targeted towards intermediate and advanced Android experience attendees which are fairly accustomed to working with themes, styles and Gradle modules. There is no lab or coding exercise involved so employees can attend in person or join remotely.
ABSTRACT. A great way to highlight and promote collaboration would be a panel where some of the leads from each brand could get together and answer questions about challenges they faced, how they addressed those challenges and the benefits they’ve seen.
One challenge would be the location for the panel given that by definition teams will be in multiple locations. One option is bluejeans. Another key to a session like this would be a strong facilitator.
Implementing Haystack and Distributed Tracing at HomeAway!
ABSTRACT. In a world of business agility, a microservices architecture allows organizations to move faster and provide more value to the business. But while we can build more features faster, we also pay the price in complexity.
Observability is key in modern architectures to quickly detect, triage, repair and even predict failure. Modern observability platforms have evolved beyond simple application logs and now include distributed tracing. While distributed tracing is not new, the industry is just starting to create proper standards that allow you to create an open platform for distribute tracing.
But how do you implement distributed tracing in Expedia Group? In this presentation, we would take you on the joint journey of implementing a standards-based Distributed tracing system leveraging Haystack, an Expedia Open Source project. Come and learn about:
- The Haystack project, it's journey and architecture!
- OpenTracing, and industry standard API
- What you need to think about when adopting distributed Tracing and building an open polyglot platform for it
- Deploying Haystack in production
- Success and failure stories
ABSTRACT. As HomeAways has evolved into a truly global company, with many integrated partners, our need for fast, accurate pricing has become a central focus. Length of Stay or "LoS" pricing is an industry standard rates model that allows partners to submit precomputed prices along a common set of dimensions, regardless of their systems' internal rate structures, making their integration with HomeAway fast and seamless. The easiest way to conceptualize LoS is as a sparse, multi-dimensional cube of price data. Instead of requiring partners to create a rules-based rate model through our platform, we can leverage each partner’s expertise and knowledge of their own business by allowing them to send us an optimized cube of their prices in the LoS format. Synergy really happens when we can leverage these partner rates to provide accurate prices to travelers at scale.
At HomeAway, we are pursuing a new LoS design that fully realizes the benefits of a cloud-native architecture at an affordable cost. The new design had to meet all the following requirements: elastic scale, global distribution, low latency, and high velocity reads and writes.
Our first step in tackling this problem was the most critical. Our first stab was to whiteboard the application workflow and data access patterns. We went through a number of data modeling and application workflow exercises. What became evident is the realization that things were not as they seemed. We started with multiple assumptions that proved to be untrue. We assumed we needed to support multiple data access patterns and that the cube had to be dense. After breaking down the queries to core components, we realized that we really had one query and we did not need a dense cube. Leveraging Cassandra, parallel non-blocking threads, and targeted range scans, we have proven that we can provide LoS pricing at scale, for an affordable operational cost.
This presentation will cover how Cassandra solved all of the requirements for the LoS initiative, our learnings, and recommended practices.
Model for elasticity
Optimize model and hardware for Cassandra
Sparse cube (Less is more)
Save the cash
Target audience technical level: beginner to intermediate.
Applying open source development patterns to GraphQL API development
ABSTRACT. A distributed development pattern combined with a decomposed graphql api has accelerated development and improved consistency across the homeaway experience.
The talk will cover:
Using Inner Source development patterns to speed up development
A brief description of our primary design pattern - the partial - and how we compose them to form complex API responses. By reducing the scope of each library, and having a well defined contribution process, we’ve enabled more contributions from other teams for the benefit of all consumers.
An overview of our development process
Future plans for improving API discoverability and accelerating development
A case study in how this process has accelerated time to production for new features across many experiences
Attendees will learn how open source development patterns internally (AKA inner source) can speed up feature delivery and improve consistency across experiences, and how well that has worked for our graphql development at homeaway.
LX PassBook : A Scan and Go experience for Activities
ABSTRACT. LX PassBook allows Expedia Hotel customers to experience Activities in that region using a unique QR Code. Customers scan the code at the gate to enter the Activity. No pre-booking, no reserving, no prepaying needed. They don’t even need to carry a wallet !
Passbook went live in ~11 weeks from Inception to Production. Multiple teams within Expedia and an external technology partner called Yantra collaborated and executed like a startup to make this happen.
This talk will cover :
- The PassBook user experience
- Technical architecture and the interfaces between Expedia and Yantra
- Key components of the system such as QR Code generation/validation, Stateless CKO API, use of Hendrix Lambdas to provide target users for OBM emails,
- Challenges faced and resolved - such as Security, Fraud handling, Booking cutoff.
- Learnings and what's next for PassBook
The audience can takeaway the learnings of what worked well to deliver a complex initiative with many dependencies within a very short period.
You can also understand how this feature can be scaled up to other brands and POS.
Defining principles to share a service, experience from SilverRail & Sabre pad
ABSTRACT. What your presentation or workshop is about
My presentation is about defining the principles and processes for sharing a micro service across multiple brands. We had worked together with Brand Expedia and Travldoo, in defining a common api which is capable of handling the three rail providers – SilverRail, Amadeus and BeneRail and needs of three brands – Traveldoo, Brand Expedia and Egencia. We could talk about our experience in successfully launching the micro service and helping Expedia group in asset sharing.
What main points/topics you will cover
> Identify a service that is eligible to use in multiple brands
> Define the principles or process that needs to be followed
> How the DevOps concepts enable automation in this model
What the audience will learn by attending your session
> Principles that helps to share a service
> The best practices from the SilverRail Pad and Sabre Pad shared development
> How the challenges of the Open source development could be addressed effectively?
> How to institutionalize the latest technologies across brands
What level of experience the audience needs (beginner, intermediate, advanced)
The audience should be people who have collaboration across multiple brands/teams
Intermediate or advanced
Accessibility: What is it and why should you care?
ABSTRACT. Audience: Appropriate for all levels, beginners welcome
Access: Remote attendance encouraged, no devices required
Length: 45 minutes, 30 min presentation followed by 15 min Q&A
Agenda:
1. Accessibility 101 - Introduction to digital accessibility and the WCAG Guidelines
2. The business case for accessibility - Overview of the legal ramifications, technical benefits, market opportunity, and strategic alignment of accessibility
3. BEXG program overview - Overview of BEXG's 4 year journey, challenges of driving a cross-functional initiative, and lessons learned
4. Coding with accessibility in mind - Deep dive into how we made the typeahead accessible. This section will cover how to integrate accessibility into the entire product development lifecycle. We'll also talk about automating accessibility in the testing process and available support resources
1. Apps and Services across Expedia need to store and retrieve “secrets – passwords, keys, private certificates etc.” in a security-policy (ERS) compliant way.
2. Various types of Apps – Cloud based, on-premise, Server-less, SPA Apps etc.
3. By compliance we mean: Not plain text, not in source control, tightly access controlled, rolling, secure storage, audit logged, short-lived & easy recovery of a security breach etc.
4. Other good practices: Separation of concerns, EG wide Policies etc.
We need a "Secrets Management" solution which is ERS compliant, and solves for our above security concerns in a clean, scalable, secure manner.
This session is about the eCP wide Secrets Management solution that'll be adopted by all teams. (not Vault)
What main points/topics you will cover
1. The problem of Secrets Management
2. How we do it today?
Plain text secrets in config files
Checked into source control: with Version history J
No access control – full access to anyone
Non Rolling encryption keys
Unsecure storage – file systems and source controls
No audit logging – who is accessing, who failed etc.
Non-expiring long lived Secrets
Every App is burdened. Every app does it differently.
3. The eCP Secrets Management solution & its architecture
4. It's real use in a live application
5. Comparison with HashiCorp's vault
What the audience will learn by attending your session
The audience will learn about the:
1. Importance of Secrets Management
2. Current problems & challenges
3. Various solution options
4. Why we finalized on what we finalized on?
5. How does it solve for Secrets Management across several types of Apps?
6. How to adopt the solution easily in systems?
What level of experience the audience needs (beginner, intermediate, advanced) >> Beginner
ABSTRACT. An effective vulnerability management program can save you a lot of time in the face of stricter security standards and higher volumes of threats. At EPS, the vulnerability management program works to raise visibility, keep you in-the-know, and focus your teams on the right issues at the right time. Adopting the devsecops mindset, we've moved from a quarterly to monthly vulnerability remediation and patching cycle; which allowed us to successfully reach 70% patch compliance threshold set by Enterprise, Risk & Security (ERS).
ABSTRACT. Expedia culture thrives on building delightful experiences, leveraging its large travel data, for users on multiple channels. The channels include emerging conversational technologies like text bots and voice assistants. How does Expedia develop these experiences on a large scale? Expedia’s Conversational AI products utilize a platform approach to easily supports both text and voice conversational mediums.
With the growing popularity of voice assistants, more and more people rely on them for daily activities and even fulfilling their travel needs. Users can ask Alexa for the phone number of their upcoming trip's hotel, instead of visiting the website or viewing their hotel confirmation email. They can also ask Alexa about packing tips or add a car to their upcoming travel. All of this is powered by simple voice commands without the user even getting up from their couch.
Expedia’s Conversation team has built a robust conversation platform. Enabling voice experiences on this platform presented a new set of challenges. Voice channels need to be highly responsive. We were able to truly leverage AWS potential to cater to low latency requirements of voice experiences to extend existing platform built for text channels. Using Alexa Skill Kit SDK 2.0, we were able to simplify event handling, response building, and dialog management. We also had to consider various Alexa devices supporting visual elements (i.e. Echo Show or Spot). Finding the right balance of enhancing the existing conversational platform to tackle all these (and more) voice specific requirements, while keeping it extensible, is an interesting problem to solve in itself.