This is an automated email from the ASF dual-hosted git repository.

aizhamal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new ed900737d0a [Website] add new case-study, fix styles, add related 
images (#21891)
ed900737d0a is described below

commit ed900737d0aff69d758c686c3c8175c6b41441d7
Author: bullet03 <[email protected]>
AuthorDate: Sat Jun 18 03:13:47 2022 +0600

    [Website] add new case-study, fix styles, add related images (#21891)
---
 website/www/site/assets/scss/_case_study.scss      |  11 +-
 website/www/site/content/en/case-studies/lyft.md   | 158 +++++++++++++++++++++
 .../lyft/apache_beam_ml_features_generation.svg    | 102 +++++++++++++
 .../images/case-study/lyft/ravi_kiran_magham.png   | Bin 0 -> 155159 bytes
 .../site/static/images/logos/powered-by/lyft.png   | Bin 0 -> 50028 bytes
 5 files changed, 270 insertions(+), 1 deletion(-)

diff --git a/website/www/site/assets/scss/_case_study.scss 
b/website/www/site/assets/scss/_case_study.scss
index 21d881a3031..d254473eb77 100644
--- a/website/www/site/assets/scss/_case_study.scss
+++ b/website/www/site/assets/scss/_case_study.scss
@@ -99,6 +99,7 @@
   }
 
   .case-study-card-title {
+    min-height: 45px;
     margin: 12px 0;
     font-size: 18px;
   }
@@ -228,7 +229,7 @@ h2.case-study-h2 {
       height: 37px;
       width: 46px;
       right: 12px;
-      bottom: 16px;
+      bottom: 12px;
       position: absolute;
       font-size: 96px;
       color: #E5E5E5;
@@ -298,6 +299,12 @@ h2.case-study-h2 {
         width: 100%;
         max-height: 100px;
       }
+
+      .case-study-opinion-img-cropped {
+        display: block;
+        margin: 0 auto;
+        width: 40%;
+      }
     }
   }
 
@@ -308,6 +315,8 @@ h2.case-study-h2 {
 
   .post-scheme {
     margin-bottom: 16px;
+    text-align: center;
+    font-style: italic;
 
     img {
       width: 100%;
diff --git a/website/www/site/content/en/case-studies/lyft.md 
b/website/www/site/content/en/case-studies/lyft.md
new file mode 100644
index 00000000000..5559244b1b8
--- /dev/null
+++ b/website/www/site/content/en/case-studies/lyft.md
@@ -0,0 +1,158 @@
+---
+title: "Real-time ML with Beam at Lyft"
+name: "Lyft"
+icon: "/images/logos/powered-by/lyft.png"
+category: "study"
+cardTitle: "Real-time ML with Beam at Lyft"
+cardDescription: "Lyft Marketplace team aims to improve our business 
efficiency by being nimble to real-world dynamics. Apache Beam has enabled us 
to meet the goal of having a robust and scalable ML infrastructure for 
improving model accuracy with features in real-time. These real-time features 
support critical functions like Forecasting, Primetime, Dispatch."
+authorName: "Ravi Kiran Magham"
+authorPosition: "Software Engineer @ Lyft"
+authorImg: /images/case-study/lyft/ravi_kiran_magham.png
+publishDate: 2022-06-17T00:12:00+00:00
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div class="case-study-opinion">
+    <div class="case-study-opinion-img">
+        <img class="case-study-opinion-img-cropped" 
src="/images/logos/powered-by/lyft.png"/>
+    </div>
+    <blockquote class="case-study-quote-block">
+      <p class="case-study-quote-text">
+        “Lyft Marketplace team aims to improve our business efficiency by 
being nimble to real-world dynamics. Apache Beam has enabled us to meet the 
goal of having a robust and scalable ML infrastructure for improving model 
accuracy with features in real-time. These real-time features support critical 
functions like Forecasting, Primetime, Dispatch.”
+      </p>
+      <div class="case-study-quote-author">
+        <div class="case-study-quote-author-img">
+            <img src="/images/case-study/lyft/ravi_kiran_magham.png">
+        </div>
+        <div class="case-study-quote-author-info">
+            <div class="case-study-quote-author-name">
+              Ravi Kiran Magham
+            </div>
+            <div class="case-study-quote-author-position">
+              Software Engineer @ Lyft
+            </div>
+        </div>
+      </div>
+    </blockquote>
+</div>
+<div class="case-study-post">
+
+# Real-time ML with Beam at Lyft
+
+## Background
+
+[Lyft, Inc.](https://www.lyft.com/) is an American mobility-as-a-service 
provider that offers ride-hailing, car and motorized scooter rentals, 
bicycle-sharing, food delivery, and business transportation solutions. Lyft is 
based in San Francisco, California, and [operates 
in](https://www.lyft.com/rider/cities) 644 cities in the United States and 12 
cities in Canada.
+
+As you might expect from a company as large as Lyft, connecting drivers and 
riders in space and time at such a scale requires a powerful real-time 
streaming infrastructure. Ravi Kiran Magham, Software Engineer at Lyft, shared 
the story of how Apache Beam has become a mission-critical and integral 
real-time data processing technology for Lyft by enabling large-scale streaming 
data processing and machine learning pipelines.
+
+## Democratizing Stream Processing
+
+Lyft originally built streaming ETL pipelines to transform, enrich, and sink 
events generated by application services to their data lake in [AWS S3 
](https://aws.amazon.com/s3/) using [Amazon 
Kinesis](https://aws.amazon.com/kinesis/) and [Apache 
Flink](https://flink.apache.org/). Apache Flink is the foundation of Lyft’s 
streaming architecture and was chosen over Apache Spark due to its robust, 
fault-tolerant, and intuitive API for distributed stateful stream processing, 
exactly-once proc [...]
+
+Lyft’s popularity and growth were bringing new demands to data streaming 
infrastructure: more teams with diverse programming language preferences wanted 
to explore event-driven streaming applications, and build streaming features 
for real-time machine learning models to make business more efficient, enhance 
customer experiences, and provide time-sensitive compliance operations. The 
Data Platform team looked into improving the prime time (surge pricing) 
computation for the Marketplace tea [...]
+
+<blockquote class="case-study-quote-block case-study-quote-wrapped">
+  <p class="case-study-quote-text">
+    The Apache Beam portability and multi-language capabilities were the key 
pique and the primary reason for us to start exploring Beam in a bigger way.
+  </p>
+  <div class="case-study-quote-author">
+    <div class="case-study-quote-author-img">
+        <img src="/images/case-study/lyft/ravi_kiran_magham.png">
+    </div>
+    <div class="case-study-quote-author-info">
+        <div class="case-study-quote-author-name">
+          Ravi Kiran Magham
+        </div>
+        <div class="case-study-quote-author-position">
+          Software Engineer @ Lyft
+        </div>
+    </div>
+  </div>
+</blockquote>
+
+Apache Beam provides a solution to the programming language and data 
processing engine dilemma, as it offers a variety of 
[runners](/documentation/basics/#runner) (including the [Beam Flink 
runner](/documentation/runners/flink/) for Apache Flink) and a [variety of 
programming language SDKs](/documentation/sdks/java/). Apache Beam offers an 
ultimate level of portability with its concept of “write once, run anywhere” 
and its ability to create [multi-language pipelines - data pipelines](/do [...]
+
+<blockquote class="case-study-quote-block case-study-quote-wrapped">
+  <p class="case-study-quote-text">
+    Leveraging Apache Beam has been a “win-win” decision for us because our 
data infra teams use Java but we are able to offer Python SDK for our product 
teams, as it has been the de-facto language that they prefer. We write 
streaming pipelines with ease and comfort and run them on the Beam Flink runner.
+  </p>
+  <div class="case-study-quote-author">
+    <div class="case-study-quote-author-img">
+        <img src="/images/case-study/lyft/ravi_kiran_magham.png">
+    </div>
+    <div class="case-study-quote-author-info">
+        <div class="case-study-quote-author-name">
+          Ravi Kiran Magham
+        </div>
+        <div class="case-study-quote-author-position">
+          Software Engineer @ Lyft
+        </div>
+    </div>
+  </div>
+</blockquote>
+
+The Data Platform team built a control plane of in-house services and 
[FlinkK8sOperator](https://github.com/lyft/flinkk8soperator) to manage Flink 
applications on a Kubernetes cluster and deploy streaming Apache Beam and 
Apache Flink jobs.  Lyft uses a blue/green deployment strategy on critical 
pipelines to minimize any downtime and uses custom macros for improved 
observability and seamless integration of the CI/CD deployments.  To improve 
developer productivity, the Data Platform team o [...]
+
+## Powering Real-time Machine Learning Pipelines
+
+Lyft Marketplace plays a pivotal role in optimizing fleet demand and supply 
prediction, dynamic pricing, ETA calculation, and more. The Apache Beam Python 
SDK and Flink Runner enable the team to be nimble to change and support the 
demands for real-time ML – streaming feature generation and model execution. 
The Data Platform team has extended the streaming infrastructure to support 
Continual Learning use cases. Apache Beam powers continuous training of ML 
models with real-time data over l [...]
+
+<div class="post-scheme">
+    <img src="/images/case-study/lyft/apache_beam_ml_features_generation.svg" 
alt="Apache Beam Feature Generation and ML Model Execution">
+    <span>Apache Beam Feature Generation and ML Model Execution </span>
+</div>
+
+Lyft separated Feature Generation and ML Model Execution into multiple 
streaming pipelines. The streaming Apache Beam pipeline generates features in 
real-time and writes them to a Kafka topic to be consumed by the model 
execution pipeline. Based on user configuration, the features are replicated 
and keyed out by model ID to [stateful](/blog/stateful-processing/) ParDo 
transforms, which leverage [timers](/documentation/programming-guide/#timers) 
and/or data (feature) availability to invok [...]
+
+The complex real-time Feature Generation involves processing ~4 million events 
of 1KB per minute with sub-second latency, generating ~100 features on multiple 
event attributes across space and time granularities (1 and 5 minutes). Apache 
Beam allowed the Lyft Marketplace team to reduce latency by 
[60%](https://conferences.oreilly.com/strata/strata-ca-2019/cdn.oreillystatic.com/en/assets/1/event/290/The%20magic%20behind%20your%20Lyft%20ride%20prices_%20A%20case%20study%20on%20machine%20le
 [...]
+
+<blockquote class="case-study-quote-block case-study-quote-wrapped">
+  <p class="case-study-quote-text">
+    The Marketplace team are <a 
href="https://eng.lyft.com/gotchas-of-stream-processing-data-skewness-cfba58eb45d4";>heavy
 users of Apache Beam</a> for real-time feature computation and model 
executions. Processing events in real-time with a sub-second latency allows our 
ML models to understand marketplace dynamics early and make informed decisions.
+  </p>
+  <div class="case-study-quote-author">
+    <div class="case-study-quote-author-img">
+        <img src="/images/case-study/lyft/ravi_kiran_magham.png">
+    </div>
+    <div class="case-study-quote-author-info">
+        <div class="case-study-quote-author-name">
+          Ravi Kiran Magham
+        </div>
+        <div class="case-study-quote-author-position">
+          Software Engineer @ Lyft
+        </div>
+    </div>
+  </div>
+</blockquote>
+
+## Amplifying Use Cases
+
+Lyft has leveraged Apache Beam for more than 60 use cases and enabled them to 
complete critical business commitments and improve real-time user experiences.
+
+For example, Lyft's Map Data Delivery team moved from a batch process to a 
streaming pipeline for identifying road closures in real-time. Their Routing 
Engine uses this information to determine the best routes, improve ETA and 
provide a better driver and customer experience.  The job processes ~400k 
events per second, conflates streams of data coming from 3rd party road 
closures and real-time traffic data to determine actual closures and publish 
them as events to Kafka. A custom S3 PTran [...]
+
+Apache Beam enabled Lyft to optimize a very specific use case that relates to 
reporting pick-ups and drop-offs at airports. Airports require mobility 
applications to report every pick-up and drop-off and match them with the time 
of fleet entry and exit. Failing to do so results in a lower compliance score 
and even risk of being penalized. Originally, Lyft had a complicated 
implementation using the [KCL 
library](https://docs.aws.amazon.com/streams/latest/dev/kinesis-record-processor-imple
 [...]
+
+Like many companies shaking up standard business models, Lyft relies on 
open-source software and likes to give back to the community. Many of the big 
data frameworks, tools, and implementations developed by Lyft are open-sourced 
on their [GitHub](https://github.com/orgs/lyft/repositories). Lyft has been an 
ample Apache Beam contributor since 2018, and Lyft engineers have presented 
their Apache Beam integrations at various events, such as [Beam Summit North 
America](https://www.youtube.co [...]
+
+## Results
+
+The portability of the Apache Beam model is the key to distributed execution. 
It enabled Lyft to run mission-critical data pipelines written in a non-JVM 
language on a JVM-based runner. Thus, they avoided code rewrites and 
sidestepped the potential cost of many API styles and runtime environments, 
reducing pipeline development time from multiple days to just hours. Full 
isolation of user code and native CPython execution without library 
restrictions resulted in easy onboarding and adopti [...]
+
+Apache Beam enabled  Lyft to switch from batch ML model training to real-time 
ML training with granular control of data freshness using windowing. Their data 
engineering and product teams can use both Python and Java, based on the 
appropriateness for a particular task or their preference. Apache Beam has 
helped Lyft successfully build and scale 60+ streaming pipelines processing 
events at very low latencies in near-real-time. New use cases keep coming, and 
Lyft is planning on leveraging  [...]
+
+{{< case_study_feedback "Lyft" >}}
+
+</div>
+<div class="clear-nav"></div>
diff --git 
a/website/www/site/static/images/case-study/lyft/apache_beam_ml_features_generation.svg
 
b/website/www/site/static/images/case-study/lyft/apache_beam_ml_features_generation.svg
new file mode 100644
index 00000000000..b86b3fdbe9e
--- /dev/null
+++ 
b/website/www/site/static/images/case-study/lyft/apache_beam_ml_features_generation.svg
@@ -0,0 +1,102 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<svg width="1331" height="457" viewBox="0 0 1331 457" fill="none" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<rect width="1331" height="457" fill="white"/>
+<rect x="10" y="154" width="66" height="36" rx="5" fill="#D7EDD8"/>
+<path d="M21.5033 
178V167.536H27.8073V169.104H23.3593V171.776H27.1193V173.344H23.3593V176.432H27.9673V178H21.5033ZM31.5144
 178L28.7784 170.144H30.6504L31.8984 174.224C32.0051 174.608 32.1118 174.997 
32.2184 175.392C32.3358 175.787 32.4478 176.187 32.5544 176.592H32.6184C32.7358 
176.187 32.8478 175.787 32.9544 175.392C33.0718 174.997 33.1838 174.608 33.2904 
174.224L34.5384 170.144H36.3144L33.6424 178H31.5144ZM40.9006 178.192C40.1752 
178.192 39.5192 178.032 38.9326 177.712C38.3459 177.381  [...]
+<rect x="124" y="154" width="69" height="36" rx="5" fill="#D7DEED"/>
+<path d="M135.571 178V167.536H137.427V172.288H137.475L141.203 
167.536H143.267L140.051 171.616L143.811 178H141.763L138.931 173.072L137.427 
174.944V178H135.571ZM144.916 178V170.144H146.756V178H144.916ZM145.844 
168.768C145.513 168.768 145.247 168.672 145.044 168.48C144.841 168.288 144.74 
168.032 144.74 167.712C144.74 167.403 144.841 167.152 145.044 166.96C145.247 
166.768 145.513 166.672 145.844 166.672C146.175 166.672 146.441 166.768 146.644 
166.96C146.847 167.152 146.948 167.403 146.948 16 [...]
+<rect x="10" y="247" width="66" height="36" rx="5" fill="#D7EDD8"/>
+<path d="M21.5033 
271V260.536H27.8073V262.104H23.3593V264.776H27.1193V266.344H23.3593V269.432H27.9673V271H21.5033ZM31.5144
 271L28.7784 263.144H30.6504L31.8984 267.224C32.0051 267.608 32.1118 267.997 
32.2184 268.392C32.3358 268.787 32.4478 269.187 32.5544 269.592H32.6184C32.7358 
269.187 32.8478 268.787 32.9544 268.392C33.0718 267.997 33.1838 267.608 33.2904 
267.224L34.5384 263.144H36.3144L33.6424 271H31.5144ZM40.9006 271.192C40.1752 
271.192 39.5192 271.032 38.9326 270.712C38.3459 270.381  [...]
+<rect x="124" y="247" width="69" height="36" rx="5" fill="#D7DEED"/>
+<path d="M140.248 271V260.536H142.104V265.288H142.152L145.88 
260.536H147.944L144.728 264.616L148.488 271H146.44L143.608 266.072L142.104 
267.944V271H140.248ZM151.497 271.192C150.814 271.192 150.254 270.979 149.817 
270.552C149.39 270.125 149.177 269.571 149.177 268.888C149.177 268.045 149.545 
267.395 150.281 266.936C151.017 266.467 152.19 266.147 153.801 265.976C153.79 
265.56 153.678 265.203 153.465 264.904C153.262 264.595 152.894 264.44 152.361 
264.44C151.977 264.44 151.598 264.515 151.22 [...]
+<rect x="725" y="199" width="69" height="36" rx="5" fill="#D7DEED"/>
+<path d="M741.248 223V212.536H743.104V217.288H743.152L746.88 
212.536H748.944L745.728 216.616L749.488 223H747.44L744.608 218.072L743.104 
219.944V223H741.248ZM752.497 223.192C751.814 223.192 751.254 222.979 750.817 
222.552C750.39 222.125 750.177 221.571 750.177 220.888C750.177 220.045 750.545 
219.395 751.281 218.936C752.017 218.467 753.19 218.147 754.801 217.976C754.79 
217.56 754.678 217.203 754.465 216.904C754.262 216.595 753.894 216.44 753.361 
216.44C752.977 216.44 752.598 216.515 752.22 [...]
+<rect x="261" y="200" width="100" height="36" rx="5" fill="#ECECEC"/>
+<path d="M294.285 
224V213.536H300.605V215.104H296.141V218.064H299.949V219.632H296.141V224H294.285ZM302.239
 224V216.144H304.079V224H302.239ZM303.167 214.768C302.836 214.768 302.569 
214.672 302.367 214.48C302.164 214.288 302.063 214.032 302.063 213.712C302.063 
213.403 302.164 213.152 302.367 212.96C302.569 212.768 302.836 212.672 303.167 
212.672C303.497 212.672 303.764 212.768 303.967 212.96C304.169 213.152 304.271 
213.403 304.271 213.712C304.271 214.032 304.169 214.288 303.967 214.48C303. 
[...]
+<rect x="927" y="199" width="120" height="36" rx="5" fill="#ECECEC"/>
+<path d="M942.957 223V212.536H944.813V217.288H944.861L948.589 
212.536H950.653L947.437 216.616L951.197 223H949.149L946.317 218.072L944.813 
219.944V223H942.957ZM955.475 223.192C954.749 223.192 954.093 223.032 953.507 
222.712C952.92 222.381 952.456 221.912 952.115 221.304C951.773 220.685 951.603 
219.944 951.603 219.08C951.603 218.227 951.773 217.491 952.115 216.872C952.467 
216.253 952.92 215.779 953.475 215.448C954.029 215.117 954.611 214.952 955.219 
214.952C955.933 214.952 956.531 215.112  [...]
+<rect x="409" y="200" width="100" height="36" rx="5" fill="#ECECEC"/>
+<path d="M420.337 
224V213.536H426.641V215.104H422.193V217.776H425.953V219.344H422.193V222.432H426.801V224H420.337ZM428.745
 224V216.144H430.265L430.393 217.2H430.457C430.809 216.859 431.193 216.565 
431.609 216.32C432.025 216.075 432.499 215.952 433.033 215.952C433.875 215.952 
434.489 216.224 434.873 216.768C435.257 217.312 435.449 218.08 435.449 
219.072V224H433.609V219.312C433.609 218.661 433.513 218.203 433.321 
217.936C433.129 217.669 432.814 217.536 432.377 217.536C432.035 217.536 431.7 
[...]
+<rect x="1095" y="199" width="79" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1106.62 223V212.536H1108.72L1110.58 217.656C1110.69 217.987 1110.8 
218.328 1110.91 218.68C1111.03 219.021 1111.14 219.363 1111.25 
219.704H1111.31C1111.43 219.363 1111.54 219.021 1111.65 218.68C1111.75 218.328 
1111.86 217.987 1111.97 217.656L1113.78 
212.536H1115.89V223H1114.18V218.216C1114.18 217.885 1114.19 217.528 1114.21 
217.144C1114.24 216.749 1114.27 216.355 1114.3 215.96C1114.35 215.565 1114.38 
215.208 1114.42 214.888H1114.35L1113.5 217.32L1111.79 222.024H1110.69L1108.96 2 
[...]
+<rect x="1254" y="199" width="41" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1265.79 223V212.536H1267.88L1269.74 217.656C1269.86 217.987 1269.97 
218.328 1270.07 218.68C1270.19 219.021 1270.3 219.363 1270.41 
219.704H1270.47C1270.59 219.363 1270.7 219.021 1270.81 218.68C1270.92 218.328 
1271.02 217.987 1271.13 217.656L1272.94 
212.536H1275.05V223H1273.34V218.216C1273.34 217.885 1273.35 217.528 1273.37 
217.144C1273.4 216.749 1273.43 216.355 1273.47 215.96C1273.51 215.565 1273.55 
215.208 1273.58 214.888H1273.51L1272.67 217.32L1270.95 222.024H1269.85L1268.12 
2 [...]
+<rect x="1095" y="146" width="79" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1106.62 170V159.536H1108.72L1110.58 164.656C1110.69 164.987 1110.8 
165.328 1110.91 165.68C1111.03 166.021 1111.14 166.363 1111.25 
166.704H1111.31C1111.43 166.363 1111.54 166.021 1111.65 165.68C1111.75 165.328 
1111.86 164.987 1111.97 164.656L1113.78 
159.536H1115.89V170H1114.18V165.216C1114.18 164.885 1114.19 164.528 1114.21 
164.144C1114.24 163.749 1114.27 163.355 1114.3 162.96C1114.35 162.565 1114.38 
162.208 1114.42 161.888H1114.35L1113.5 164.32L1111.79 169.024H1110.69L1108.96 1 
[...]
+<rect x="1254" y="146" width="41" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1265.79 170V159.536H1267.88L1269.74 164.656C1269.86 164.987 1269.97 
165.328 1270.07 165.68C1270.19 166.021 1270.3 166.363 1270.41 
166.704H1270.47C1270.59 166.363 1270.7 166.021 1270.81 165.68C1270.92 165.328 
1271.02 164.987 1271.13 164.656L1272.94 
159.536H1275.05V170H1273.34V165.216C1273.34 164.885 1273.35 164.528 1273.37 
164.144C1273.4 163.749 1273.43 163.355 1273.47 162.96C1273.51 162.565 1273.55 
162.208 1273.58 161.888H1273.51L1272.67 164.32L1270.95 169.024H1269.85L1268.12 
1 [...]
+<rect x="1095" y="252" width="79" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1106.62 276V265.536H1108.72L1110.58 270.656C1110.69 270.987 1110.8 
271.328 1110.91 271.68C1111.03 272.021 1111.14 272.363 1111.25 
272.704H1111.31C1111.43 272.363 1111.54 272.021 1111.65 271.68C1111.75 271.328 
1111.86 270.987 1111.97 270.656L1113.78 
265.536H1115.89V276H1114.18V271.216C1114.18 270.885 1114.19 270.528 1114.21 
270.144C1114.24 269.749 1114.27 269.355 1114.3 268.96C1114.35 268.565 1114.38 
268.208 1114.42 267.888H1114.35L1113.5 270.32L1111.79 275.024H1110.69L1108.96 2 
[...]
+<rect x="1254" y="252" width="41" height="36" rx="5" fill="#ECECEC"/>
+<path d="M1265.79 276V265.536H1267.88L1269.74 270.656C1269.86 270.987 1269.97 
271.328 1270.07 271.68C1270.19 272.021 1270.3 272.363 1270.41 
272.704H1270.47C1270.59 272.363 1270.7 272.021 1270.81 271.68C1270.92 271.328 
1271.02 270.987 1271.13 270.656L1272.94 
265.536H1275.05V276H1273.34V271.216C1273.34 270.885 1273.35 270.528 1273.37 
270.144C1273.4 269.749 1273.43 269.355 1273.47 268.96C1273.51 268.565 1273.55 
268.208 1273.58 267.888H1273.51L1272.67 270.32L1270.95 275.024H1269.85L1268.12 
2 [...]
+<rect x="557" y="200" width="100" height="36" rx="5" fill="#ECECEC"/>
+<path d="M569.497 224L567.417 213.536H569.321L570.233 218.816C570.318 219.371 
570.404 219.931 570.489 220.496C570.585 221.051 570.67 221.605 570.745 
222.16H570.809C570.926 221.605 571.038 221.051 571.145 220.496C571.262 219.931 
571.38 219.371 571.497 218.816L572.777 213.536H574.393L575.673 218.816C575.79 
219.36 575.908 219.915 576.025 220.48C576.142 221.035 576.26 221.595 576.377 
222.16H576.441C576.526 221.595 576.612 221.035 576.697 220.48C576.782 219.925 
576.862 219.371 576.937 218.816 [...]
+<rect x="423" y="322" width="71" height="36" rx="5" fill="#FCEACF"/>
+<path d="M437.877 346.192C437.173 346.192 436.491 346.059 435.829 
345.792C435.179 345.525 434.603 345.147 434.101 344.656L435.189 343.392C435.563 
343.744 435.989 344.032 436.469 344.256C436.949 344.469 437.429 344.576 437.909 
344.576C438.507 344.576 438.96 344.453 439.269 344.208C439.579 343.963 439.733 
343.637 439.733 343.232C439.733 342.795 439.579 342.48 439.269 342.288C438.971 
342.096 438.587 341.899 438.117 341.696L436.677 341.072C436.336 340.923 436 
340.731 435.669 340.496C435.349  [...]
+<path d="M88 265H108" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M114 265L108 269L108 261L114 265Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M205 265H225" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M231 265L225 269L225 261L231 265Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M88 172H108" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M114 172L108 176L108 168L114 172Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M205 172H225" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M231 172L225 176L225 168L231 172Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M373 218H393" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M399 218L393 222L393 214L399 218Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M521 218H541" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M547 218L541 222L541 214L547 218Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M689 218H709" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M715 218L709 222L709 214L715 218Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M1059 218H1079" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M1085 218L1079 222L1079 214L1085 218Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M804 217H889" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M895 217L889 221L889 213L895 217Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M1184 164H1245" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M1245 164L1239 168L1239 160L1245 164Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M1184 217H1245" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M1245 217L1239 221L1239 213L1245 217Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M1184 271H1245" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M1245 271L1239 275L1239 267L1245 271Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M458 310L458 255" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round"/>
+<path d="M458 249L454 255L462 255L458 249Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M383.623 121V110.536H385.719L387.575 115.656C387.692 115.987 387.804 
116.328 387.911 116.68C388.028 117.021 388.14 117.363 388.247 
117.704H388.311C388.428 117.363 388.54 117.021 388.647 116.68C388.754 116.328 
388.86 115.987 388.967 115.656L390.775 
110.536H392.887V121H391.175V116.216C391.175 115.885 391.186 115.528 391.207 
115.144C391.239 114.749 391.271 114.355 391.303 113.96C391.346 113.565 391.383 
113.208 391.415 112.888H391.351L390.503 115.32L388.791 120.024H387.687L385.959 
1 [...]
+<path d="M984.714 70V59.536H986.81L988.666 64.656C988.783 64.9867 988.895 
65.328 989.002 65.68C989.119 66.0213 989.231 66.3627 989.338 
66.704H989.402C989.519 66.3627 989.631 66.0213 989.738 65.68C989.844 65.328 
989.951 64.9867 990.058 64.656L991.866 59.536H993.978V70H992.266V65.216C992.266 
64.8853 992.276 64.528 992.298 64.144C992.33 63.7493 992.362 63.3547 992.394 
62.96C992.436 62.5653 992.474 62.208 992.506 61.888H992.442L991.594 
64.32L989.882 69.024H988.778L987.05 64.32L986.218 61.888 [...]
+<path d="M1222.69 70V59.536H1224.78L1226.64 64.656C1226.76 64.9867 1226.87 
65.328 1226.97 65.68C1227.09 66.0213 1227.2 66.3627 1227.31 
66.704H1227.37C1227.49 66.3627 1227.6 66.0213 1227.71 65.68C1227.82 65.328 
1227.92 64.9867 1228.03 64.656L1229.84 59.536H1231.95V70H1230.24V65.216C1230.24 
64.8853 1230.25 64.528 1230.27 64.144C1230.3 63.7493 1230.33 63.3547 1230.37 
62.96C1230.41 62.5653 1230.45 62.208 1230.48 61.888H1230.41L1229.57 
64.32L1227.85 69.024H1226.75L1225.02 64.32L1224.19 61.888 [...]
+<path d="M677 279L677 155C677 147.268 670.732 141 663 141L255 141C247.268 141 
241 147.268 241 155L241 279C241 286.732 247.268 293 255 293L663 293C670.732 293 
677 286.732 677 279Z" stroke="#B3B3B3" stroke-width="2" stroke-linecap="round" 
stroke-dasharray="1 6"/>
+<path d="M1194 326L1194 100C1194 92.268 1187.73 86 1180 86L921 86C913.268 86 
907 92.268 907 100L907 326C907 333.732 913.268 340 921 340L1180 340C1187.73 340 
1194 333.732 1194 326Z" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round" stroke-dasharray="1 6"/>
+<path d="M1315 326L1315 100C1315 92.268 1308.73 86 1301 86L1248 86C1240.27 86 
1234 92.268 1234 100L1234 326C1234 333.732 1240.27 340 1248 340L1301 
340C1308.73 340 1315 333.732 1315 326Z" stroke="#B3B3B3" stroke-width="2" 
stroke-linecap="round" stroke-dasharray="1 6"/>
+<path d="M1085.16 163.393L1039 163.393C1035.13 163.393 1032 166.526 1032 
170.392L1032 187" stroke="#B3B3B3" stroke-width="2" stroke-linecap="round"/>
+<path d="M1085 163.393L1079 167.393L1079 159.393L1085 163.393Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M1085.16 270.607L1039 270.607C1035.13 270.607 1032 267.474 1032 
263.608L1032 247" stroke="#B3B3B3" stroke-width="2" stroke-linecap="round"/>
+<path d="M1085 270.607L1079 266.607L1079 274.607L1085 270.607Z" fill="#B2B2B2" 
stroke="#B2B2B2" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"/>
+<path d="M757 245.404L757 365.23C757 369.096 760.134 372.23 764 372.23L1267 
372.204C1270.87 372.204 1274 369.07 1274 365.204L1274 353.504" stroke="#B3B3B3" 
stroke-width="2" stroke-linecap="round"/>
+<path d="M757 245L761 251L753 251L757 245Z" fill="#B2B2B2" stroke="#B2B2B2" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M964 395L970 391L970 399L964 395Z" fill="black" stroke="black" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M970 395L976 391L976 399L970 395Z" fill="black" stroke="black" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M984.397 400V389.536H987.693C988.472 389.536 989.165 389.637 989.773 
389.84C990.381 390.043 990.861 390.379 991.213 390.848C991.565 391.317 991.741 
391.957 991.741 392.768C991.741 393.536 991.565 394.171 991.213 394.672C990.861 
395.173 990.387 395.547 989.789 395.792C989.192 396.037 988.515 396.16 987.757 
396.16H986.253V400H984.397ZM986.253 394.672H987.613C989.149 394.672 989.917 
394.037 989.917 392.768C989.917 392.107 989.715 391.653 989.309 391.408C988.915 
391.152 988.328 391. [...]
+<path d="M819.892 
209V198.504H825.94V199.624H821.22V203.176H825.22V204.296H821.22V209H819.892ZM830.561
 209.192C829.868 209.192 829.239 209.032 828.673 208.712C828.108 208.381 827.66 
207.912 827.329 207.304C826.999 206.696 826.833 205.971 826.833 205.128C826.833 
204.275 826.999 203.544 827.329 202.936C827.671 202.328 828.108 201.859 828.641 
201.528C829.175 201.197 829.735 201.032 830.321 201.032C831.313 201.032 832.076 
201.363 832.609 202.024C833.153 202.685 833.425 203.571 833.425 204.68 [...]
+<rect x="261" y="250" width="63" height="23" fill="url(#pattern0)"/>
+<rect x="927" y="297" width="63" height="23" fill="url(#pattern1)"/>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" 
height="1">
+<use xlink:href="#image0_2353_14361" transform="translate(-0.388373 -0.703433) 
scale(0.00250907 0.00678042)"/>
+</pattern>
+<pattern id="pattern1" patternContentUnits="objectBoundingBox" width="1" 
height="1">
+<use xlink:href="#image0_2353_14361" transform="translate(-0.388373 -0.703433) 
scale(0.00250907 0.00678042)"/>
+</pattern>
+<image id="image0_2353_14361" width="678" height="368" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqYAAAFwCAYAAABq9LkwAAA1KElEQVR4Xu3da7Ak110Y8Ll3X149sGQweq2SODhWKIpHbGwItiWRVL4nHxKKD3lU4fCSvLYxgoCCHgYVBmNjyRIGx/lAKqBQFKHyPYktWbbxA3DIh5SIESSWVpJFrJVkvVZ7783/Pzu9nr23Z6Znpnu6e+Y3Vbf2Md2nz/mdM3f+fV49GHgRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAE
 [...]
+</defs>
+</svg>
diff --git 
a/website/www/site/static/images/case-study/lyft/ravi_kiran_magham.png 
b/website/www/site/static/images/case-study/lyft/ravi_kiran_magham.png
new file mode 100644
index 00000000000..5880faa39b3
Binary files /dev/null and 
b/website/www/site/static/images/case-study/lyft/ravi_kiran_magham.png differ
diff --git a/website/www/site/static/images/logos/powered-by/lyft.png 
b/website/www/site/static/images/logos/powered-by/lyft.png
new file mode 100644
index 00000000000..c1ec582e809
Binary files /dev/null and 
b/website/www/site/static/images/logos/powered-by/lyft.png differ

Reply via email to