<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Yelp Engineering and Product Blog</title>
    <description>News from the Yelp Engineering and Product Teams</description>
    <link>https://engineeringblog.yelp.com/</link>
    <atom:link href="https://engineeringblog.yelp.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 01 Jun 2017 18:42:24 +0000</pubDate>
    <lastBuildDate>Thu, 01 Jun 2017 18:42:24 +0000</lastBuildDate>
    
      <item>
        <title>Making Photos Smaller Without Quality Loss</title>
        <description>Yelp has over 100 million user-generated photos ranging from pictures of dinners or haircuts, to one of our newest features, #yelfies. These images account for a majority of the bandwidth for users of the app and website, and represent a significant cost to store and transfer. In our quest to give our users the best experience, we worked hard to optimize our photos and were able to achieve a 30% average size reduction. This saves our users time and bandwidth and reduces our cost to serve those images. Oh, and we did it all without reducing the quality of these...</description>
        <pubDate>Thu, 01 Jun 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/06/making-photos-smaller.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/06/making-photos-smaller.html</guid>
        
        
        <dc:creator>
  Stephen Arthur, Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/image-filesize-preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/sarth.jpg</authorImage>
        
      </item>
    
      <item>
        <title>Taking Zero-Downtime Load Balancing even Further</title>
        <description>Ever since we rolled out our zero-downtime HAProxy reload system a few years ago, we have been disappointed that it required additional investment to work well for our external load balancing on our edge. We did generate a prototype that used an intermediary qdisc so we could apply the approach, but after evaluating the prototype, and finding that Linux wasn’t going to fix the upstream Kernel issue, we decided to go another way. Our edge is different than our internal load balancing tier because we have typically terminated TLS with another great proxy: NGINX. NGINX is useful because it does...</description>
        <pubDate>Mon, 15 May 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/05/taking-zero-downtime-load-balancing-even-further.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/05/taking-zero-downtime-load-balancing-even-further.html</guid>
        
        
        <category>ops</category>
        
        <dc:creator>
  Joseph Lynch, Lawrence Matthews

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/haproxy_nginx_preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/darwin.png</authorImage>
        
      </item>
    
      <item>
        <title>Introducing Yelp&#39;s Local Graph</title>
        <description>We’re continuously adding new features to our API to make it easier for developers to integrate with our data and share great local businesses through their apps. Today, we’re releasing access to query our data via GraphQL, a graph query language. This is available immediately through our developer beta program. What is GraphQL? GraphQL is a query language for APIs that places emphasis on being able to query for exactly the data you want. I’m sure most of you at some point have thought, “I really wish this endpoint had more data,” or, “I only need one or two pieces...</description>
        <pubDate>Wed, 03 May 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/05/introducing-yelps-local-graph.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/05/introducing-yelps-local-graph.html</guid>
        
        
        <category>api</category>
        
        <dc:creator>
  Tomer Elmalem, Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/yelp-api-developer-preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/tomer.jpg</authorImage>
        
      </item>
    
      <item>
        <title>How Yelp Runs Millions of Tests Every Day</title>
        <description>Fast feature development is critical to a company’s success. We all strive to increase developer productivity by decreasing the time to test, deploy, and monitor changes. To enable developers to push code safely, we run more than 20 million tests every day using our in-house distributed system called Seagull. &#39;Seagull&#39; by Fil.Al is licensed under CC BY 2.0 What is Seagull? Seagull is a fault tolerant and resilient distributed system which we use to parallelize our test suite execution. Seagull is built using the following: Apache Mesos (manages the resources of our Seagull cluster) AWS EC2 (provides the instances that...</description>
        <pubDate>Wed, 26 Apr 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/04/how-yelp-runs-millions-of-tests-every-day.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/04/how-yelp-runs-millions-of-tests-every-day.html</guid>
        
        
        <dc:creator>
  Chunky G., Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/seagull_preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/chunkyg.png</authorImage>
        
      </item>
    
      <item>
        <title>Continuous Integration on Android</title>
        <description>Continuous Integration (CI) is a powerful tool for the Android team at Yelp. It gives us a platform to ensure quality on all eight of our Android apps, allowing us to emphasize testing and ensure our newest features aren’t breaking our oldest masterpieces. For example, we don’t want Yelfies to crash the app while you’re writing your next great review. To achieve this, we have a dedicated cluster of AWS machines running our CI server. These machines run JUnit tests, static analysis, build APKs, merge code, and send us notifications. They also work with Firebase Test Lab to start up...</description>
        <pubDate>Thu, 20 Apr 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/04/continuous-integration-on-android.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/04/continuous-integration-on-android.html</guid>
        
        
        <dc:creator>
  Coltin Caverhill, Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/continuous-integration-on-android-preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/coltin.jpg</authorImage>
        
      </item>
    
      <item>
        <title>Returning to Grace Hopper: Bringing our Workshop Back for Round Two</title>
        <description>Jen W. is a backend engineer at Yelp in San Francisco and, when not running after her toddler, loves nothing more than to knit while watching superhero TV. Susanne L. is a database engineer at Yelp in San Francisco and loves to [b/h]ike the hilly city and its surroundings. Wei W. is an iOS engineer at Yelp in Hamburg and an avid (trashy) TV connoisseur in her free time. This past year at Grace Hopper, Jen, Susanne, and Wei teamed up to present “Crucial Conversations in Your Career: Increasing Your Impact,” a workshop featuring interactive skits and group discussion. This...</description>
        <pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/03/returning-to-grace-hopper-bringing-our-workshop-back-for-round-two.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/03/returning-to-grace-hopper-bringing-our-workshop-back-for-round-two.html</guid>
        
        
        <category>awe</category>
        
        <dc:creator>
  Brittany C., Jen W., Susanne L., Wei W.

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/ghc-cc-2017.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/darwin.png</authorImage>
        
      </item>
    
      <item>
        <title>Open Sourcing Yelp Beans: Bringing People Together, One Cup of Coffee at a Time</title>
        <description>We’re excited to be open sourcing a tool we built during a hackathon, that helps Yelp employees meet coworkers within the company: Yelp Beans. A screenshot of the Yelp Beans app It started a little over a year ago, when I began going to orchestrated one-on-one coffee meetups in the Bay Area sponsored by a local startup. It was a program where you could meet designers, engineers, and product managers in your area for a 30 minute coffee meeting. It helped me understanding my career direction and was an opportunity to ask questions of people at varying stages in their...</description>
        <pubDate>Tue, 21 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/02/open-sourcing-yelp-beans.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/02/open-sourcing-yelp-beans.html</guid>
        
        
        <category>opensource</category>
        
        <dc:creator>
  Kent W., Engineering Manager

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/yelp-beans.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/darwin.png</authorImage>
        
      </item>
    
      <item>
        <title>Recent Improvements to the Fusion API (and Upcoming v2 Changes)</title>
        <description>Since our launch of the Yelp Fusion API, we’ve been working hard over the past few months, fixing bugs people have reported on GitHub and adding missing features. We’ve also added a few things to improve the overall experience: The search endpoint got a small update on filtering by attributes. We’ve added support for filtering businesses based on whether or not they have online waitlisting, participate in Yelp Cash Back, or offer Yelp Deals. We added a public changelog to help the community keep track of changes to the API. The changelog will contain updates such as bug fixes, feature...</description>
        <pubDate>Thu, 16 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/02/recent-improvements-to-the-fusion-api.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/02/recent-improvements-to-the-fusion-api.html</guid>
        
        
        <category>api</category>
        
        <dc:creator>
  Quy L., Product Mananger

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/yelp-api-developer-preview.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/quy.jpg</authorImage>
        
      </item>
    
      <item>
        <title>Open Sourcing Yelp Love</title>
        <description>Encouraging positivity has been a central pillar to Yelp’s culture from the beginning. If a teammate rolls out a huge feature, helps you out in a bind, or just makes a funny joke, we believe you should be able to show them a small token of appreciation. That’s why we developed an internal tool called Yelp Love, a web application for sending notes of appreciation (aka love) to your coworkers within Yelp. Yelp Love started as a Hackathon effort back in 2013. Over the course of two hackathons, we rolled out Yelp Love to the entire company. Since its deployment,...</description>
        <pubDate>Tue, 14 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/02/open-sourcing-yelp-love.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/02/open-sourcing-yelp-love.html</guid>
        
        
        <category>opensource</category>
        
        <dc:creator>
  Sven S., Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/yelplove.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/darwin.png</authorImage>
        
      </item>
    
      <item>
        <title>Announcing Docker Hook Support for Pre-Commit</title>
        <description>In 2014, Yelp launched pre-commit, a framework for managing pre-commit hooks. Since then, the community has contributed many different hooks to help with development in a wide variety of languages, including Python, Ruby, Go, Node.js, and Clojure. You can see a list of many of these here. Pre-commit has been invaluable in increasing the productivity of Yelp’s code base and code-reviews by making style issues a thing of the past and allowing us to easily check for broken and deprecated code usage with a variety of code linters. While pre-commit supports a number of popular languages, the goal of pre-commit...</description>
        <pubDate>Tue, 31 Jan 2017 00:00:00 +0000</pubDate>
        <link>https://engineeringblog.yelp.com/2017/01/announcing-docker-hook-support-for-pre-commit.html</link>
        <guid isPermaLink="true">https://engineeringblog.yelp.com/2017/01/announcing-docker-hook-support-for-pre-commit.html</guid>
        
        
        <category>opensource</category>
        
        <dc:creator>
  Ben P., Software Engineer

</dc:creator>
        
          <previewImage>http://engineeringblog.yelp.com/images/previews/pre-commit.png</previewImage>
        
        
          <authorImage>http://engineeringblog.yelp.com/images/authors/benp.jpg</authorImage>
        
      </item>
    
  </channel>
</rss>
